我一直在制作d3.js时间序列折线图。
我正在使用d3.nest
,然后循环遍历嵌套组以创建每一行。
完整代码Here
我想要做的是让每个行的标签(国家/地区名称)显示在最后一次观察位置的y轴上(由credit
给出)。为了找到这个位置,我使用:
dataNest.forEach(function(d) {
var position = d.values[6].credit;
console.log("Selected Value", position);
然后在我追加文字时将position
传递给.attr("y", y(position))
。
我遇到的问题是从d.values[6].credit
返回的位置是正确的,因为在控制台中已记录。但是我得到了一个
Uncaught TypeError: Cannot read property 'credit' of undefined
错误。这导致轴未被绘制。
(最终我希望标签出现在mouseover
上,但那是另一天的。)
答案 0 :(得分:0)
斯洛伐克共和国只有2个数据点:
Slovak Republic,SK,Jan 2007,100
Slovak Republic,SK,Jan 2008,105.2
而不是硬编码6,只需使用:
var position = d.values[d.values.length-1].credit;
示例here。