以编程方式禁用nvd3水平多条形图上的系列

dan*_*era 2 jquery d3.js nvd3.js

问题是我的图表上有很多系列,在加载时,我只想选择3个.

有没有办法在nvd3水平多条形图上'禁用'(隐藏)一个系列?(我正在寻找点击系列行为但是以编程方式)

我试图发送JSON,'visible': false,但它不起作用.

var data=[{"key": "Series 1",
           "visible": false, 
           "values": [{"value": 10000.0, "label": ...
Run Code Online (Sandbox Code Playgroud)

遵循@ shabeer90指令测试:

           "disabled": true,
Run Code Online (Sandbox Code Playgroud)

在这种情况下,系列已禁用,但不允许切换为启用单击系列圆.

Lar*_*off 8

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

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

假设您的数据具有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"));
        });
Run Code Online (Sandbox Code Playgroud)

如果您正在使用转换来创建图形,请记住在转换完成后调用此代码.在这里完成演示.