d3.jsでグラフ化するデータセットがあります。x軸は時間(分単位)を表します。この軸をフォーマットで表示したいのhh:mm
ですが、d3内でこれをきれいに行う方法が見つかりません。
私の軸コードは次のようになります:
svg.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + height + ')')
.call(d3.svg.axis()
.scale(x)
.orient('bottom'));
[100, 115, 130, 140]
などのようなラベルを数分で生成します。
私の現在の解決策は、text
要素が生成された後に要素を選択し、それらを関数でオーバーライドすることです。
svg.selectAll('.x.axis text')
.text(function(d) {
d = d.toFixed();
var hours = Math.floor(d / 60);
var minutes = pad((d % 60), 2);
return hours + ":" + minutes;
});
[1:40, 1:55, 2:10]
これは、などのような軸ティックを出力します。
しかし、これはぎこちなく感じ、の使用を避けますd3.format
。これらのラベルを作成するためのより良い方法はありますか?