【发布时间】:2016-05-17 10:36:27
【问题描述】:
我正在寻找有关如何通过 d3.js 有效使用大量数据的建议。例如,我的数据集取自原始 .csv 文件(从 excel 转换而来);
EA
,Jan_2016,Feb_2016,Mar_2016
Netherlands,11.7999,15.0526,13.2411
Belgium,25.7713,24.1374
France,27.6033,23.6186,20.2142
EB
,Jan_2016,Feb_2016,Mar_2016
Netherlands,1.9024,2.9456,4.0728
Belgium,-,6.5699,7.8894
France,5.3284,4.8213,1.471
EC
,Jan_2016,Feb_2016,Mar_2016
Netherlands,3.1499,3.1139,3.3284
Belgium,3.0781,4.8349,5.1596
France,16.3458,12.6975,11.6196
我想使用 csv 来表示这些数据的最佳方式是这样的;
Org,Country,Month,Score
EA,Netherlands,Jan,11.7999
EA,Belgium,Jan,27.6033
EA,France,Jan,20.2142
EA,Netherlands,Feb,15.0526
EA,Belgium,Feb,25.9374
EA,France,Feb,23.6186
EA,Netherlands,Mar,13.2411
EA,Belgium,Mar,24.1374
EA,France,Mar,20.2142
这对我来说似乎很冗长,并且会占用大量时间。我想知道是否有更简单的方法可以做到这一点?
据我所知,我认为 JSON 可能是更合乎逻辑的选择?
对于这些数据将进入哪种图表的上下文,我希望创建一个饼图,该饼图可以根据所选国家/月份更新数据,并每次比较三个组织的得分。
(请想象一下) http://plnkr.co/edit/P3loEGu4jMRpsvTOgCMM?p=preview
感谢您的建议,我有点迷路了。
【问题讨论】:
-
这取决于您要优化什么... 磁盘使用情况?从原始数据转换的简单性?快速加载?反应式饼图?适合将来添加吗?
-
它们听起来都很重要!我认为从原始数据转换的简单性和适合未来添加的简单性是最重要的。
-
你试过转换成你想要的格式吗?您从 excel 获得的原始 csv 文件看起来不正确。我的意思是,如果 Excel 表顶部的值是日期、左侧的国家和介于两者之间的值,那么第一个值(在 Jan_2016 之前)不应该为空吗?
-
是的 - 很抱歉造成混乱,我只是在写帖子时将其删除,当我将 excel 文件导出到 csv(仅使用另存为 .csv)时,它的前面确实有逗号日期,我将编辑帖子以将其放回 - 谢谢
-
您需要在国家/地区上方添加一个名称,例如,Country as as you can't have a empty attribute。从那里如果你只是使用 d3.csv("csvlink.csv", function(data){}) plnkr.co/edit/cKrhGF4QRbzXRsjTDQoj?p=preview 然后你可以像使用 D3 中的任何其他数据集一样使用它。检查示例的控制台日志。这就是你想要的吗?
标签: javascript csv d3.js nested hierarchical-data