我是D3.js和NVD3.js的新手。我創建了一個多行圖表來顯示統計信息。 y軸和圖表內顯示的數字僅爲整數。D3.js/NVD3.js不顯示正確的值
但是,它不顯示數據集中的正確值。的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
感謝您抽出寶貴的時間。將「cumulativeLineChart」改爲「lineChart」終於解決了這個問題。我還更改了「values」數組,以便它包含對象而不是數組。謝謝你的提示。 – alexktz