CSV 表格文件是以逗号作为单元分隔符的,其他还有以制表符 Tab 作为单元分隔符的 TSV 文件,还有人为定义的其他分隔符的表格文件。本文将说明在 D3 中怎样读取它们。
1. TSV 表格文件是什么
TSV(Tab Separated Values),制表分隔值,它和 CSV 文件不过分隔符不一致。它的格式例如以下:
name age 张三 22 李四 24
2. D3 中读取 TSV 文件
在 D3 中读取 TSV 文件的方法和 CSV 文件是一样的,仅仅要更改一下函数名就可以。方法例如以下:
d3.tsv("table.tsv",function(error,tsvdata){ console.log(tsvdata); var str = d3.tsv.format( tsvdata ); console.log(str.length); console.log(str); });
我们能够看到,这和【进阶系列 — 1.0】是基本一样的,具体说明可參见此文。
3. D3 中读取 CSV 和 TSV 的本质
在上面两节我们能够看到,读取 CSV 和 TSV 惊人地相似。事实上它们本质上都是一个函数,我们来看看 D3 源代码中的定义:
d3.csv = d3.dsv(",", "text/csv"); d3.tsv = d3.dsv(" ", "text/tab-separated-values");
能够看到,它们事实上都是 d3.dsv 函数。那么这个 dsv 函数是怎么回事呢?dsv 事实上能够读取以随意字符或字符串作为分隔符的表格文件。接下来我们来试试用 dsv 函数读取以分号作为分隔符的表格文件。如果有例如以下文件:
name;age 张三;22 李四;24
读取的代码例如以下:
var dsv = d3.dsv(";", "text/plain"); dsv("table.dsv",function(error,dsvdata){ if(error) console.log(error); console.log(dsvdata); });
先用 d3.dsv(";", "text/plain"); 定义分隔符为分号,再依照读取 csv 和 tsv 文件一样的方法读取就可以。但要注意第二行不再须要用 d3.dsv ,由于变量 dsv 已经是一个函数了。
4. 结束语
CSV 文件和 TSV 文件不过分隔符不同,它们的本质都是调用的 DSV 函数,所以 DSV 函数的掌握至关重要。
谢谢阅读。
文档信息
- 版权声明:署名(BY)-非商业性(NC)-禁止演绎(ND)
- 发表日期:2014年10月03日
- 很多其它内容:OUR D3.JS - 数据可视化专题站 和 CSDN个人博客
- 备注:转载请注明出处,谢谢