我正在d3.js中構建一個條形圖,其中每個條形圖表示一個月內的總TB個案。數據本質上包含一個日期(最初以%Y-%m格式串入,但使用d3.time.format.parse解析)和一個整數。我希望軸標籤相對靈活(僅顯示年份邊界,每個月的標籤等),但我也希望條形圖間隔均勻。d3.js - 在時間尺度上均勻間隔的條形圖
我可以得到靈活的軸標籤,當我用一個日期刻度:
var xScaleDate = d3.time.scale()
.domain(d3.extent(thisstat, function(d) { return d.date; }))
.range([0, width - margin.left - margin.right]);
...但酒吧不是均勻由於每月不同的天數(例如,二月和三月的間隔明顯比其他月份更接近)。我可以用線性度得到均勻間隔條:
var xScaleLinear = d3.scale.linear()
.domain([0, thisstat.length])
.range([0, width - margin.left - margin.right]);
...但我無法弄清楚如何再有基於日期軸標籤。我試過同時使用這兩種尺度,只從xScaleDate
生成一個軸,只是爲了看看會發生什麼,但尺度自然不能很好地對齊。
有沒有一種簡單的方法來實現這個,我失蹤了?
這聽起來像問題是,D3是從實際的時間戳設置XPOS。如何計算'data.monthsFromJan2000'或類似的數據,並將其用作xpos的數據輸入?這樣他們將平均分配。爲了標記目的,您還可以存儲'data.year'和'data.month'。 – Plato