Graph 在d3.js中跳过3月1日的x轴日期
我正在尝试使用nvd3.js获取lineChart() 我得到的是JSON格式的数据,这是JSON数据的图像 现在用nvd3轴表示数据,下面是函数Graph 在d3.js中跳过3月1日的x轴日期,graph,d3.js,nvd3.js,Graph,D3.js,Nvd3.js,我正在尝试使用nvd3.js获取lineChart() 我得到的是JSON格式的数据,这是JSON数据的图像 现在用nvd3轴表示数据,下面是函数 function getData(transport) { var arr = []; for (var i = 0; i < transport.length; i++) { arr.push({ x: Date.parse(new Date(transport[i].time
function getData(transport) {
var arr = [];
for (var i = 0; i < transport.length; i++) {
arr.push({
x: Date.parse(new Date(transport[i].timePeriod).addHours(7)),
y: transport[i].number
});
}
return arr;
}
我面临的问题是,它正在跳过3月份。当我调试的时候,我意识到3月1日是2月28日,而这个月剩下的时间,它返回了正确的日期
有什么帮助吗
另一个问题是,如何定义x轴上可能出现的最小和最大刻度数?这可能是一个时区问题。您是否指定了时区?可能发生的情况是,您给出的日期被解释为UTC,并且您所在的时区UTC 3月1日午夜仍然是2月28日。我是。我还更改了代码,使所有内容都在UTC时间戳中。除三月外,每一个月都是如此。
function customersData(transport) {
return [
{
key: "Active Customers",
values: getData(transport),
color: "#ff7f0e"
}
];
}
function drawGraphForMonth(transport) {
var chart;
chart = nv.models.lineChart()
.x(function (d) {
return d.x;
})
.y(function (d) {
return d.y;
});
chart.xAxis
.tickFormat(function(d) { return d3.time.format("%b-%Y")(new Date(d)); });
//.tickSize(6, 3, 0);
chart.yAxis
.tickFormat(d3.format(',g'));
d3.select('#chart1 svg')
.datum(customersData(transport))
.call(chart);
nv.utils.windowResize(chart.update);
chart.dispatch.on('stateChange', function (e) { nv.log('New State:', JSON.stringify(e)); });
return chart;
}