我使用它来解析csv文件并创建d3 docs中指定的数组数据:
d3.tsv("classes_h.txt", function(data) {
data.forEach(function(d) {
console.log(data[0]);
console.log("lol");
});
console.log(data[0]);
});
或
d3.tsv("classes_h.txt", function(data) {
console.log(data[0]);
});
然而,当我调用数据[0]时,我在控制台中未定义。我也试过写出"数据而不是"数据[0]"这导致我得到一个空数组 - > []:
我的txt文件如下所示: http://puu.sh/7LrRm.png
所有内容都与选项卡分开,所以我正在使用tsv,如果我已正确理解,是否使用tsv或csv取决于数据的格式?
提前致谢。
答案 0 :(得分:2)
的解决强> 的
TSV不只是将制表符分隔元素放入数组中。你的格式如下:
Group1 Group2 Group3
data1 data1 data1
data2 data2 data2
data3 data3 data3
然后您可以打印并验证数据已加载:
data.forEach(function(d) {
console.log(d);
});
当打印出整个数据时,D3将创建一个对象,每个对象都有一个绑定了所有数据的组。这是我的例子的输出:
Object {Group1: "data1", Group2: "data1", Group3: "data1"}
Object {Group1: "data2", Group2: "data2", Group3: "data2"}
Object {Group1: "data3", Group2: "data3", Group3: "data3"}
这些对象等同于data [0],data [1]和data [2],它们离开group1,group2和group3。
答案 1 :(得分:0)
这是localy托管的吗?如果是,您是使用file://
协议加载页面,还是通过http(例如http://localhost:8080
)提供的。
如果它正在使用file://
,那么您将遇到问题,因为浏览器不允许使用XMLHttpRequest
d3.tsv()
用于获取文件的d3.tsv("file.tsv", function(error, data){
if(error){
return console.log(error);
}
// there was no error
});
加载文件。
或者按照Lars的建议并检查错误
{{1}}
答案 2 :(得分:0)
将数据[0]更改为d。要显示的数据标题应该有效。
d3.tsv("classes_h.txt", function(data) {
data.forEach(function(d) {
console.log(d.*displaydata*);
console.log("lol");
});