在 Highchart 中按月递增 X 轴时遇到问题
Having trouble incrementing X axis by Month in Highchart
我正在尝试在高位图表中创建一个图表,其中绘图间隔等于一个日历月(每月变化)。我正在使用 date.js,它有一个名为 addMonths 的函数,它了解一个月中的不同天数。
但是我无法将其转换为 highcharts 可以理解的内容(似乎是 ms)。
有人知道如何让这个简单的 POC 代码在 x 轴上有 1 个月的间隔吗?
$(function () {
var data = [];
var d = new Date();
for(var i=0;i<10;i++){
var x = new Date(d.addMonths(1));
data.push([x,i]);
}
$('#container').highcharts({
xAxis: {
type: 'datetime'
},
series: [{
data: data
}]
});
});
如您所说,Highcharts
支持 ms
中的 UTC
日期格式。 DateTime
可以用Date.UTC
转换成javascript:
var date = new Date(d.addMonths(1));
var x = Date.UTC(date.getYear() + 1900, date.getMonth(), date.getDate());
您还必须对 xAxis
使用 tickInterval
以确保间隔以月为单位:
tickInterval: 30 * 24 * 3600 * 1000 // (30 days, 24 hours, 3600 seconds, 1000 milliseconds)
这是DEMO
我正在尝试在高位图表中创建一个图表,其中绘图间隔等于一个日历月(每月变化)。我正在使用 date.js,它有一个名为 addMonths 的函数,它了解一个月中的不同天数。
但是我无法将其转换为 highcharts 可以理解的内容(似乎是 ms)。
有人知道如何让这个简单的 POC 代码在 x 轴上有 1 个月的间隔吗?
$(function () {
var data = [];
var d = new Date();
for(var i=0;i<10;i++){
var x = new Date(d.addMonths(1));
data.push([x,i]);
}
$('#container').highcharts({
xAxis: {
type: 'datetime'
},
series: [{
data: data
}]
});
});
Highcharts
支持 ms
中的 UTC
日期格式。 DateTime
可以用Date.UTC
转换成javascript:
var date = new Date(d.addMonths(1));
var x = Date.UTC(date.getYear() + 1900, date.getMonth(), date.getDate());
您还必须对 xAxis
使用 tickInterval
以确保间隔以月为单位:
tickInterval: 30 * 24 * 3600 * 1000 // (30 days, 24 hours, 3600 seconds, 1000 milliseconds)
这是DEMO