gpt4 book ai didi

javascript - d3JS : iterate through paths of unknown point count

转载 作者:行者123 更新时间:2023-11-29 14:53:57 25 4
gpt4 key购买 nike

这个问题是 original question regarding line segments 的延伸.

关于原始问题,从 tsv 绘制线段的问题已通过 this script 解决。 (感谢@VividD)。这是从 tsv 中绘制两条线段的数据:

x0      y0      x1      y1      weight
0.5 0.5 0.2 0.2 2
0.25 0.35 0.7 0.8 1

现在,我正在尝试绘制具有未知数量顶点的路径(或多段线)。这将需要脚本遍历每一行,查找要添加到每个路径的数据中的列数。我不知道如何执行此操作,因为我一直在使用的脚本假设程序员知道列名(d.closed.date 等.).

x0      y0      x1      y1      x2      y2           weight
0.5 0.5 0.2 0.2 2
0.25 0.35 0.7 0.8 0.5 0.6 1

有没有人知道如何遍历上面的示例,为每行数据绘制路径?

最佳答案

假设数据在数组 data 中,这将为每个元组创建一个可变长度的数组 points:

data.forEach(function(d) {
d.points = [];
for (var i = 0; d["x"+i] !== "" && (typeof d["x"+i] !== 'undefined'); i++) {
d.points.push([d["x"+i], d["y"+i]]);
}
});

例如对于您示例中的第一行

d.points = [[0.5, 0.5], [0.2, 0.2]]

然后可以用来画线:

var line = d3.svg.line();

svg.selectAll("path")
.data(data)
.enter()
.append("path");

svg.selectAll("path")
.attr("d", function(d) { return line(d.points); })
.attr("stroke-width", function(d) { return (d.weight); })
.attr("stroke", "black")
.attr("fill", "none");

完整示例 here .

关于javascript - d3JS : iterate through paths of unknown point count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21145916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com