【发布时间】:2014-04-06 06:43:08
【问题描述】:
我正在尝试为 dc.js 示例之一创建一个 jsfiddle。我无法使用 URL 和 d3.csv() 加载外部文件。
有人可以建议如何在 jsfiddle 中使用 d3.csv 加载 csv 文件。
【问题讨论】:
我正在尝试为 dc.js 示例之一创建一个 jsfiddle。我无法使用 URL 和 d3.csv() 加载外部文件。
有人可以建议如何在 jsfiddle 中使用 d3.csv 加载 csv 文件。
【问题讨论】:
我通常在 JSFiddle 示例中用于 CSV 数据的方法是
一个。将数据放在 HTML 标记末尾的 <pre> 块中,通常使用 id “数据”。
b.在 CSS 中添加 pre {display:none;}。
c。将d3.csv(filename, callback) 函数调用替换为d3.csv.parse(text) 调用,使用<pre> 块的文本内容作为解析函数的输入。
由于 parse 函数不使用回调,它只返回数据数组,因此您需要将该输出保存在与回调数据参数同名的变量中。
换句话说,如果你的例子看起来像
d3.csv("data.csv", function(error, data) {
if(error){console.log("Could not read " + "data.csv");
/* Do something with `data` here */
});
JSFiddle 友好版本如下所示:
//d3.csv("data.csv", function(error, data) {
// if(error){console.log("Could not read " + "data.csv");
var data = d3.csv.parse( d3.select("pre#data").text() );
/* Do something with `data` here */
//});
如果您希望有一个按预期使用文件读取方法的完整工作示例,那么还有其他选项,如 cmets.xml 中所述。 Tributary 我认为也允许外部数据文件。
【讨论】:
<pre> 块插入小提琴;您还可以看到代码中注释掉的原始文件读取调用。该示例来自this Q&A。
d3.csvParse(d3.select("pre#data").text());