我有一個數據集,我用d3.js繪圖。 x軸表示時間(以分鐘爲單位)。我想以hh:mm
的格式顯示此軸,並且我無法在d3中找到乾淨的方法。如何在d3.js中創建一個自定義軸格式化程序幾小時和幾分鐘?
我軸線的代碼如下所示:
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
。有沒有更好的方法來製作這些標籤?
,我想我應該提到,我的用例是直方圖(與表示時間的分級對象)。我很確定這是一個有序的規模,但我一直無法完成這項工作。也許我只是混合了不兼容的概念? 這裏是我的代碼(軸在底部):http://pastebin.com/Wkcexcgr – matthewsteele
我編輯了我的答案,並添加了一個示例,顯示如何結合持續時間直方圖使用第二種技術。 – mbostock
這是做到了。感謝你的幫助!真的很驚訝你已經建立了什麼。 – matthewsteele