问题是我的图表上有很多序列,并且在加载时,我只希望选择3个。

有没有办法在nvd3 Horizontal Multi-Bar Chart上“禁用”(隐藏)系列? (我正在寻找点击序列行为,但以编程方式)

我尝试使用'visible': false,发送JSON,但无法正常工作。

var data=[{"key": "Series 1",
           "visible": false,
           "values": [{"value": 10000.0, "label": ...


遵循@shabeer90指令进行测试:

           "disabled": true,


在这种情况下,系列已被禁用,但不允许切换以启用点击系列圈子。

最佳答案

据我所知,您不能直接使用NVD3进行此操作(至少在不修改源代码的情况下如此)。但是,您可以通过模拟图例元素上的单击来以编程方式触发此操作:

d3.select("g.nv-legendWrap").selectAll("g.nv-series")
        .each(function(d) {
            this.dispatchEvent(new Event("click"));
        });


假设您的数据具有确定该系列是否应显示的属性visible,则可以基于该属性进行过滤:

d3.select("g.nv-legendWrap").selectAll("g.nv-series")
        .filter(function(d) { return d.visible == false; })
        .each(function(d) {
            this.dispatchEvent(new Event("click"));
        });


如果您使用过渡来创建图形,请记住在过渡完成后调用此代码。完成演示here

07-24 09:39
查看更多