2012-08-27 43 views
5

這裏是我的demo(永久鏈接;可能需要第二次加載)。如何使用d3.js和crossfilter數據創建直方圖?

我有幾個問題吧:

  1. 的crossfilter關鍵並不反映的上邊界。因此,x軸缺少一個步驟。

    enter image description here

    我管理通過獲取一組步長大小(group.all()[1] - group.all()[0]),然後將它添加到d3.extent(group.all())[1]修復它。因爲這是一個骯髒的修復程序,所以我沒有將其包含到演示中(可能存在數據間隙)。獲得組步長/修復x軸的方法較少?

  2. 酒吧之間有不平衡的差距。我無法弄清楚如何解決不同數據集的x.scale不一致問題。

    enter image description here

    我想要的條碼寬度自動適應可用的圖形寬度。因此,我計算出最佳的條寬,然後(如果需要)調整圖本身:

    bar_width = math.round(graph_width/data_length); 
    graph_width = bar_width*data_length; 
    

    在這種條件下,沒有辦法x.scale可以針對任何密鑰值返回不均數據,但它確實。沒有魔法;我只是俯視一些東西。但是它是什麼?

    x.scale弄亂然後扣除從graph_widthbar_width設定x.scale範圍之前解決該問題。雖然,我無法弄清楚什麼時候x.scale沒有按預期行事的情況。

回答

2

我花了很多時間試圖找到正確的方法來做到這一點。但是,我最終使用簡單的數學來猜測上面的數據邊界。還有很多問題尚待解決,例如如何在視覺上處理極端事件。

enter image description here

我試圖開發一個可重用的直方圖庫訪問on github

+0

這太棒了!無論如何都有默認突出顯示它? – by0

+0

很長時間沒有碰過這個。如果您在GitHub上提交問題/功能請求,我會查看它。 – Gajus