0

我正在尝试在我的应用程序中集成 MariMekko / Market 类型的图表。我在这里找到了一个有趣的实现:

http://jsfiddle.net/h2np93k1/39/

此代码构造一个树形图并向其添加轴。这是由这个片段完成的:

Highcharts.seriesTypes.treemap.prototype.bindAxes = function() {
    Highcharts.Series.prototype.bindAxes.call(this);
};

但是,如果我理解正确,这将导致我所有的treemap图表都有轴。我不想要这个,我只想为我的 marimekko 地图保留轴。

实现这一目标的最佳方法是什么?例如,有没有一种简单的方法来扩展图表类型?

4

1 回答 1

1

最简单的方法是包装一个核心函数并添加条件语句来检查选项并在需要时应用修改。

在这种情况下,我isMariMekko在系列中添加了标志。如果为真,则执行修改后的代码。原始功能启动是错误的:

  Highcharts.wrap(Highcharts.seriesTypes.treemap.prototype, 'bindAxes', function(proceed) {
    if (this.options.isMariMekko) {
      var treeAxis = {
        min: 0,
        dataMin: 0,
        max: 100,
        dataMax: 0
      };

      Highcharts.Series.prototype.bindAxes.call(this);
      Highcharts.extend(this.yAxis.options, treeAxis);
      Highcharts.extend(this.xAxis.options, treeAxis);

    } else {
      proceed.apply(this); // default action
    }

  });

关于包装的文档参考: https ://www.highcharts.com/docs/extending-highcharts/extending-highcharts

于 2017-11-16T12:48:59.843 回答