我正在使用 nvd3,我对日期格式和显示有疑问。你可以在下面找到我的例子。
d3.json('jsonData.json', function(data) {
nv.addGraph(function() {
var chart = nv.models.lineChart()
.margin({top: 30, right: 60, bottom: 50, left: 90})
.color(d3.scale.category10().range());
chart.xAxis.tickFormat(function(d) {
var dx = data[0].values[d] && data[0].values[d].x || 0;
return dx ? d3.time.format('%Y-%m-%e %X')(new Date(dx)) : '';
});
chart.yAxis
.tickFormat(d3.format(',.1f')(d));
d3.select('#chart1 svg')
.datum(data)
.transition().duration(500)
.call(chart);
//TODO: Figure out a good way to do this automatically
nv.utils.windowResize(chart.update);
//nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
return chart;
});
});
JSON 文件 jsonData 是这样构建的:
[{
"key":"Consumption",
"values":[ [2012-06-27 00:00:00 , 153580] , [2012-06-27 02:00:00 , 153590] , [...] , [...] , ... , [...] ]
}]
日期格式如下:“年-月-日时:分:秒”
问题是我无法显示任何内容...我知道在 Y 轴上显示消耗量在 X 轴上显示日期的图表缺少一些东西,但我找不到什么...
我尝试了很多方法来做到这一点,灵感来自 nvd3.org 的一些示例,但没有任何效果:/
感谢您的回答!
- - - - - - - - - - - - - - - - - - - - - - - - 编辑 - ----------------------------------
感谢 Andrew 和 George,感谢 nvd3.org 上提供的示例,我解决了我的问题。
我使用 PHP 脚本以时间戳(以毫秒为单位)正确格式化我的日期,并重新使用了示例“linePlusBarChart”。
毕竟,我的代码和我的 JSON 文件看起来像这样:
d3.json('jsonData.json', function(data) {
data.map(function(series) {
series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
return series;
});
nv.addGraph(function() {
var chart = nv.models.lineChart()
.margin({top: 30, right: 60, bottom: 50, left: 90})
.x(function(d,i) { return i })
.color(d3.scale.category10().range());
chart.xAxis.tickFormat(function(d) {
var dx = data[0].values[d] && data[0].values[d].x || 0;
return dx ? d3.time.format('%X')(new Date(dx)) : '';
});
chart.yAxis
.tickFormat(d3.format(',.1f'));
d3.select('#chart1 svg')
.datum(data)
.transition().duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
return chart;
});
});
和 JSON 文件:
[{
"key":"Consommation",
"values":[[1340755200000 , 153580] , [1340762400000 , 153590] ,
[1340769600000 , 153610] , [1340776800000 , 153650] ,
[1340784000000 , 153680] , [1340791200000 , 153720] ,
[1340798400000 , 153780] , [1340805600000 , 153830] ,
[1340812800000 , 153880] , [1340820000000 , 153900] ,
[1340827200000 , 153920] , [1340834400000 , 153930] ,
[1343347200000 , 153940]
]
}]
谢谢!