【发布时间】:2014-08-28 05:30:51
【问题描述】:
我正在尝试制作图表。我使用 d3 到 .enter() 来插入数据。我在 .enter() 上收到“Uncaught TypeError: undefined is not a function”。数据肯定将数据放入#act。
d3.select("#act")
.datum(Avg(actD))
.enter().append("div")
【问题讨论】:
标签: d3.js
我正在尝试制作图表。我使用 d3 到 .enter() 来插入数据。我在 .enter() 上收到“Uncaught TypeError: undefined is not a function”。数据肯定将数据放入#act。
d3.select("#act")
.datum(Avg(actD))
.enter().append("div")
【问题讨论】:
标签: d3.js
您不需要将.enter() 与.datum() 一起使用,因为您没有执行join:
d3.select("#act")
.datum(Avg(actD))
.append("div")
请参阅 Mike Bostock 的 this SO answer 或 the docs 以供参考。
【讨论】:
selectAll("div"),我不相信代码可以工作。
.datum(Avg(actD)) 不需要是 .datum([Avg(actD)])。
.datum,您无需将基准包装在array 中。你只需要一个选择来操作,不能使用.enter()。
.enter()。 +1 为可行的解决方案和参考迈克博斯托克。
使用D3方法data:
d3.select("#act")
.selectAll("div")
.data(Avg(actD))
.enter().append("div")
data 适用于单个和多个数据点。如果您使用 datum,它不会计算连接,因此您不能使用 .enter() 方法附加 div。
来自文档:
selection.datum([值])
获取或设置每个选定元素的绑定数据。不像 selection.data 方法,此方法不计算连接(因此 不计算进入和退出选择)。
示例;
d3.select("#act")
.selectAll("div") // you need to first select an the existing / empty set before you append.
.data([0]).enter()
.append("div")
.html("appended")
.style("background-color", "red");
【讨论】: