2014-08-28 80 views
1

考慮以下VND3線圖:http://jsfiddle.net/tramtom/hfv68yan/D3.js線圖與在Y軸相對min和max

的曲線圖繪製線確定,但大多數我的數據是靜態長時期,並且兩個系列將始終有一個位於圖形的頂部,而另一個位於底部的軸上。

如何創建Y軸的相對最小值和最大值,使系列的線幾乎處於中間或至少有間隔,以便低值系列不會幾乎完全位於x軸上。

需要在最小值之上添加100個單位,並在最大值之上添加100個單位,以便線條不在圖形的頂部或底部。

我試着設置也喜歡在這裏http://jsfiddle.net/tramtom/hfv68yan/1/域和範圍值,但沒有任何效果

var yScale = d3.scale.linear() 
.domain([ 
    d3.min(data, function (d) { 
     return d.y; 
    }) - 100, 
    d3.max(data, function (d) { 
     return d.y; 
    }) + 100 
]) 
.range([ 
    d3.min(data, function (d) { 
     return d.y; 
    }), 
    d3.max(data, function (d) { 
     return d.y; 
    }) 
]); 
+0

可能重複[d3.js&nvd3.js - 如何設置y軸範圍](http://stackoverflow.com/questions/11766879/d3-js-nvd3-js-how-to-set -y軸範圍) – shabeer90 2014-08-29 07:27:36

回答

1

您需要通過添加.forceY([0,500])到圖表實例來強制軸範圍。

This SO answer可能會對您有所幫助。至少應該指出你朝着正確的方向。

+0

使用'.forceY()'將Y軸設置爲「靜態」,並且通過單擊圖例添加或刪除系列時,圖表不會動畫並調整Y軸以反映當前系列最大值和最小值。我正在尋找一種方法來保持圖表相同的行爲,只需將一定數量的單位添加到當前系列的最大值和最小值。 – edteke 2014-08-29 13:57:27

+0

我沒有想到.forceX()或.forceY()正在工作,然後我發現在這個答案中,你需要把你的範圍放在一個數組中,並將其傳遞給方法。 – 2015-03-03 15:12:27