【发布时间】:2016-02-26 14:58:06
【问题描述】:
我是 D3.js 和 NVD3.js 的新手。我创建了一个用于显示统计数据的多折线图。 y 轴和图表内部显示的数字仅为整数。
但是,它不会显示数据集中的正确值。 JSON 输入如下所示:
[{"key":"Anmeldungen","values":[[1446505200,92],[1447023600,112],[1447542000,361],[1448665200,6],[1449183600,10],[1449788400,2],[1449961200,3],[1450738800,4],[1451343600,9],[1451689200,2],[1452294000,7],[1452380400,5],[1453330800,7],[1453849200,2],[1454540400,4],[1454799600,7]]},{"key":"Abmeldungen ","values":[[1446505200,223],[1447023600,264],[1447542000,82],[1448665200,0],[1449183600,0],[1449788400,0],[1449961200,0],[1450738800,0],[1451343600,0],[1451689200,0],[1452294000,0],[1452380400,0],[1453330800,2],[1453849200,0],[1454540400,0],[1454799600,0]]}]
值的第一个数字是时间戳,在图表中正确显示。第二个数字是我遇到问题的整数值。
图表渲染代码如下:
var $json = JSON.parse($json);
nv.addGraph(function () {
data = $json;
var chart = nv.models.cumulativeLineChart()
.x(function (d) {
return d[0]*1000 //timestamp
})
.y(function (d) {
console.log(d); //<--Outputs correct number
return d[1]
})
.color(d3.scale.category10().range())
.useInteractiveGuideline(true)
;
chart.xAxis
.tickFormat(function(d) {
return d3.time.format('%d.%m.%Y')(new Date(d))
});
chart.yAxis
.tickFormat(d3.format('d'));
console.log(data); // <-- still has the correct data
d3.select('.diagrammContainer svg').datum(data).call(chart);
return chart;
});
我也尝试过改变
chart.yAxis
.tickFormat(d3.format('d'));
到
chart.yAxis
.tickFormat(d3.format(',f'));
在 y 轴上显示浮点数。但值仍然不正确。我也不明白为什么它将一些数字转换为负数。
代码中的两个 console.log 都输出正确的值。 D3.js / NVD3.js 对图表看起来像这样的数字有什么作用? result
【问题讨论】:
标签: javascript d3.js charts nvd3.js