d3只读取csv的第一个属性
d3 reads only first property of csv
所需结果
需要完全访问test.csv才能读取数据。
当前状态
我已经为不同的测试用例在文件中移动了一些值。似乎每一行的第一个条目,无论类型如何,都是唯一可以返回的条目。在任何时候我都没有得到任何控制台错误。
CSV
started, numb, eggs, waffles, name, cost
False, 34, "over easy", True, elle, 22
True, 24, "scrambled", False, belle, 22
False, 10, "fortunate", False, jake, 20
使用第3行console.log(data)
显示对象已成功加载了适当的键/值。
[1]Object
" cost": " 22"
" eggs": " "scrambled""
" name": " belle"
" waffles": " False"
numb: "24"
(d3在所有内容周围添加了引号,看起来像JSON。它们是否被转换为字符串,或者引号只是分隔符?(
d3.js
d3.csv("test.csv", function(data) {
console.log(data);
var canv = d3.select("body").append("svg")
.attr("height", 500)
.attr("width", 500)
canv.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("height", 15)
.attr("width", function(d) { return d.numb})
.attr("y", function(d, i) {return 50 + i * 20})
.attr("fill", "orange")
canv.selectAll("text")
.data(data)
.enter()
.append("text")
.attr("y", function(d, i) {return 50 + i * 20})
.text( function(d) {return d.started;})
});
在这种情况下,started
属性在屏幕上打印,但矩形的宽度为0。
当numb
是每行的第一个条目时,矩形具有适当的宽度,但不打印其他属性。
错误是什么
您的第一个问题是csv
文件的每个逗号后面都有空格。这是一个格式错误的文件,在真正的csv
文件中逗号是分隔符NOT逗号空间。
第二个问题是d3
不会将数据自动转换为特定类型。通常,您提供一个行转换函数来将数据转换为正确的格式。你的可能是这样的:
d3.csv("test.csv", function(d) {
return {
started: d.started === 'True',
numb: +d.numb,
eggs: d.eggs,
waffles: d.waffles === 'True',
name: d.name,
cost: +d.cost
};
}, function(data) {
console.log(data);
...
修复这些问题,您的可视化开始成形
对于自定义分隔符,您可以使用:
d3.dsv(', ')("your_file.csv", function(error, data){
...
}
安装:
npm install d3-dsv
对我有效的解决方案是使用函数"读取csv;那么";。
d3.csv("../../data/TA_CH_3.csv").then(function (data) {
console.log(data);
});
我还必须提到,我没有逗号和空格的问题,如上所述。但它仍然只读取一行,这个函数修复了它。
相关文章:
- jQuery按名称选择属性只选择第一个匹配的元素
- 复制第一个属性's值,然后使用第一个属性的值创建新属性
- 使用 JavaScript 向一组链接中的第一个链接添加一个属性
- 将第一个(对象的)数组的属性复制到不同长度的另一个(对象)数组的Javascript方法
- 根据属性的第一个数字对数组进行排序
- jQuery 在元素之前查找第一个属性
- 为什么扩展必须是mootools类定义中的第一个属性
- 获取第一个对象属性的值
- 将值动态合并到对象属性 - 第一个是未定义的
- 正则表达式第一个结果($ 1)替换为变量的属性
- JavaScript - 替换 name 属性中第一个方括号之间的值
- Firebase.update失败:第一个参数在属性中包含未定义的参数
- 获取TreeView的JSON的第一个属性键
- 检查是否下拉'的第一个选项已选择属性
- jQuery获取Sibillings第一个子项的Name属性
- 如何使用Javascript/Jquery为每个唯一的属性值选择第一个匹配的元素
- 从第一个和更改操作属性填充第二个选择列表
- d3只读取csv的第一个属性
- 如何提取数组中变量的总实例及其第一个属性
- 比较两个对象的第一个属性并合并