1. ホーム
  2. d3.js

[解決済み] NVD3、新しいチャートをロードする前にsvgをクリアする。

2022-02-15 04:30:27

質問

私はいくつかの異なる NVD3 同じsvgの中で呼び出すチャート。 ボタンを使って関数を呼び出し、それぞれが独自のデータを使用する新しいチャートを含んでいます。

1枚のsvgを削除せずにクリアする方法はありますか? ボタンを押してチャートを呼び出したいのですが、新しいチャートが読み込まれる前にsvgをクリアしてしまいたいのです。

チャートの種類を使う場合は問題ないのですが...2つの multibarhorizontal チャートは、例えば、形状が更新されるだけなので、問題ありません。 問題は、折れ線と棒グラフのような2つの異なるチャートを読み込むことです。

よろしくお願いします。

EDIT - 答えは、dのようなものでなければなりません。 3.select("svg").remove() が、これではsvgが削除されるだけです。私はそれをクリアしたいだけです。

解決方法は?

SVGの下にあるすべての要素を選択するためには "svg > *" セレクタを使用します。つまり、これらをすべて削除するには、次のようにします。

d3.selectAll("svg > *").remove();