0

编辑:这个问题可以简化,这里是:

我正在添加 tryign 以向 SVG 添加“圆圈”。事实证明,添加的圆圈被添加到 DOM 中,但没有添加到 svg 中,并且也不适合比例。

<svg width="400" height="400">
    <g class="x axis" transform="translate(0,200)" fill="none" stroke="black" stroke-width="1" font-size="10px">
    <g class="y axis" transform="translate(200,0)" fill="none" stroke="black" stroke-width="1" font-size="10px">
    <circle fill="#008000" r="10" cy="56" cx="56">
    <circle fill="#008000" r="10" cy="56" cx="128">
    <circle fill="#008000" r="10" cy="56" cx="164">
</svg>
<circle fill="#ffff00" r="10" cy="344" cx="340.4"></circle>

我想要完成的可以在这里看到:http: //jsfiddle.net/eNe3U/13/

在jsfiddle中它可以工作!这就是我想要的!

它从索引 0 到 2 的数据数组中的 3 个绿色圆圈开始。然后使用另一个数据集(索引 1 到 3)对其进行更新。这就是删除第一个圆圈并在 D3 中添加最后一个圆圈的方式(对吗?)

  1. 移动+变红

  2. 添加一个黄色圆圈

  3. 删除第一个(绿色)圆圈。完美的!

现在,当我尝试在我的视觉工作室项目中使用它时,添加黄色圆圈不起作用。我已经卡住了很长一段时间,也许我忽略了一些东西或者没有完全理解 D3 的方式。

所以,这是我的代码: http: //pastecode.org/index.php/view/66925872

与小提琴中的几乎相同,只是分为 2 个功能。错误在哪里?

 circle.enter().append("circle") // .data(mydata2, function(d) { return d.i; })
      .transition().delay(1000).duration(500)
      .attr("cx", function (d) { return xScale(d.x); })
      .attr("cy", function (d) { return yScale(d.y); })
      .attr("r", 10).attr("fill", "yellow");
4

1 回答 1

1

circle.enter().... circle 不指向 svg circle 元素吗?不应该是 svg.enter().append("circle") 以便将圆圈附加到 svg 吗?

于 2013-01-19T23:06:03.927 回答