d3-fetch
此方法对Fetch进行了封装,加载一个纯文本文件:
d3.text("/path/to/file.txt").then(function(text) {
console.log(text); // Hello, world!
});
加载并解析一个CSV文件:
d3.csv("/path/to/file.csv").then(function(data) {
console.log(data); // [{"Hello": "world"}, …]
});
此模块支持解析JSON,CSV和TSV文件。你可以使用d3.text直接解析其他格式的文件。(此模块代替了d3-request)
Installing
如果你使用npm,请键入npm install d3-fetch
。否则,请下载最新版本。你也可以直接从d3js.org加载,作为standalone library(独立库)或D3 4.0的一部分来使用。支持AMD,CommonJS和vanilla环境。在vanilla环境下,会输出一个全局的d3
:
<script src="https://d3js.org/d3-dsv.v1.min.js"></script>
<script src="https://d3js.org/d3-fetch.v1.min.js"></script>
<script>
d3.csv("/path/to/file.csv").then(function(data) {
console.log(data); // [{"Hello": "world"}, …]
});
</script>
API Reference
d3.blob(input[, init])
从给定的input(URL)处获取二进制文件并转换为一个Blob对象。如果指定了init,它将被传入底层的fetch;另请参阅RequestInit查看允许的字段。
d3.buffer(input[, init])
从给定的input(URL)处获取二进制文件并转换为一个ArrayBuffer对象。如果指定了init,它将被传入底层的fetch;另请参阅RequestInit查看允许的字段。
d3.csv(input[, init][, row])
相当于d3.dsv用逗号作为分隔符。
d3.dsv(input[, init][, row])
从给定的input(URL)处获取DSV文件。如果指定了init,它将被传入底层的fetch;另请参阅RequestInit查看允许的字段。可以指定row转换函数对row对象进行映射和filter过滤以得到更具体的表现形式。另请参阅dsv.parse了解更多。例如:
d3.dsv(",", "test.csv", function(d) {
return {
year: new Date(+d.Year, 0, 1), // convert "Year" column to Date
make: d.Make,
model: d.Model,
length: +d.Length // convert "Length" column to number
};
}).then(function(data) {
console.log(data);
});
如果仅指定了init和row中的一个,且为函数,它将被看做是row转换函数,否则它会被看做是init对象。
d3.html(input[, init])
从给定的input(URL)处以文本形式获取文件,然后将其解析成HTML。如果指定了init,它将被传入底层的fetch;另请参阅RequestInit查看允许的字段。
d3.image(input[, init])
从给定的input(URL)处获取图像文件。如果指定了init,则会在加载文件前为图像设置附加属性。例如:允许匿名cross-origin request(跨源请求):
d3.image("https://example.com/test.png", {crossOrigin: "anonymous"}).then(function(img) {
console.log(img);
});
d3.json(input[, init])
从给定的input(URL)处获取JSON文件。如果指定了init,它将被传入fetch;另请参阅RequestInit查看允许的字段。
d3.text(input[, init])
从给定的input(URL)处获取文本文件。如果指定了init,它将被传入fetch;另请参阅RequestInit查看允许的字段。
d3.tsv(input[, init][, row])
相当于d3.dsv用tab character(制表符)作为分隔符。
d3.xml(input[, init])
从给定的input(URL)处以文本形式获取文件,然后将其解析成XML。如果指定了init,它将被传入底层的fetch;另请参阅RequestInit查看允许的字段。