我根据此处找到的示例创建了一个折线图:
http://bl.ocks.org/mbostock/3884955
但是,对于我的数据,线标签(城市)最终会重叠,因为不同线的 y 轴上的最终值经常靠近。我知道我需要比较每行的最后一个值,并在值相差 12 个单位或更少时向上或向下移动标签。我的想法是查看这段代码编写的文本标签
city.append("text")
.datum(function(d) { return {name: d.name, value: d.values[d.values.length - 1]}; })
.attr("transform", function(d) { return "translate(" + x(d.value.date) + "," + y(d.value.temperature) + ")"; })
.attr("x", 3)
.attr("dy", ".35em")
.text(function(d) { return d.name; });
如果 y(d.value.temperature) 值相差 12 或更小,则将这些值分开,直到它们之间至少有 12 个单位。关于如何完成这项工作的任何想法?这是我的第一个 d3 项目,语法仍然很适合我!