只要所有数据都在一个文件中或在一个变量中,就可以很容易地在d3中输入数据:
svg.selectAll("path").data(datavariable).enter()
.append("path")
....
我需要将存储在单独变量中的数据输入到一个图表中。我试过了
svg.selectAll("path").data(datavariable1).enter()
.append("path")
....
svg.selectAll("path").data(datavariable2).enter()
.append("path")
....
它似乎不起作用。我还尝试了svg.selectAll("path1")...
和svg.selectAll("path.datavariable1")...
,但它只使用相同的数据(datavariable1
)绘制了第一条路径。有谁知道如何从两个变量中获取数据同时在一个图上工作?
答案 0 :(得分:0)
我在Nixie的评论的帮助下弄清楚了。这对我有用。对于我不需要svg.selectAll
任何事情的路径。 line1
和line2
从数据变量中获取数据:
var line1 = d3.line()
.x(function(d,i) { return x(datavariable1[i].xvalue); })
.y(function(d,i) { return y(datavariable1[i].yvalue); });
var line2 = d3.line()
.x(function(d,i) { return x(datavariable2[i].xvalue); })
.y(function(d,i) { return y(datavariable2[i].yvalue); });
然后我按如下方式添加SVG:
svg.append("path")
.attr("class", "line")
.attr("d", line1(datavariable1))
svg.append("path")
.attr("class", "line")
.attr("d", line2(datavariable2))
Nixie对我的问题的评论中的答案在我的案例中不起作用,因为path
必须保留path
的折线图,但它适用于点图。希望这有助于可能遇到类似问题的人。