首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高级图表-在显示、隐藏或legendItemClick上打开或关闭网格线

高级图表-在显示、隐藏或legendItemClick上打开或关闭网格线
EN

Stack Overflow用户
提问于 2012-04-27 16:31:46
回答 1查看 6.4K关注 0票数 1

我有一个有多个y轴的多系列柱状图。Y轴被设置为只有数组中的第一个yAxis有一个gridLineWidth=1,其余的为零。

我看到的是,如果我隐藏了yAxis具有gridLineWidth=1的所有系列项目,那么对于系列项目的其余部分(那些使用非主yAxis的项目),根本不会显示网格线。既然我把他们的gridLineWidth设为零,这就有道理了.

因此,为了始终显示至少一组网格线,我决定处理隐藏显示在plotOptions.column.events上的事件(我还尝试了legendItemClick),首先将所有gridLineWidth设置为零,然后查找第一个可见系列,并将其yAxis对象上的gridLineWidth设置为1,如下所示:

代码语言:javascript
复制
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/

隐藏两个‘金钱’类型系列显示网格线消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-01 16:13:22

感谢高滑论坛上的cailie,这个问题已经解决了。

在帖子中:在.options调用之后,我需要“yAxis”:

代码语言:javascript
复制
firstVisibleSeries.yAxis.options.gridLineWidth = 1;

基本的jsfiddle包含修复程序:http://jsfiddle.net/7NEhU/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10354491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档