我正在使用D3 v4(大多數,如果不是全部的話,那裏是v3的例子)。回到v3,他們有一種叫做rangeBand()的東西,它可以爲我動態地將所有東西整齊地放置在x軸上。在D3 v4中,如何讓條形的寬度以刻度爲中心?
現在,在第4版中,我想知道該怎麼做。
我有一個條形圖:
var barEnter = vis.selectAll("g")
.data(rawdata)
.enter()
.append('g')
.append("rect")
.attr("class", "bar")
.attr("x", function(d) { return x(d.key); })
.attr("y", function(d) { return y(d.value); })
.attr("height", function(d) { return height - y(d.value); })
.attr("width", canvas_width/rawdata.length);
正是這條這是搞亂我的寬度。如果我將它設置爲canvas_width/rawdata.length
,它很好地將條形放置在x軸上的每個刻度周圍。問題是所有的酒吧被壓在一起,並沒有填補之間。
因此,自然,我試圖做x.paddingInner(.5)
這不會增加一些填充,但現在酒吧不圍繞刻度標記。與x.paddingOuter()
做什麼事情更多。
四處搜尋後,我發現rangeBand()
是我想要的,但這隻適用於v3。在v4文檔中,沒有看起來像它的東西。是rangeRound()
?是align()
?我不確定。如果任何人都可以指引我正確的方向,它將不勝感激。
太謝謝你了!這正是我需要的。 – noblerare