具有从一个数据数组到多个数组的函数的 Enter() 语句? (添加多个渐变路径)
Enter() statement with a function from one data array to multiple arrays? (Adding multiple Gradient Paths)
我在思考引用部分数据的 enter 函数的语法时遇到了一些问题。
我的最终目标是在地图上绘制许多渐变路径。我一直在关注 http://geoexamples.blogspot.com.au/2014/04/d3-map-styling-tutorial-iv-drawing.html 中的代码(重点是 bl.ocks.org/rveciana/10668944),它从 bl.ocks.org/mbostock/4163057 中提取梯度函数代码。
我已经让代码正常工作,但我正在尝试将它扩展到一组路径。
我认为我的问题集中在代码的以下部分:
svg.selectAll("path")
.data(quad(sample(line(track), 8)))
.enter().append("path")
.style("fill", function(d) { return color(d.t); })
.style("stroke", function(d) { return color(d.t); })
.attr("d", function(d) { return lineJoin(d[0], d[1], d[2], d[3], trackWidth); });
比方说,我创建了一条新路径,可以用 track01
替换 quad(sample(line(track), 8))。即
svg.selectAll("path")
.data(track01)
.enter().append("path")
.style("fill", function(d) { return color(d.t); })
.style("stroke", function(d) { return color(d.t); })
.attr("d", function(d) { return lineJoin(d[0], d[1], d[2], d[3], trackWidth); });
运行。现在,我有另一条路径,称为 track02
,如果我替换上面的 track01
,它会运行一条新路径。我被困在让他们两个都工作。我想知道是否有人修复了函数以使下面的代码正常工作。
svg.selectAll("path")
.data([track01,track02])
.enter().append("path")
.style("fill", function(d) { return color(d.t); })
.style("stroke", function(d) { return color(d.t); })
.attr("d", function(d) { return lineJoin(d[0], d[1], d[2], d[3], trackWidth); });
我正在尝试模仿 groups.google.com/forum/#!topic/d3-js/hM5DpnxAtVI 中描述的内容来添加多个路径。
你的数据已经是一个数组,你要做的就是像这样将它们连接在一起:
var data = track01.concat(track02);
我为示例创建了一个 Fiddle:https://jsfiddle.net/7k0wqw7v/
我在思考引用部分数据的 enter 函数的语法时遇到了一些问题。 我的最终目标是在地图上绘制许多渐变路径。我一直在关注 http://geoexamples.blogspot.com.au/2014/04/d3-map-styling-tutorial-iv-drawing.html 中的代码(重点是 bl.ocks.org/rveciana/10668944),它从 bl.ocks.org/mbostock/4163057 中提取梯度函数代码。 我已经让代码正常工作,但我正在尝试将它扩展到一组路径。
我认为我的问题集中在代码的以下部分:
svg.selectAll("path")
.data(quad(sample(line(track), 8)))
.enter().append("path")
.style("fill", function(d) { return color(d.t); })
.style("stroke", function(d) { return color(d.t); })
.attr("d", function(d) { return lineJoin(d[0], d[1], d[2], d[3], trackWidth); });
比方说,我创建了一条新路径,可以用 track01
替换 quad(sample(line(track), 8))。即
svg.selectAll("path")
.data(track01)
.enter().append("path")
.style("fill", function(d) { return color(d.t); })
.style("stroke", function(d) { return color(d.t); })
.attr("d", function(d) { return lineJoin(d[0], d[1], d[2], d[3], trackWidth); });
运行。现在,我有另一条路径,称为 track02
,如果我替换上面的 track01
,它会运行一条新路径。我被困在让他们两个都工作。我想知道是否有人修复了函数以使下面的代码正常工作。
svg.selectAll("path")
.data([track01,track02])
.enter().append("path")
.style("fill", function(d) { return color(d.t); })
.style("stroke", function(d) { return color(d.t); })
.attr("d", function(d) { return lineJoin(d[0], d[1], d[2], d[3], trackWidth); });
我正在尝试模仿 groups.google.com/forum/#!topic/d3-js/hM5DpnxAtVI 中描述的内容来添加多个路径。
你的数据已经是一个数组,你要做的就是像这样将它们连接在一起:
var data = track01.concat(track02);
我为示例创建了一个 Fiddle:https://jsfiddle.net/7k0wqw7v/