私の目標は、棒グラフからデータポイントを削除することです。
次に、それ自体を更新し
ます。X軸とY軸を
更新します。実際の棒グラフを
更新します。凡例 を更新します。
私が抱えている問題:
グラフの長方形をexit()。remove()すると、コードは凡例の長方形も削除します。凡例に長方形を入力()しようとすると、長方形が表示されません。ここで何が起こっているのかわかりませんが、データの変更により要素の追加と削除に成功していません。どんな助けでもいただければ幸いです。
問題が発生していると思われる場所のコードスニペット:
これは、凡例の長方形も削除する部分です(これをここで行うか、凡例の入力/更新/削除部分で行うかはわかりません)
以下のコードは、ユーザーが「すべて削除」ボタンをクリックした直後に実行されます。ここでの私の意図は、1つのバー(「ALL」という名前のバー)のみを削除し、チャートを更新することです。
//Select rectangles
var bars = svg.selectAll("rect")
.data(dataset, function(d) { return d.State; });
//Enter rectangles
bars.enter()
.append("rect")
.style("fill", function(d,i) { return color(i) })
.attr("x", function(d) { return xScale(d.State); })
.attr("y", function(d) { return yScale(d.CustomerCount) })
.attr("width", xScale.rangeBand()) //returns rangeRoundBands width
.attr("height", function(d) { return h - yScale(d.CustomerCount) });
//Update rectangles
bars.transition()
.duration(1000)
.style("fill", function(d,i) { return color(i) })
.attr("x", function(d) { return xScale(d.State); })
.attr("y", function(d) { return yScale(d.CustomerCount) })
.attr("width", xScale.rangeBand()) //returns rangeRoundBands width
.attr("height", function(d) { return h - yScale(d.CustomerCount) });
//Exit rectangles
bars.exit()
.transition()
.duration(500)
.attr("x", w)
.remove();
コード全体は次のとおりです:http:
//plnkr.co/edit/Nue5bocQsI4E6D5wfNSP
少し小さいコード
を次に示します。コードを可能な限り削減しようとしましたが、それでもかなり大きいです。
http://jsfiddle.net/aNQWV/