2012-11-13 90 views
0

我正在做一些關於遊戲分析的圖表。這是基本的假設。D3js json結構

玩家可以做出三種可能的動作。 玩家可以攻擊 玩家可以deffend

播放器可以運行(2個方向向前或向後)

每個動作可以在三個戰場之一(BG一,BG B,BG C)

發生

玩家可以是人類或外星人。關於種族的每個玩家都可以擁有一個等級。

每個玩家在特定的時間執行特定動作。

現在我需要繪製這些東西。

球員比賽 餅圖,其中的動作發生(其中的3個戰場) 玩家一個條形圖水平 用於攻擊的折線圖基於時間 的餅圖折線圖防衛過當基於時間 基於時間的運行線圖(每個運行方向的線上線)

每個圖表需要連接到其他線圖(kondof crossfilter flight chart are)。因此,舉個例子,如果我點擊與玩家競賽的餅圖並選擇人類,則其他圖表會相應更新以反映關卡,戰場和與該種族相關的行動。

底線是我很難構建我的JSON輸入。任何專家都可以給我一些提示嗎? 謝謝你的時間。

+0

您不會找到滿足所有圖表需求的數據結構。你應該建立一個API,讓你回到每個圖表所需的東西。 –

+0

問題是格雷厄姆應該連接所有圖表。 – pocorschi

回答

1

正如我所看到的,最靈活的方法是用時間戳建立一系列「事件」(事件可以是玩家可能做的任何事情)。喜歡的東西:

var playerEvents = [ 
    { timestamp: 1352848500, player:'human', action:'attack', location:'bg A' }, 
    { timestamp: 1352848600, player:'alien', action:'run', meta:'dir=left', location:'bg B' }, 
    .... 
] 

一旦你的,你想展示將涉及過濾該陣列事件到任何你需要爲給定的圖形任何統計數據。

+0

謝謝meetamit。這有點像我正在考慮的那樣。但是,如果同一玩家在此場景中有多個事件是正確的,那麼這不會成爲問題嗎? – pocorschi

+0

我不明白這將是一個問題。這是一系列事件。它可以過濾到滿足條件的多個事件的較小陣列(例如'action =='run'&& player =='human'')。 Crossfilter航班示例使用[格式相同的數據](http://square.github.com/crossfilter/flights-3m.json)。 (我應該說我還沒有使用Crossfilter)。 – meetamit