我是 d3.js 的新手,在加载数据时,我目前看到的示例看起来像
d3.csv("path/to/file.csv")...
我有一个返回动态服务器端生成的 csv 的函数,我使用同步 POST ajax 来生成它们,但是为了简单起见,我有一个这样的 js 函数
function makeCSV(){
return "id,value\n"+
"0,value 1\n"+
"1,value 2\n"+
}
有没有办法做这样的事情?是否推荐这种方法(同步 ajax 肯定会导致延迟)
d3.csv(makeCSV())...
关于 CSV 数据加载的其他相关问题是,是否需要提供 .csv 文件,或者是否可以简单地放置制作和下载动态生成的 csv 文件的 URL,这可以替代 AJAX 调用但手动编码每个参数看起来乏味且非动态
d3.csv("?action=makeCSV¶m1=val1¶m2=val2")...
最佳答案
根据规范d3.csv()
要求第一个参数是从中加载 CSV 的 url。如果您只想解析包含 CSV 内容的字符串,而不管它是如何创建的,则需要使用 d3.csv.parse()
反而。对于您的代码,这将是这样的
var rows = d3.csv.parse(makeCSV());
function makeCSV(){
return "id,value\n"+
"0,value 1\n"+
"1,value 2\n";
}
var rows = d3.csv.parse(makeCSV())
console.log(rows);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
关于javascript - d3.js 使用函数作为 csv 源而不是 csv 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005134/