私は2つの異なる領域 "lombardy"と "emiglia"のデータに基づいて棒グラフを描画しています。更新機能でのd3.filterの使用
以下は私のコードのアウトテイクです。まず、 "lombardy"の領域をフィルタリングして、グラフを描画します。今私は、 "emiglia"から "d.value"を使用するためにトランジションを使ってバーを更新したいと思います。
g.select(".gdp").selectAll(".gdp-rect")
.data(data)
.enter()
.append("rect")
.classed("gdp-rect", true)
.filter(function(d) {return (d.type == "gdp") })
.filter(function(d) {return (d.region == "lombardy") })
.attr('x', function(d, i) {
return i * (width/4)
})
.attr('y', function(d) {
return h - yBarScale(d.value)
})
.attr('width', width/4 - barPadding)
.attr('height', function(d) {
return yBarScale(d.value)
})
.attr("fill", "#CCC")
.attr("opacity", 1);
function emiglia() {
g.selectAll(".gdp-rect")
.transition()
.duration(600)
.filter(function(d) {return (d.region == "gdp") })
.filter(function(d) {return (d.region == "emiglia") })
.attr('y', function(d) {
return h - yBarScale(d.value)
})
.attr('height', function(d) {
return yBarScale(d.value)
})
}
d3.filterに基づいて更新できますか?どちらの地域でd.valueを切り替えることができますか?
data.tsv
type region year value
gdp lombardy 2004 70
gdp lombardy 2008 50
gdp lombardy 2012 30
gdp lombardy 2016 110
gdp emiglia 2004 10
gdp emiglia 2008 15
gdp emiglia 2012 23
gdp emiglia 2016 70
これをよく説明していただきありがとうございます。私は間違いなくD3の方法を試したいと思っていましたが、複数のCSVを使用する必要がありませんでした。私はここに新しい質問を掲載していますあなたは時間がある場合(または私の忍耐!)ありがとうもう一度ありがとうhttp://stackoverflow.com/questions/39434213/d3-scroller-js-loading-data-from-multiple-csv-files – user3821345
私はあなたの質問を読んだ。なぜあなたはTSVを入れ子にしてすべてのデータを結合しないのですか? –
どのようにしてすべてのデータに参加できますか? – user3821345