javascript - 使用数据集中的 d3.js 在 svg 的 g 元素中添加两个不同的 svg 元素

标签 javascript css d3.js svg

我想根据数据集向svg的每个组元素添加一个圆圈和一个文本元素,类似于下图。

var dataset=[1,4];
<g>
<circle cx="100" cy="100" r="20" fill="blue"></circle>
<text x="100" y="100" fill="white">Hello World</text>
</g>
<g>
<circle cx="100" cy="100" r="20" fill="blue"></circle>
<text x="100" y="100" fill="white">Hello World</text>
</g>

下面是我的工作示例代码。

var svgSelection2=d3.select("#div-svg2").append("svg")
.attr("width",900)
.attr("height",500)
.style("background-color","lightgreen");

var dataset=[1,4];
var group=svgSelection2.selectAll("g")
.data(dataset2)
.enter()
.append("g");

var circles=group.selectAll("circle")
.data(dataset)
.enter()
.append("circle")
.attr("cx",function(d,i){ return d*100 ;})
.attr("cy",100)
.attr("r",function(d,i){ return d*20;})
.attr("fill","blue");


var textElement=group.selectAll("text")
.data(dataset)
.enter()
.append("text")
.attr("x",function(d,i){return d*100;})
.attr("y",100)
.text("Hello World")
.attr("fill","white");

此代码向每个组元素附加两个圆圈和两个元素。

提前致谢

最佳答案

您不需要再次输入相同的数据集,因此您可以这样做

var svgSelection2=d3.select("#div-svg2").append("svg")
        .attr("width",900)
        .attr("height",500)
        .style("background-color","lightgreen");

var dataset=[1,4];
var group=svgSelection2.selectAll("g")
        .data(dataset)
        .enter()
        .append("g");

var circles = group.append("circle")
        .attr("cx",function(d,i){ return d*100 ;})
        .attr("cy",100)
        .attr("r",function(d,i){ return d*20;})
        .attr("fill","blue");

var textElement=group.append("text")
        .attr("x",function(d,i){return d*100;})
        .attr("y",100)
        .text("Hello World")
        .attr("fill","white");

关于javascript - 使用数据集中的 d3.js 在 svg 的 g 元素中添加两个不同的 svg 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314692/

相关文章:

javascript - 为什么我的 div 值未定义?

javascript - 将列表项拖到新的相对位置并保存到数据库

javascript - 在 ul 中更改具有给定类的 li 元素的位置?

css - 如何防止浏览器使用默认样式

javascript - D3过渡,margin-top进展不顺利

javascript - D3 : get value from the array

c# - 如何使用信号器更新页面上的数据控件?

javascript - 如何使垂直文本滚动停止在每一行

html - 添加链接会弄乱图标

html - 四舍五入html表体的 Angular 落