Javascript 从Django模板中获取JSON字符串并加载到D3图形中
到目前为止,我正在使用:Javascript 从Django模板中获取JSON字符串并加载到D3图形中,javascript,json,django,d3.js,Javascript,Json,Django,D3.js,到目前为止,我正在使用: var voltString = {{volts}}; var battVoltage = JSON.parse(voltString); 然后将其用于: .datum(battVoltage) 但它的工作方式似乎与从站点中提取的示例不同。下面显示了这方面的代码,但带有来自函数的测试数据 /*Wrapping in nv.addGraph allows for '0 time out render'*/ /*stores rendered charts in n
var voltString = {{volts}};
var battVoltage = JSON.parse(voltString);
然后将其用于:
.datum(battVoltage)
但它的工作方式似乎与从站点中提取的示例不同。下面显示了这方面的代码,但带有来自函数的测试数据
/*Wrapping in nv.addGraph allows for '0 time out render'*/
/*stores rendered charts in nv.graphs*/
nv.addGraph(function() {
var chart = nv.models.cumulativeLineChart()
.useInteractiveGuideline(true)
.x(function(d) { return d[0] })
.y(function(d) { return d[1]/100 })
.color(d3.scale.category10().range())
.average(function(d) { return d.mean/100; })
.duration(300)
.clipVoronoi(false);
chart.dispatch.on('renderEnd', function() {
console.log('render complete: cumulative line with guide line');
});
chart.xAxis.tickFormat(function(d) {
return d3.time.format('%m/%d/%y')(new Date(d))
});
chart.yAxis.tickFormat(d3.format(',.1%'));
d3.select('#chart1 svg')
/*Replace with reference to imported JSON data*/
.datum(cumulativeTestData())
.call(chart);
//Could automate this?
nv.utils.windowResize(chart.update);
chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
chart.state.dispatch.on('change', function(state){
nv.log('state', JSON.stringify(state));
});
return chart;
});
function cumulativeTestData() {
return [
Some array
];
}
传入的电压串如下所示:
'volts': '[{"fields": {"logtime": "2013-12-13T18:12:57Z", "gen_voltage": ' '"11.63"}, "pk": 1, "model": "uploads.data"}, {"fields": ' '{"logtime": "2013-12-13T18:43:27Z", "gen_voltage": "11.47"}, ' '"pk": 2, "model": "uploads.data"}, {"fields": {"logtime": ' '"2013-12-13T19:14:00Z", "gen_voltage": "11.67"}, "pk": 3, ' '"model": "uploads.data"}, {"fields": {"logtime": ' '"2013-12-13T19:44:34Z", "gen_voltage": "11.7"}, "pk": 4, "model": ' '"uploads.data"},.....]'}
如果查看页面源代码并查看
var voltString
实际等于什么,它是一个字符串吗?添加到问题代码的volts字符串中。我不确定这是否是一个错误,但是javascript图形代码中的某个错误?如果在浏览器中打开javascript控制台,是否有任何错误?如果没有,如果您只需键入>battVoltage
并查看它的输出结果,我会在var voltStr={{volts}}处得到一个无效的属性ID;线但我不知道如何着手解决这个问题。