如何为D3轴自动生成tick值

  • 本文关键字:自动生成 tick D3 d3.js
  • 更新时间 :
  • 英文 :


我的轴具有自动生成的滴答:

var yAxisRight = d3.axisRight(yScale)
var yAxisRightG = g.append("g")
    .call(yAxisRight);
// What to call here
var yAxisRightTickValues = ???

天真的我认为,诸如yAxisRight.tickValues()之类的东西会给我值,但是当它们自动生成时,此返回null

如何获得D3自动制造的tick值(版本4(?

如果您有连续刻度,则可以使用 scale.ticks()将tick传递到轴发生器。

在此演示中,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>

最新更新