我使用nvd3有用的预打包图表整理了一个叠加的折线图。
我得到的图表大部分功能都很好,但每当我点击一个特定的系列时,就会出现错误' Uncaught TypeError:无法读取属性' y'未定义',图表不会调整大小以仅显示系列。
有关正确功能的示例:http://nvd3.org/examples/stackedArea.html
我已经检查过最常见的错误,包括不同大小的系列,并且没有这些错误。
我用于生成图表的代码是:
function stackedChart(data) {
nv.addGraph(function() {
var chart = nv.models.stackedAreaChart()
.margin({right: 100})
.x(function(d) { return d[0] })
.y(function(d) { return d[1] })
.useInteractiveGuideline(true)
.duration(500)
.showControls(true)
.clipEdge(true);
chart.xAxis
.tickFormat(d3.format(',.0f'));
chart.yAxis
.tickFormat(d3.format(',.2f'));
d3.select('#stackedChart svg')
.datum(data)
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
}
stackedChart(a);
在jsfiddle中找到的数据中包含错误的实例:https://jsfiddle.net/0yxr15ut/5/
答案 0 :(得分:1)
此问题已在此处解决: https://github.com/novus/nvd3/issues/1093 虽然不确定副作用,但可以解决此问题。 在nv.d3.js
中的scatter y函数中添加以下检查.y(function(d) {
if (d.display !== undefined) { return d.display.y + d.display.y0; }
else return 0
})
我创建了一个for存储库,您可以使用此更改。 https://github.com/nishantk92/nvd3.git