私はforceCollideでバブルチャートを持っています。リコール機能(ボタンなし)を行うと、データの更新やサークルの半径の変更を試みています このコードは正しく動作します。しかし、私は新しいデータで関数を呼び出すと、私の古いサークルを再描画します。D3。リコール機能(ボタンなし)でデータを更新する方法
私がしようとしている何function DrawBubbleChart(data) {
var svg = d3.select("svg")
...
var node = svg.selectAll(".circles")
...
var simulation = d3.forceSimulation(data)
.force("x", ...)
.force("y", ...)
.force("collide", ...);
simulation.nodes(data)
.on("tick", ...);
d3.select("#btn").on("click",() => {
node.transition().duration(1000).attr("r", d => d.r);
simulation.nodes(data);
simulation.alpha(0.8).restart();
})
}
:
function DrawBubbleChart(data) {
if(empty){
var svg = d3.select("svg")
...
var node = svg.selectAll(".circles")
...
var simulation = d3.forceSimulation(data)
.force("x", ...)
.force("y", ...)
.force("collide", ...);
simulation.nodes(data)
.on("tick", ...);
} else {
//d3.select("#btn").on("click",() => {
node.transition().duration(1000).attr("r", d => d.r);
simulation.nodes(data);
simulation.alpha(0.8).restart();
})
}
または類似した何かを。このための最良の方法(解決策)は何ですか?
ご質問はありますか? –
編集済み@GerardoFurtado –
「空」はどこに定義されていますか?それは何の価値ですか?解決のおかげで – Mark