问题是我的图表上有很多系列,在加载时,我只想选择3个。
有没有办法'{3}}'禁用'(隐藏)系列? (我正在寻找点击系列行为,但是以编程方式)
我尝试使用'visible': false,
发送JSON,但它不起作用。
var data=[{"key": "Series 1",
"visible": false,
"values": [{"value": 10000.0, "label": ...
按照以下nvd3 Horizontal Multi-Bar Chart说明进行了测试:
"disabled": true,
在这种情况下,系列已禁用,但不允许切换为启用点击系列圈。
答案 0 :(得分:8)
据我所知,您无法直接使用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。