2016-11-17 46 views
0

我在可視化儀表板工作,我面臨的問題很少在d3/Canvas JS中操作數據的最佳方式是什麼?

我很困惑在d3js和canvasjs中選擇什麼。儘管d3js在良好的視覺效果方面具有豐富的功能,但我更喜歡畫布,因爲它易於創建圖表,如果您仍有任何想法可供我進一步選擇,請幫助它。

目的: 我想創建一個交互式儀表板,在視覺效果上有很多交叉過濾器的任何建議嗎? 來自API的數據調用模式;我應該完全從服務器獲取數據並處理java腳本中的數據,還是應該分別爲每個圖表獲取數據。

如果我從數據庫中獲取整個聯接數據,儀表板的數據大小過大(超過2 MB),並且如果我獲取的是特定圖表的精確數據,則它會減少。一個例子可能有助於更好的理解。

考慮我有一個包含多個列從不同的表連接,我的儀表盤有4個圖表

銷售視圖數據
chart 1: Bar chart for sales by item group 
chart 2: Pie chart for sales by sales person 
chart 3: Line Graph showing the sales by hours (week days): trend of the sales at the shop 
chart 4: Total Sales, Total Orders KPI 

數據收集:我可以通過REST API其中將分別獲得每個和數據每圖表只包含該圖表的數據(或)我可以從表中獲取數據作爲一個整體,這將是巨大的(超過2 MB,隨着銷售額的增長而增長)。

交互性:當我點擊圖表1(條形圖)的任何項目組時,其餘圖表應根據所選項目組進行過濾:(編寫過濾器js代碼將有所幫助,對好奇的首選方式感興趣)

哪種方法我更喜歡數據獲取和交叉過濾。

回答上述問題將更加調用懷疑

由於

回答

2
  1. CanvasJs使用HTML5的canvas元件是更創建圖表的和D3使用svg。由於CanvasJs具有快速的響應時間,因此可以使canvas上的D3優於D3,因此CanvasJs中的渲染速度非常快。如果你想要快速的響應時間,並且沒有太多的數據計算/過濾器,那麼你可以使用CanvasJs。
  2. D3更多的是基於過濾器的過濾圖表,可以在您的情況下使用。儘管你會處理銷售數據。您將需要過濾器,因此,一旦將過濾器應用於一個圖表,與該過濾器相關的更改應反映到其他圖表。 D3使用交叉過濾器,並能夠過濾掉所有相關信息並相應地呈現其他圖表。
  3. Canvas和D3都支持Arrays,Json和CSV格式。
+0

是過濾器是我的主要事情,所以我應該使用D3然後,謝謝你的回覆。 – Shahabaz

+0

歡迎您@Shahabaz,那麼你可以接受這個答案:) – ashishraaj

相關問題