【发布时间】:2014-08-12 00:47:47
【问题描述】:
我尝试通过 NVD3 使用带有一些真实数据的堆积面积图,它看起来很奇怪:
我猜数据或数据访问器函数有问题,但我不知道究竟是什么。
var chart = nv.models.stackedAreaChart()
.x(function(d) { if (typeof d !== "undefined" && d !== null) return d[0] })
.y(function(d) { if (typeof d !== "undefined" && d !== null) return d[1] })
.clipEdge(true)
.useInteractiveGuideline(true)
;
我还注意到,如果“values”数组在不同的数据对象中具有不同的长度,它根本不起作用。是NVD3的限制还是什么?
【问题讨论】:
-
这是因为你的系列有不同的时间范围。您应该使用相同的时间刻度才能正确显示。请参阅 example -
other在此示例中使用比例。系列差异计算为数据数组具有相同索引的元素之间的差异。所以,认为这就是系列长度应该相同的原因。 -
感谢您的回答。有道理,但相同的系列长度和时间尺度要求不能总是用真实数据来实现。另外,我注意到 useInteractiveGuideline 已在您的示例中出现,尽管它设置为 true,引发“无法读取未定义的属性 '0'”错误。
-
只是转换数据,updated。
-
再次感谢,效果很好。
-
采用涵盖所有系列的通用时间尺度和范围,然后为所有系列使用
0填充缺失值(在y 轴上)。应该工作!
标签: javascript d3.js nvd3.js