Here's my go-to-answer for how to put data into a jsFiddle。基本上最簡單的方法是將它粘貼到HTML中未使用的標籤中。 bl.ocks.org/blockbuilder.org更容易。
這是你擺弄的一個分支與數據加載的方式: http://jsfiddle.net/gordonwoodhull/bu2ag0f7/17/
我也不得不刪除從列名的空間,因爲那些有d3.csv
困惑並引起BITRATE
計算失敗。
在renderlet內部還有一些雜亂的代碼,因爲dim
不存在的投訴而失敗。
數據未顯示的主要原因是因爲輸入組沒有生成可用的聚合數據。您的數據在時間上非常接近,因此按星期彙總會綜合所有內容。
調試這個問題的方法是把一個斷點或一個的console.log圖表初始化之前和看羣組。()
的結果在這種情況下bitrateWeekMinIntervalGroupMove和minIntervalWeekBitrateGroup正在返回與一個陣列鍵/值對。一點不能畫線。 :)
它看起來像你最初想要以15分鐘的時間間隔進行聚合,所以讓我們開始工作。
無論出於何種原因,crossfilter,維度級別和組級別都有兩個級別的聚合。這個維度將首先生成一個密鑰,然後該組將進一步優化這些密鑰。
您的min15函數會將每個時間鍵映射到它之前的15分鐘標記,但它需要分辨率高於15分鐘的數據。因此,讓我們把這些團體在dateDimension,這尚未被映射到一個更低的分辨率:
var minIntervalWeekBitrateGroup = dateDimension.group(min15).reduceSum(function (d) {
return +d.BITRATE
});
var bitrateWeekMinIntervalGroupMove = dateDimension.group(min15).reduce(
...
大,現在有30個數據點。它畫線。
我做了點小了些:)因爲在30個像素,這是很難看到的線條。
在使用範圍圖放大顯示更多行:
目前似乎仍然是在降低功能故障(或地方),因爲線下降到零,當你在太遠放大,但希望這足以讓你再次感動。
我的小提琴:http://jsfiddle.net/gordonwoodhull/bu2ag0f7/25/
您的幫助是無價的。謝謝Gordon所有的解釋,時間和代碼中的實際變化 - 我非常欣賞這一點 – Dani