Highcharts无法在图例点击上正确呈现

时间:2015-10-16 11:35:27

标签: javascript jquery charts highcharts

问题: 通过单击图例隐藏和显示一系列图表时,右侧的YAxis无法正确呈现:

enter code here

http://jsfiddle.net/yzqdekhr/5/

重现步骤

1)单击Diversion%Monthly Legend并隐藏右侧y轴
2)点击Diverted Tons和Trash Tons Legend(完整图表将为空白)
3)单击Diversion%Monthly Legend再次显示
4)单击Diverted Tons和Trash Tons Legend以显示图表数据

现在看到两个轴都有自己的情节线,不应该是,见下图

enter image description here

预期结果 绘图线必须与第一次加载

中相同

2 个答案:

答案 0 :(得分:1)

这是一个已知的问题,在此处报告为错误 - https://github.com/highslide-software/highcharts.com/issues/4374

建议的解决方法是添加一个将重新对齐刻度的包装器。

H.wrap(H.Axis.prototype, 'setScale', function(p) {
        if(this.options.alignTicks !== false || this.chart.options.alignTicks !== false) {
             this.forceRedraw = true;   
        }
        p.call(this);
    });
})(Highcharts)

JSFiddle示例:http://jsfiddle.net/q6sr1c0f/

答案 1 :(得分:0)

问题在于辅助轴的作用 - 当删除所有并绘制Diversion %时,没有数据或主轴动态链接到。

我能想到在不获得双轴线的情况下做你想做的事情的唯一方法是将第二个Yaxis linkedTo选项设置为第一个。

这将确保如果没有第一个Yaxis,则绘图将不会呈现新行。这会产生另一个问题,因为现在Diversion %线根本没有绘制(如果其他线不可见),那么您必须为第一个Yaxis设置minmax值。

JSnippet Demo

//Added to the second Yaxis:
linkedTo: 0;

//Added to the first Yaxis:
min: 0;
max: 100;