d3没有嵌套而附加

时间:2016-10-28 15:28:19

标签: javascript d3.js

我想在d3中创建以下内容:

<g>
    <rect class="rect1"></rect>
    <rect class="rect2"></rect>
</g>

我正在尝试:

rectangles
    .selectAll('g')
    .data(data)
    .enter()
    .append('g')
    .append('rect')
    .addClass('rect1')
    .append('rect')
    .addClass('rect2')

然而它正在这样做:

<g>
    <rect class="rect1">
        <rect class="rect2"></rect>
    </rect>
</g>

如何在同一级别为每个组插入多个矩形?

2 个答案:

答案 0 :(得分:4)

你想要这样的东西。您需要保留对g元素的引用,以便可以在其上创建多个子元素。

g = rectangles
    .selectAll('g')
    .data(data)
    .enter()
    .append('g')

g.append('rect')
    .addClass('rect1')

g.append('rect')
    .addClass('rect2')

答案 1 :(得分:0)

您可以先添加ss <- subset(data, levels == l1 | levels == l2 | levels == l3) ss$levels <- as.factor(as.character(ss$levels)) boxplot(fbest ~ levels, data = ss, pch = 16, cex = 2) ,然后为每个数据添加一个矩形,动态设置每个矩形的类。例如:

<g>