期望的结果D3读取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
i是每行的第一个条目,这些矩形具有适当的宽度,但不打印其他属性。
什么是错误?
我错误地以为空白被忽略。例外必须是'\ n',它将用作新行的标识符。感谢Plunker。 – Naltroc
这条线开始了:d.started ==='真''很有趣。开始的值被转换为布尔值,这很好。默认值会是False,因为字符串不等于布尔值,对吗?在这种情况下,===不会将'started:value'赋值为True,它会通过===将其从字符串转换为布尔值为False,并将该键转换为布尔值。 – Naltroc
@Naltroc,不知道我理解你的问题,'d.started ==='True'是一个字符串来比较字符串:''True'==='True''(它是'true')或''假'==='真'(这是'假')。 – Mark