D3.js 向新添加的元素添加文本

D3.js 向新添加的元素添加文本,d3.js,D3.js,这是您需要的全部代码: 它在本地引用了D3,但为了更快地完成工作,您可以在其网站上这样引用它: <script src="http://d3js.org/d3.v3.min.js"></script> 作为一个练习,我试图修改代码,这样我就可以用它们的文本数据更新新的条形图,但仍然无法理解。你会怎么做 您需要处理.enter()选择。代码如下所示 svg.selectAll("text") .data(dataset) .e

这是您需要的全部代码:

它在本地引用了
D3
,但为了更快地完成工作,您可以在其网站上这样引用它:

<script src="http://d3js.org/d3.v3.min.js"></script>

作为一个练习,我试图修改代码,这样我就可以用它们的文本数据更新新的条形图,但仍然无法理解。你会怎么做

您需要处理
.enter()
选择。代码如下所示

svg.selectAll("text")
           .data(dataset)
           .enter()
           .append("text")
           .text(function(d) {
                return d;
           })
           .attr("x", function(d, i) {
                return xScale(i) + xScale.rangeBand() / 2;
           })
           .attr("y", function(d) {
                return h - yScale(d) + 14;
           });

有关详细信息,请参阅。

感谢您介绍如何使用enter()。。。我们正在接近:)但是如果你尝试这个,所有的文本现在都不正常了。。。因此,可能需要更多的工作来处理比例或其他问题……这很可能是因为您将数据传递给
.data()
——顺序实际上很重要,除非您指定一个函数来告诉它如何匹配元素。所有这些都在我链接到的教程中进行了解释。
svg.selectAll("text")
           .data(dataset)
           .enter()
           .append("text")
           .text(function(d) {
                return d;
           })
           .attr("x", function(d, i) {
                return xScale(i) + xScale.rangeBand() / 2;
           })
           .attr("y", function(d) {
                return h - yScale(d) + 14;
           });