2013-03-20 148 views
4

我在d3中創建了一個簡單的條形圖,並用'.ticks(3)'格式化y軸,表示我想看到3個刻度標記。但是,根據數據的不同,我有時會看到3個刻度線,有時會看到4.另外,即使我得到3個刻度標記,刻度線也是在軸標籤上的1/4左右,然後是另一個50%,然後是另一個在3/4。我如何強制d3設置3個軸標籤,一個在底部,一個在中間,一個在頂部?如何在d3中指定軸刻度線的數量?

回答

4

您可以將一個滴答陣列傳遞給一個軸,然後該軸將在數組中的點上繪製滴答。

這是一些示例代碼。創建一個軸,其運行介於0和100之間。刻度標記根據'ticks'數組繪製在0,50,60和100處。

svg = d3.select("svg") 

var myScale = d3.scale.linear() 
     .domain([0,100]) 
     .range([0,400]); 


var ticks = [0,50,60,100]; 

var myAxis = d3.svg.axis() 
    .scale(myScale) 
    .tickValues(ticks); 

svg.append("g") 
.attr("class", "axis") 
.call(myAxis) 
.attr("transform","translate(100,100)"); 

這裏是一個交互式的例子: http://tributary.io/inlet/5207532