2
私は、軸に刻々と刻みをつけたいと思うD3のグラフを持っています(例えば、「1月20日午前12時」)。d3 tickFormatを(day、time)にするにはどうすればいいですか?
xAxis.tickFormat(d3.time.format('%b %-d, %-I:%M%p'));
これは
- 1月20日、午前12時00分
- 1月20日、12:00
- 1月21日、12を生成します。
これは私がするのは簡単です: 00am
- 1月21日12:00 pm
- など...
私がしたいことは、その日が前のティックと同じである場合、その日を表示せずに時間を表示することです。
はこれです
- 1月20日、午前12時00分
- 12:00
- 1月21日、午前12時00分
- 12:00(基本的に異なるだけだ部分を表示)可能?あなたがtickFormatに提供するコールバックには、前の関数に与えられた値が与えられていないことがわかります。現在の値、目盛りのインデックス、および何らかの3番目の数字(それが何であるかわからない)
、。これは 'return timeFormatWithDate(d)'と 'return timeFormatWithoutDate(d)'だけで動作します。 –
@GerardoFurtadoああ、もともと私はd3 v4のためにこれを解決し、その後、OPがv3を使用していることを認識した後にv3のために書き直し、コードをクリーンアップするのを忘れてしまった。興味があれば、v4の実装を以下に示します:https://jsfiddle.net/Dogbert/gy5h364g/ – Dogbert
ここで少し修正すると、 'd.getDay()'ではなく 'd.getDate()'を使いたいと思います。 –