javascript - d3.js 使用函数作为 csv 源而不是 csv 路径

标签 javascript csv d3.js

我是 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&param1=val1&param2=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/

相关文章:

javascript - D3.csv 循环访问器函数

javascript - D3圆包布局算法

javascript - 在带有内部调用(js)的函数中使用 setInterval?

javascript - Firebase 将集合作为数组返回

javascript - AngularJS:如何将数据从服务传输到 Controller ?

c - 如何在二进制文件上写入 CSV 字段?

javascript - 如何从 Ember.pre4 版本中的普通类访问 Controller ?

ruby - 如何将散列输出到 CSV 行

php - 需要将表格标题添加到导出的 CSV 文件中

label - 标题和 Axis 标签