我正在繪製基於兩個不同區域「倫巴第大區」和「emiglia」的數據的條形圖。在更新函數中使用d3.filter
下面是我的代碼的介紹。首先我通過過濾「倫巴第大區」來繪製圖表。現在我想通過從「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