我有一个常规的柱形图,我希望能够单击一个列并向下钻取一组相关信息。此行为类似于 highcharts演示如何进行向下钻取。有没有人能够在 nvd3.js 中实现这一点?
问问题
4493 次
1 回答
5
您引用的 Highcharts 演示是浏览器市场份额的垂直条形图。当您单击其中一个浏览器时,将显示第二个垂直条形图,显示该浏览器每个版本的市场份额。单击版本将返回到上一个图表。
nvd3 模型使用 d3 的调度程序支持单击和悬停侦听器,您可以在此处阅读 d3 的 github wiki [1] 上的更多信息。
如果您浏览历史条形图的 nvd3 源,您可以看到调度程序的设置位置 [2]。
因此,您将编写一个在“elementClick”事件触发时调用的函数,该函数接受被单击的系列作为参数。现在您知道点击的系列,您可以切换数据并重新绘制图表。
我希望这会有所帮助,我花了一段时间来追踪 nvd3 如何使用单击和悬停侦听器。
这是一个在 nvd3 的首页上使用的调度程序的示例:
chart.stacked.dispatch.on('areaClick.updateExamples', function(e) {
setTimeout(function() {
mainExample.update();
exampleOne.update();
//exampleTwo.update();
exampleThree.update();
}, 100);
})
[1] https://github.com/mbostock/d3/wiki/Internals#events
[2] https://github.com/novus/nvd3/blob/master/src/models/historicalBar.js#L23
于 2013-04-17T18:10:28.370 回答