編輯:這個問題可以簡化,這裏有雲:D3:追加圈不起作用 - 必須失去了一些東西
我加入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中吧?)
移動+變爲紅色
加入的黃色圓圈
去除第一(綠色)的圓。完善!
現在,當我嘗試在我的visual studio項目中使用它時,添加黃色圓圈不起作用。我被困了一段時間,也許我忽略了某些事情,或者沒有完全理解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");
好點。立即嘗試此操作。當我正在逐步執行Firebug中的代碼時,會在該行的svg.enter()。append(「circle」)處中止。這發生在「update3D」函數中,其中svg被聲明爲「var svg = d3.select(」#d3「);」。這個svg在這個頁面上已經存在。不知怎的,我懷疑這可能是個問題......!? – graph
如何獲得現有的svg? – graph
是的,我只是讓這個svg對象通過使它成爲全局函數來訪問這兩個函數。如果你想有更多的控制權,你可以命名空間來避免碰撞 – climboid