【发布时间】:2017-04-26 13:32:42
【问题描述】:
我在我的应用程序中实现 D3.js 图表,我不想使用文件作为数据集,我只想使用内联 JSON 作为数据集(JSON 将在应用程序中动态生成)。
我已经使用以下代码完成了Reusable Responsive Multiline Chart 的实现。
var data1 = [ { "我的 JSON 数据在这里" } ]; d3.json('', function (error, data) { data1.forEach(function (d) { d.year = +d.year; d.variableA = +d.variableA; d.variableB = +d.variableB; d.variableC = +d.variableC; d.Temp = +d.Temp; }); var chart = makeLineChart(data1, 'year', { “设备 1”:{ 列:“变量 A”}, “设备 2”:{ 列:“变量 B”}, “设备 3”:{ 列:“变量 C”}, “设备 4”:{ 列:“变量 D”} }, { xAxis: '年', yAxis: '温度' }); chart.bind("#chart-line1"); 图表.render(); });我在这里调用 d3.json() 但文件名是空白,而且代码中也没有没有使用数据。我使用的是“data1”而不是“数据”。 效果很好......
现在我想为Grouped Bar Chart 实现相同的功能,但是这种图表数据绑定方法与“可重复使用的响应式多线图”不同。 以下是解析“分组条形图”数据的代码。
d3.csv("\\data.csv", function(d, i, columns) {
for (var i = 1, n = columns.length; i < n; ++i) d[columns[i]] = +d[columns[i]];
return d;
}, function(error, data) {
if (error) throw error;
var keys = data.columns.slice(1);
// Rest of code to bind parsed data to chart
});
那么我如何在这里用内联 JSON 替换 data.csv。
【问题讨论】:
-
尝试在第二行的
d3.csv()之后和for之前添加d = [ { "My JSON data here" } ]; -
@TheBiro 你的意思是说,用 'd = [ { "My JSON data here" } ];' 替换 "\\data.csv"将工作?我不清楚在哪里添加 d = [ { "My JSON data here" } ];.
-
只需删除对
d3.json的调用并使用您生成的数据 -
不,我的想法是用
d3.csv中的 json 覆盖数据d。 -
@TheBiro 它不起作用,我只是厌倦了如下:
d3.csv("", function(d = [ { "State": "CA", "Under 5 Years": 2704659, "5 to 13 Years": 4499890, "14 to 17 Years": 2159981, "18 to 24 Years": 3853788, "25 to 44 Years": 10604510, "45 to 64 Years": 8819342, "65 Years and Over": 4114496 }, { "State": "TX", "Under 5 Years": 2027307, "5 to 13 Years": 3277946, "14 to 17 Years": 1420518, "18 to 24 Years": 2454721, "25 to 44 Years": 7017731, "45 to 64 Years": 5656528, "65 Years and Over": 2472223 } ], i, columns) {它显示以下错误:属性 y:预期长度,“NaN”。在 D3.js 文件中。
标签: d3.js