2013-06-03 72 views
10

我花了一天的好時間試圖獲得一個很好的日期軸直方圖,以至於我在第一個問題上發佈了stackoverflow。d3 +交叉過濾器:日期軸渲染像素條

bars are too thin

軸和堆疊正是我想要的方式,但是酒吧真的瘦了沒有(對我來說)明顯的原因。換句話說,我真的很感激一些幫助。

下面是一個最小化版本(我使用了dc.js庫,但是我很有信心的挑戰是代表D3 + crossfilters):

var jsonstr = [{"timestamp": "2013-06-13T11:04:24.729Z"},{"timestamp": "2013-06-17T11:03:24.729Z"},{"timestamp": "2013-06-17T11:02:24.729Z"},{"timestamp": "2013-06-19T11:02:14.129Z"}]; 

var ndx = crossfilter(jsonstr); 

var timestampD = ndx.dimension(function (d) { 
    return new Date(d.timestamp); 
}); 

var timestampDG = timestampD.group(function (d) { 
    return d3.time.day(d); 
}); 

var barChart = dc.barChart("#dc-bar"); 
barChart.width(500) 
    .height(250) 
    .dimension(timestampD) 
    .group(timestampDG) 
    .x(d3.time.scale().domain([(new Date(2013,05,12)), (new Date(2013,05,20))]).nice(d3.time.day)) 
    .xAxis().tickFormat(function (x) { 
     return x.getDate() + "/" + (x.getMonth()+1); 
    }); 

dc.renderAll(); 

回答

13

我認爲,真正的問題在於如何你正在使用dc.js;你不指定什麼units的條形圖應該是試試這個:

barChart 
    .width(500) 
    .height(250) 
    .dimension(timestampD) 
    .xUnits(d3.time.days) 
    .ect 
+0

斑點!那就是訣竅。非常感謝! –

+2

上個月我花了5個小時對這個問題感到沮喪;很高興我可以把別人的痛苦放在一邊。 –

1

其他任何人有這個問題,對他們來說,亞當的回答似乎並沒有做任何事情,請確保你沒有elasticX像我一樣設置爲true。

+1

謝謝!我正在努力與我的時間表(沒有什麼會顯示)ultil剛剛發現你的評論。 –