更新colorAxis后的Highcharts导出

时间:2015-02-26 17:09:45

标签: javascript highcharts

使用Highcharts heapmap模块时,在colorAxis更新后导出图表时出现问题。

我使用

创建图表
var chart = new Highcharts.Chart({
    ...
    colorAxis: {
        min: 0,
        max: 100,
        minColor: '#FFFFFF',
        maxColor: Highcharts.getOptions().colors[0]
    },
    ...
})

update colorAxismax更改{{1}}后,图表的导出会显示原始比例。

我应该做些什么不同的事情吗?

Example jsfiddle

2 个答案:

答案 0 :(得分:1)

在图表回调中调用您的操作,并将导出换行到setTimeout(),然后就可以了。

    chart.colorAxis[0].update({
        max: 200
    }, true);
    setTimeout(function () {
        chart.exportChart();
    }, 1);

示例:http://jsfiddle.net/rje8y2sw/6/

答案 1 :(得分:0)

找出问题所在。看起来这是Highcharts如何处理colorAxis更新的问题。它没有正确设置chart.options.colorAxis值。

在更新调用中,以下行(highcharts.src.js中的第15467行)应该更新正确的chart.options值。

newOptions = chart.options[this.coll][this.options.index] = merge(this.userOptions, newOptions);

但是,chart.options.colorAxis不是数组且没有this.options.index。因此,这条线不能按预期工作。如果您稍微修改以检查索引是否存在,并且根据需要更新对象或索引对象,则可以修复此问题。

newOptions = this.options.index ? chart.options[this.coll][this.options.index] : chart.options[this.coll] = merge(this.userOptions, newOptions);