如何获得数据与TSV或CSV数组d3.js从TXT文件
how to get data with tsv or csv to array in d3.js from a txt file?
我用这个来解析csv文件,并创建一个数组数据指定在d3文档:
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]);
});
然而,当我调用data[0]时,我在控制台中得到未定义。我也试着写出"data"而不是"data[0]",这导致我得到一个空数组-> []:
我的txt文件看起来像这样:http://puu.sh/7LrRm.png
一切都是用一个选项卡分开,所以tsv是我正在使用的,如果我正确理解它,是否使用tsv或csv取决于数据的格式?
解决
TSV不仅接受tab分隔的元素,还把它们扔进数组。您可以将格式设置为如下所示:
Group1 Group2 Group3
data1 data1 data1
data2 data2 data2
data3 data3 data3
然后可以打印出来并验证数据是否已加载:
data.forEach(function(d) {
console.log(d);
});
当打印出整个数据时,D3将创建一个对象,每个对象都有一个与所有数据绑定的Group。下面是我的示例的输出:
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
是本地托管的吗?如果它是你加载的页面与file://
协议或它是通过http服务(如http://localhost:8080
)。
如果它正在使用file://
,那么你将有问题,因为浏览器将不允许文件加载d3.tsv()
用来获取文件的XMLHttpRequest
。
或者按照Lars的建议检查错误
d3.tsv("file.tsv", function(error, data){
if(error){
return console.log(error);
}
// there was no error
});
将data[0]更改为d.您想要显示的数据头应该可以。
d3.tsv("classes_h.txt", function(data) {
data.forEach(function(d) {
console.log(d.*displaydata*);
console.log("lol");
});
相关文章:
- 如何在d3.js中返回路径的y坐标
- 有条件更新d3.js力图中节点的最佳方法
- 使用D3.js计算带有字母间距的文本长度
- D3.js模式不适用于弧形或圆环图
- d3.js Chord图的动态工具提示
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- HTML5FileReader输出到D3.js图表
- D3.js生成有效的SVG,但不显示任何内容
- 更改 JS/D3 页上的元素位置
- 带有更新按钮.js D3 将新数据添加到旧数据而不是替换旧数据
- D3.js d3.max undefined
- 为什么我的 js.d3 代码不显示轴
- dc.js d3+crossfilter.top将过滤后的数据导出为CSV
- 如何在Plottable.js/D3.js制作的饼图中启用qtip2
- 2dimple.js/d3.js在窗口大小更改时自动调整图表大小
- D3.js D3.json返回Uncaught TypeError:无法读取属性'0'的未定义
- 如何计算(SVG) X/Y坐标的平移和旋转(在JS/D3.js)
- 当我们需要信任大约 200-300 个自定义图表时.js D3 是最佳选择吗?
- 简单条形图按字符串名称分组,带有 DC.js D3.js 和交叉过滤器.js
- 缺少标签- Cola.js/D3.js