期望的結果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