https://github.com/mbostock/d3/wiki/SVG-Axesから役立つ可能性のある2つのこと:
# axis.ticks([arguments…])
基になるスケールのティック関数に渡される引数を取得または設定します。指定された引数はscale.ticksに渡され、ティック値が計算されます。定量的スケールの場合は、などの目的のティックカウントを指定しますaxis.ticks(20)
。
これは、使用するティックの数を示唆します(ただし、常にあなたの声を聞くとは限りません)が、ズームインしたときの混乱を減らすことができます。
また:
# axis.tickValues([values])
明示的なティック値を取得または設定します。配列値が指定されている場合、スケールのティックジェネレーターを使用するのではなく、値がティックの生成に使用されます。値がnullの場合、以前に設定された明示的な目盛り値をクリアし、スケールの目盛りジェネレーターに戻ります。値が指定されていない場合は、現在設定されているティック値があればそれを返します。たとえば、特定の値でティックを生成するには、次のようにします。
var xAxis = d3.svg.axis()
.scale(x)
.tickValues([1, 2, 3, 5, 8, 13, 21]);
これにより、目盛りが明示的に設定されるため、目盛りをに設定できますが[0, 1]
、ユーザーがズームアウトしたときに手動で修正する必要があります。おそらく、ズーム範囲などで整数を計算することができます。