这是一些代码。它的变量名称很差,而且是错误的。原始示例只有圆圈,这就是为什么选择圆圈但现在它有组的原因。但是,此代码目前可以正常工作。它像我期望的那样绘制正方形和圆形。
使用控制台我看到“圆圈”Array[3]
但我无法弄清楚元素是什么或它们的类型。自启动以来,由于没有创建 svg 元素,怎么可能有 3 个?
无论如何,我想知道真正应该叫什么圈子?在“g”上进行全选似乎给了我同样的效果。我猜 selectAll 正在尝试进行选择并且有 0 个元素但继续以某种方式工作,或者 selectAll 实际上返回 svg 但在这种情况下我为什么要创建一个新变量。我也不确定为什么这些例子和我正在做这方面的数据。circle 实际上是否返回了我现在设置数据的内部 d3 对象?它与svg或dom有什么关系吗?我只是很困惑为什么我是 selectAll 并在选择时调用数据。
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<style>
</style>
<script src="http://d3js.org/d3.v3.js"></script>
<script>
(function() {
var svg = d3.select('body').append('svg').attr('width', 900);
var circle = svg.selectAll("circle")
.data([32, 57, 293]);
circle.enter()
.append("g")
.call(function(gs) {
gs.append("rect").attr("width", 20).attr("height", 20).attr("x", String);
gs.append("circle").attr("cy", 90).attr("cx", String).attr("r", Math.sqrt);
})
.attr('class', 'test');
circle.exit().remove()
})();
</script>
</body>