作爲一個先驅,我對d3/js非常陌生。我試圖建立一個基於Mike Bostock提供的example的分組條形圖。他的例子非常好,我理解了大部分源代碼,但我不知道如何將它翻譯成我的數據。 mbostock示例提供的數據是csv,我的數據是json - 不幸的是,這些格式有很大的不同。將json數據分組以創建分組條形圖
mbostock csv示例在頁面上可用,我在下面粘貼了我的json數據。
{"data":[{"id":455211,"name":"Bacon Portabella Melt on Brioche","volume":15,"trend":{"years":2013,"quarters":4,"months":10}},{"id":455097,"name":"Pretzel Bacon Cheeseburger","volume":287,"trend":{"years":2013,"quarters":4,"months":10}},{"id":455315,"name":"Spicy Chipotle Jr Cheeseburger","volume":0,"trend":{"years":2013,"quarters":4,"months":10}},{"id":455211,"name":"Bacon Portabella Melt on Brioche","volume":1474,"trend":{"years":2013,"quarters":4,"months":11}},{"id":455097,"name":"Pretzel Bacon Cheeseburger","volume":155,"trend":{"years":2013,"quarters":4,"months":11}},{"id":455315,"name":"Spicy Chipotle Jr Cheeseburger","volume":0,"trend":{"years":2013,"quarters":4,"months":11}},{"id":455211,"name":"Bacon Portabella Melt on Brioche","volume":1623,"trend":{"years":2013,"quarters":4,"months":12}},{"id":455097,"name":"Pretzel Bacon Cheeseburger","volume":47,"trend":{"years":2013,"quarters":4,"months":12}},{"id":455315,"name":"Spicy Chipotle Jr Cheeseburger","volume":13,"trend":{"years":2013,"quarters":4,"months":12}}],"countInfo":{"globalTotal":3649,"total":4359},"metadata":{"runDate":1435260902236,"resultSource":0}}
該數據是API調用的結果。我的目標是以一種方式操作json數據,以便我可以在d3中輕鬆地綁定它並調用它。例如,我希望能夠以「十月(十月) - 十五,十一月(十一月) - 十四月七日,十二月(十二月) - 十月十五日 - 十一月1623「,或者換句話說,」十月份,每個漢堡都有x卷,11月......「。
要坐上開往數據,mbostock使用以下:
var ageNames = d3.keys(dataset[0]).filter(function(key) { return key !== "State"; });
dataset.forEach(function(d) {
d.ages = ageNames.map(function(name) { return {name: name, value: +d[name]}; });
});
但我似乎無法遵循這個,因爲我繼續運行在foreach函數後會返回一個空數組。
我瞭解SVG方面的繪圖,所以我想在我克服這個障礙後,我可以成功地建立我的條形圖。任何援助非常感謝 - 一步一步的「傻瓜」(AKA我)指導將是最好的,但如果你剛剛得到一般性意見或另一個鏈接指向我,這也是非常棒的。