1
D3を使用して、周囲に矩形の境界線を持つカスタムグラフを描画しています。ウィンドウのサイズ変更で、SVGサイズを再計算し、この境界線を再描画したい。私は現在、リサイズ/新しいデータに呼び出さdrawGraph()
機能でこれをやっている:D3単一のオブジェクトを描画するための規約
...
svg.selectAll('rect')
.data([true])
.attr('width', w)
.attr('height', h)
.enter()
.append('rect')
.attr('x', 0)
.attr('y', 0)
.attr('width', w)
.attr('height', h)
.style('fill', 'none')
...
すなわち - 私は描くことができますいずれかのように、私は選択に配列([true]
)で単一の値を結合しています既に描画されている場合はサイズを変更するだけです。それは確かに機能しますが、無視されることが保証されているデータをバインドするのはちょっと奇妙で、おそらく少しばかげたやり方です。
これは、よく使用される規則ですか、これを行うための別の標準的な方法があり、例えば:
- A私はちょうど
svg.append('rect')
を使用して、削除 - に遭遇していませんでしたD3方法+サイズ変更時にそれを再描画する
svg.selectAll('*').remove()
すべてゼロから再描画しますか?- 要素を削除し、再描画他に何か