簡體   English   中英

D3條形圖並使用多個刻度

[英]D3 bar chart and using multiple scales

我正在使用d3創建“趨勢”分析條形圖。 此圖表具有在中間的X軸,並且可以延伸高於或低於該軸桿以表示百分比變化。 為X軸序,並為Y軸的兩個線性刻度 - 我用3台秤做到了這一點。 我不確定這兩個線性刻度的用法。 看起來不雅,只是“不正確”。

有問題的秤:

this.pyscale.domain([0, 1]);
this.pyscale.rangeRound([this.height/2, 0]);

this.nyscale.domain([-1, 0]);
this.nyscale.rangeRound([this.height, this.height/2]);

與繪制條有關的功能:

bar.append("rect")
   .attr("y", function(d) { 
        if (d[that.ycol] >= 0) {
            return that.pyscale(d[that.ycol]);
        }
        return that.height/2; 
    })
   .attr("height", function(d) { 
        if (d[that.ycol] >= 0) {
            return that.height/2 - that.pyscale(d[that.ycol]);
        }
        return that.nyscale(d[that.ycol]) - that.height/2;
    })
   .attr("width", this.xscale.rangeBand())

這是一種體面的方式嗎? 還是有一種使用我缺少的Y刻度的更優雅的方式?

謝謝你的時間。

從您的描述看來,您應該可以像這樣用一個秤代替兩個秤:

this.yscale.domain([-1, 1]);
this.yscale.rangeRound([this.height, 0]);

並在其余代碼中使用this.yscale

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM