gpt4 book ai didi

javascript - 如何从 CSV 文件中提取信息以用于堆叠条形图

转载 作者:行者123 更新时间:2023-12-03 04:26:59 24 4
gpt4 key购买 nike

我有一个真实的数据集(https://data.gov.uk/dataset/road-traffic-accidents - 2009),我试图从中提取信息,它有大约 2500 个项目作为样本 -

enter image description here

我使用 d3 创建一个堆积条形图,在 x 轴上显示类别 - “轻微、严重、致命”,在 y 轴上显示每个类别的事故频率。实际的酒吧本身将分为女性和男性事故的数量。

目前,我正在尝试找出如何最好地从 csv 中提取信息。查看了各种 d3 堆叠图表的一些示例后,数据似乎是这样排列的(示例来自 - http://www.adeveloperdiary.com/d3-js/create-stacked-bar-chart-using-d3-js/ ) -

	var data=[

{month:'Jan', A:20, B: 5, C: 10},
{month:'Feb', A:25, B: 10, C: 20}

]
var xData = ["A", "B", "C"];

因此,以该示例为基础,我猜测格式化此特定 csv 中的数据的最佳方式可能是? -

	var data = [

{'Casualty Severity':'Slight', 'Male': 1567, 'Female': 1200 },
{'Casualty Severity':'Serious', 'Male': 100, 'Female': 120 },
{'Casualty Severity':'Fatal', 'Male': 15, 'Female': 5 }
]

不幸的是,我不太擅长格式化数据,但大致知道如何使用 d3.nest 提取

	d3.csv('/road_accidents/2009.csv', function(data) {
var severity = d3.nest()
.key(function(d) {
return d['Casualty Severity'];
})
.entries(data);

console.log(severity)
})

在控制台中提供此输出 -

enter image description here

扩展看起来像这样 -

enter image description here

所以我想,问题是格式化数据的最佳方法是什么,使用在堆积条形图中使用的真实数据集,这是否是正确的方法?

任何帮助将不胜感激!

最佳答案

这是组织数据的一种方法,可以在构建堆积条形图时轻松使用。如果您不希望它嵌套得太多,可以进一步简化它。

var url = "https://aql.datapress.com/leeds/dataset/road-traffic-accidents/2016-05-19T15:29:13/2009.csv";

d3.csv(url, function(data) {
var severityBySex = d3.nest()
.key(function(d) { return d['Casualty Severity'];})
.key(function(d) { return d['Sex of Casualty']; })
.entries(data);

for (var i = 0; i < severityBySex.length; i++){
console.log(severityBySex[i].key + " - " + "MALE: " +
severityBySex[i].values[0].values.length + " - "
+ "FEMALE: " + severityBySex[i].values[1].values.length);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

关于javascript - 如何从 CSV 文件中提取信息以用于堆叠条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43667591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com