_d3.svg.axis
_のラベルが重複することがあるという問題があります。そのため、ティックとラベルの最大量を特定の量に減らしたいと思います。
APIドキュメント で解決策を見つけることができないようです。
範囲は動的であり、数時間から数年に及ぶ可能性があるため、axis.tickValues()
を使用できません。
axis.ticks(9)
を使用してみましたが、効果がないようです。 bl.ocks.org/3181719 の例を見ることができます。
これらの2つのうちの1つがあなたのためにそれをするべきです。目盛りの数を指定するにはaxis.ticks(10)
を指定し、実際に表示する目盛りを指定するにはaxis.tickValues([1,2,4])
を指定します。
日付を使用しているため、次のようにする必要があります。
.ticks(d3.time.weeks, 2)
時間間隔の詳細については https://github.com/mbostock/d3/wiki/Time-Intervals を参照してください。 http://bl.ocks.org/196217 でこれを行う方法の例を示し、表示されている時間の長さに基づいてティックを更新します。
if ((maxExtent - minExtent) > 1468800000) {
x1DateAxis.ticks(d3.time.mondays, 1).tickFormat(d3.time.format('%a %d'))
x1MonthAxis.ticks(d3.time.mondays, 1).tickFormat(d3.time.format('%b - Week %W'))
}
else if ((maxExtent - minExtent) > 172800000) {
x1DateAxis.ticks(d3.time.days, 1).tickFormat(d3.time.format('%a %d'))
x1MonthAxis.ticks(d3.time.mondays, 1).tickFormat(d3.time.format('%b - Week %W'))
}
else {
x1DateAxis.ticks(d3.time.hours, 4).tickFormat(d3.time.format('%I %p'))
x1MonthAxis.ticks(d3.time.days, 1).tickFormat(d3.time.format('%b %e'))
}