我有一个有多个y轴的多系列柱状图。Y轴被设置为只有数组中的第一个yAxis有一个gridLineWidth=1,其余的为零。
我看到的是,如果我隐藏了yAxis具有gridLineWidth=1的所有系列项目,那么对于系列项目的其余部分(那些使用非主yAxis的项目),根本不会显示网格线。既然我把他们的gridLineWidth设为零,这就有道理了.
因此,为了始终显示至少一组网格线,我决定处理隐藏和显示在plotOptions.column.events上的事件(我还尝试了legendItemClick),首先将所有gridLineWidth设置为零,然后查找第一个可见系列,并将其yAxis对象上的gridLineWidth设置为1,如下所示:
plotOptions: {
column: {
...
events: {
show: function (event) {
var series = this.chart.series;
var yAxes = this.chart.yAxis;
// first hide all the gridlines
_.each(yAxes, function (axis) { axis.gridLineWidth = 0; });
var firstVisibleSeries = _.find(series, function (ser) { return ser.visible == true; });
if (firstVisibleSeries != null) {
firstVisibleSeries.yAxis.gridLineWidth = 1;
}
this.chart.redraw();
}
},
...
},
},
...我将Underscore.js用于_.each()和_.find()方法。
使用firebug,一切看起来都很好(这意味着第一个可见系列项目的gridLineWidth =1以及在方法执行结束时所有其他项都设置为零)。
但是,无论我做什么,包括我在绝望中最后坚持的this.chart.redraw()调用,它似乎都不会处理我对yAxis对象的更改。如果我隐藏使用第一个yAxis的所有系列项目,网格线仍然缺失。
我是不是做错了什么
谢谢你的帮忙
编辑:
下面是一个介绍问题的jsFiddle:http://jsfiddle.net/kmkuntz/7NEhU/2/
隐藏两个‘金钱’类型系列显示网格线消失。
发布于 2012-05-01 16:13:22
感谢高滑论坛上的cailie,这个问题已经解决了。
在帖子中:在.options调用之后,我需要“yAxis”:
firstVisibleSeries.yAxis.options.gridLineWidth = 1;基本的jsfiddle包含修复程序:http://jsfiddle.net/7NEhU/
https://stackoverflow.com/questions/10354491
复制相似问题