如何使用Javascript D3将单列CSV文件导入饼图?
希望我能正确地解释我自己,因为我是JS新手,但我需要导入一个CSV文件作为饼图的数据。我的csv文件只是一列,标题为“Type”,值不尽相同。有三种类型:中、低、高,总共有63个值 我目前正在做的是d3.csv(“types.csv”)。在这一步之后,我不知道如何让它读取数据作为3个独立的值。那么,我该怎么做呢?我可以让它在对象数组上迭代并递增一个空数组,然后让饼图将其用作数据吗?伪代码示例: 变量类型={} foreach类型 +1类 到头来 变量类型={Low:2,Medium:4,High:10} 然后将其解析为饼图 希望我讲得通!:) 谢谢。您可以使用,它将组缩减为一个值,并返回一个值如何使用Javascript D3将单列CSV文件导入饼图?,javascript,csv,d3.js,Javascript,Csv,D3.js,希望我能正确地解释我自己,因为我是JS新手,但我需要导入一个CSV文件作为饼图的数据。我的csv文件只是一列,标题为“Type”,值不尽相同。有三种类型:中、低、高,总共有63个值 我目前正在做的是d3.csv(“types.csv”)。在这一步之后,我不知道如何让它读取数据作为3个独立的值。那么,我该怎么做呢?我可以让它在对象数组上迭代并递增一个空数组,然后让饼图将其用作数据吗?伪代码示例: 变量类型={} foreach类型 +1类 到头来 变量类型={Low:2,Medium:4,High
d3.汇总
将使用指定的缩减器缩减任何组:组由grouper函数确定
我们使用d=>d.type
进行分组,因此具有相同类型的任何值都在同一组中。分组后,您将得到一个如下所示的映射
:
d3.group(数据,d=>d.type)
==
地图(3){
对象的“高”=>数组(1)//
“中等”=>阵列(2)
“低”=>阵列(4)
}
然后,我们减少每组,这里使用v=>v.length
。d3获取我们刚刚创建的每个组(每个映射),并应用该函数,将数组转换为值。这里它将取每个组的长度:对于低组,它将返回4,因为组中有四个条目
const data=d3.csvParse(`type,value
中等,7,2
中等,5
低,0.2
低,3.4
高,2
低,1
低,1`)
常数分组=
d3.汇总(数据,v=>v.length,d=>d.type)
console.log(“低:”,grouped.get(“低”))
console.log(“中:”,grouped.get(“中”))
console.log(“高:”,grouped.get(“高”))
d3.rollup(data, v => v.length, d => d.type)
// reducer grouper