如果 NVD3.js 饼图中的值等于 0,则隐藏图例项
Hide legend items if value is equal to 0 in NVD3.js Pie Chart
当 return value
等于 0
时,希望从饼图的 legend
中隐藏 label
。谁能在 NVD3.js 中为我指出正确的方向?
nv.addGraph(function () {
var donutChart = nv.models.pieChart()
.x(function (d) {
return d.label
})
.y(function (d) {
return d.value
})
d3.select("#chart-devices svg")
.datum(data)
.transition().duration(1200)
.call(donutChart);
nv.utils.windowResize(donutChart.update);
return donutChart;
});
一个可能的答案是在 renderEnd
事件中删除值为 0 的项目:
chart.dispatch.on('renderEnd', function () {
console.log("renderEnd");
d3.selectAll(".nv-legend .nv-series")[0].forEach(function (d) {
//get the data
var t = d3.select(d).data()[0];
// remove item from legend
if (t.value == 0)
d3.select(d).remove();
});
});
另一种可能性是在超时后删除项目:
setTimeout(function () {
d3.selectAll(".nv-legend .nv-series")[0].forEach(function (d) {
//get the data
var t = d3.select(d).data()[0];
// remove item from legend
if (t.value == 0)
d3.select(d).remove();
});
}, 1);
在这两种情况下,剩余项目之间都存在差距。
这是一个fiddle(第一个选项):https://jsfiddle.net/beaver71/yt7vrohk/
当 return value
等于 0
时,希望从饼图的 legend
中隐藏 label
。谁能在 NVD3.js 中为我指出正确的方向?
nv.addGraph(function () {
var donutChart = nv.models.pieChart()
.x(function (d) {
return d.label
})
.y(function (d) {
return d.value
})
d3.select("#chart-devices svg")
.datum(data)
.transition().duration(1200)
.call(donutChart);
nv.utils.windowResize(donutChart.update);
return donutChart;
});
一个可能的答案是在 renderEnd
事件中删除值为 0 的项目:
chart.dispatch.on('renderEnd', function () {
console.log("renderEnd");
d3.selectAll(".nv-legend .nv-series")[0].forEach(function (d) {
//get the data
var t = d3.select(d).data()[0];
// remove item from legend
if (t.value == 0)
d3.select(d).remove();
});
});
另一种可能性是在超时后删除项目:
setTimeout(function () {
d3.selectAll(".nv-legend .nv-series")[0].forEach(function (d) {
//get the data
var t = d3.select(d).data()[0];
// remove item from legend
if (t.value == 0)
d3.select(d).remove();
});
}, 1);
在这两种情况下,剩余项目之间都存在差距。
这是一个fiddle(第一个选项):https://jsfiddle.net/beaver71/yt7vrohk/