【发布时间】:2014-08-03 20:04:00
【问题描述】:
我正在创建一个流图,使用来自http://bl.ocks.org/mbostock/4060954 的示例代码作为模板。
我画了流图:
var svg = d3.select("#graph_area").append("svg")
.attr("width", width)
.attr("height", height)
....
svg.selectAll("path")
.data(layers)
.enter().append("path")
.attr("d", function (d) {return area(d.layer);})
现在似乎不允许我在这里为 DOM 元素选择与 "path" 不同的名称。如果我这样做了,那么流图不再绘图。 为什么会这样?
然后我想添加一个带有项目符号的图例,但它们没有绘图。这些元素显示在我的网络检查器(萤火虫)中,但它们的图形表示不存在。我认为这可能是与 DOM 元素名称类似的问题,但我实际上并不知道。这是我的子弹代码:
//draw all the legend bullets and effects
svg.selectAll("bullets")
.data(layers)
.enter().append("bullets")
.attr("cx", 200)
.attr("cy", function(d, i) { return 20 + i*10; })
.style("fill", function(d) { return d.color; })
.attr("r", 5)
【问题讨论】:
-
你不能只是组成你自己的元素名称,它们必须是 SVG 规范中定义的东西,例如
path. -
啊,我明白了。
svg.selectAll("circle")...有效。谢谢!
标签: javascript dom svg d3.js