d3.js 时间序列图表上的标签

Labels on d3.js time series chart

本文关键字:标签 js 时间序列 d3      更新时间:2023-09-26

我一直在研究d3.js的时间序列折线图。

我正在使用d3.nest,然后循环访问嵌套组来创建每一行。

完整的代码在这里

我想做的是让每行的标签(国家/地区名称)显示在 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上,但那是另一天)。

斯洛伐克共和国只有 2 个数据点:

Slovak Republic,SK,Jan 2007,100
Slovak Republic,SK,Jan 2008,105.2

代替硬编码的 6,只需使用:

var position = d.values[d.values.length-1].credit;

这里的例子。