Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript D3将单列CSV文件导入饼图?_Javascript_Csv_D3.js - Fatal编程技术网

如何使用Javascript D3将单列CSV文件导入饼图?

如何使用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

希望我能正确地解释我自己,因为我是JS新手,但我需要导入一个CSV文件作为饼图的数据。我的csv文件只是一列,标题为“Type”,值不尽相同。有三种类型:中、低、高,总共有63个值

我目前正在做的是d3.csv(“types.csv”)。在这一步之后,我不知道如何让它读取数据作为3个独立的值。那么,我该怎么做呢?我可以让它在对象数组上迭代并递增一个空数组,然后让饼图将其用作数据吗?伪代码示例: 变量类型={} foreach类型 +1类 到头来 变量类型={Low:2,Medium:4,High:10} 然后将其解析为饼图

希望我讲得通!:)

谢谢。

您可以使用,它将组缩减为一个值,并返回一个值

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