2017-04-27 30 views
1

我有一個自動生成的蜱一軸:爲D3軸如何獲得自動生成tickValues

var yAxisRight = d3.axisRight(yScale) 
var yAxisRightG = g.append("g") 
    .call(yAxisRight); 

// What to call here 
var yAxisRightTickValues = ??? 

天真我想呼籲像yAxisRight.tickValues()東西會給我的價值,但是當它們會自動生成該回報null

如何獲得由d3(版本4)自動生成的tickValues?

回答

1

如果您有連續比例,則可以使用scale.ticks()來獲取傳遞給軸生成器的滴答。

在此演示中,顯示了console.log各軸的刻度:

var scale = d3.scaleLinear() 
 
    .range([20, 280]); 
 

 
[100, 50, 210, 350].forEach(function(d, i) { 
 
    scale.domain([0, d]); 
 
    d3.axisBottom(scale)(d3.select("svg").append("g").attr("transform", "translate(0," 
 
    + (10 + 25 * i) + ")")); 
 
    console.log("the scale " + i + " has these ticks: " + scale.ticks()) 
 
})
<script src="https://d3js.org/d3.v4.min.js"></script> 
 
<svg></svg>