2013-12-10 37 views
0

我想呈現時間序列條形圖寬度dc,crossfilter和d3。從1989年的JSON數據變爲2010,看起來像這樣:使用時間序列條形圖時錯誤的x軸標籤

[{ 
    year: 1999, 
    events: 40 
},{ 
    year: 1996, 
    events: 25 
}, 
... 
] 

爲了使其我有以下代碼:

var volumeChart = dc.barChart("#yearly-chart"); 
var ndx = crossfilter(data); 
var yearDim = ndx.dimension(function(d) { 
    return d.year; 
}); 

var countPerYear = yearDim.group().reduceSum(function(d) {return d.events;}); 

volumeChart 
    .width(700) 
    .height(200) 
    .margins({top: 50, right: 50, bottom: 20, left: 40}) 
    .dimension(yearDim) 
    .group(countPerYear2) 
    .elasticY(true) 
    .x(d3.time.scale().domain([1989, 2011])) 

volumeChart.render() 

這類作品,但在X年標籤軸奇怪搞砸:

Graph with wrong X axis-labels

如果我使用Date對象來確定,如x軸:

x(d3.time.scale().domain([new Date(1989, 1, 1), new Date(2010, 12, 31)])) 

我在圖中沒有得到任何數據,雖然看起來應該是這樣做的正確方法。我究竟做錯了什麼?

+1

Date對象確實是要走的路,但是您還需要將JSON中的日期解析爲這些對象。因此,無論您在何處加載數據,也要分析日期。 –

+0

就是這樣,它非常有意義。謹慎地寫這個答案,以便我可以將其標記爲正確的? – GiantSquid

+0

當然,會做,謝謝。 –

回答

1

日期對象的確是要走的路,但是您還需要將JSON中的日期解析爲這些對象。因此,無論您在何處加載數據,也要分析日期。

相關問題