【发布时间】:2021-07-12 19:24:43
【问题描述】:
我正在尝试使 d3.js 示例中的简单折线图使用 JSON 而不是 CSV 文件。
d3.csv(filePath,
// When reading the csv, I must format variables:
d => {
return {date: d3.timeParse("%Y-%m-%d")(d.date), value: d.value}
}).then(
// Now I can use this dataset:
function (data) {
data = JSON.parse(JSON.stringify(data));
....
失败并出现错误:d3.v6.js:1816 Error: attribute d: Expected number, "MNaN,
图形代码见:https://www.d3-graph-gallery.com/graph/line_basic.html
如何使它与 JSON 格式一起使用?
【问题讨论】:
-
你的 json 是什么样的?你使用的是 d3.json() 而不是 d3.csv?两者返回的数据都是一个 javascript 数组 - 所以你不需要字符串化和解析。
-
这是一个数组,看起来像 [{"date":"2020-01-02T05:00:00.000Z","value":"0"},,...] 我想要使用 d3.json,但 JSON 格式不适用于图形,由“data = JSON.parse(JSON.stringify(data));”证明应该不会出错的行。
-
您能否确认其余代码与链接示例相同?如果是这样,我将演示一个带有 json 数据源的等效示例。
-
是的,我只是添加 data = JSON.parse(JSON.stringify(data));在 function(data){... 之后确保我可以使用 JSON。这适用于其他示例,但不适用于折线图,可能与日期格式有关,但不确定导致错误的原因。