Javascript 在海图上显示每月1日
是否有办法在highcharts中创建图表,以便显示每个相关月份的第一个?例如,在本例中,我如何设置选项,使其显示10月1日、11月1日、12月1日、1月1日等。如果还显示其他日期,则可以,但需要月初。这当然是可能的,尽管需要做一些工作 首先,您需要将要在图形中使用的数据设置为全局数据。您可以在使用Javascript 在海图上显示每月1日,javascript,date,highcharts,Javascript,Date,Highcharts,是否有办法在highcharts中创建图表,以便显示每个相关月份的第一个?例如,在本例中,我如何设置选项,使其显示10月1日、11月1日、12月1日、1月1日等。如果还显示其他日期,则可以,但需要月初。这当然是可能的,尽管需要做一些工作 首先,您需要将要在图形中使用的数据设置为全局数据。您可以在使用.highcharts()函数之前定义它。现在让我们称之为全局数据var数据 我们想用highchart的来获得你想要的格式。所以我们需要定义这些精确的刻度。我已经编写了一些代码来实现这一点(考虑到全
.highcharts()
函数之前定义它。现在让我们称之为全局数据var数据
我们想用highchart的来获得你想要的格式。所以我们需要定义这些精确的刻度。我已经编写了一些代码来实现这一点(考虑到全局数据
):
请注意,我在这里使用了一个修复程序来解决问题,并使滴答声位置
正确显示
这当然是可能的,尽管需要做一些工作
首先,您需要将要在图形中使用的数据设置为全局数据。您可以在使用.highcharts()
函数之前定义它。现在让我们称之为全局数据var数据
我们想用highchart的来获得你想要的格式。所以我们需要定义这些精确的刻度。我已经编写了一些代码来实现这一点(考虑到全局数据
):
请注意,我在这里使用了一个修复程序来解决问题,并使滴答声位置
正确显示
实际上,当您单击“在小提琴中编辑”按钮时,示例显示了您想要的:我也看到了与您想要的一样的示例。顺便问一下,你对相关月份的定义是什么?@SachiTekina我认为当你的系列值发生变化时,这不起作用。而且它根本没有响应性……您还可以使用计算并返回一组时间戳。对不起,我错过了;)实际上,当您单击“在小提琴中编辑”按钮时,示例显示了您想要的:我也看到了与您想要的一样的示例。顺便问一下,你对相关月份的定义是什么?@SachiTekina我认为当你的系列值发生变化时,这不起作用。而且它根本没有响应性……您还可以使用计算并返回一组时间戳。对不起,我错过了;)
var globalMin = Date.UTC(5000, 1, 1);
var globalMax = 0;
for (i = 0; i < DATA.length; i++) {
var temp = DATA[i].slice();
var sorted = temp.sort(function(d1, d2){
return d2[0]-d1[0];
});
var max_date = sorted[0];
var min_date = sorted[sorted.length-1];
if (max_date[0] > globalMax)
globalMax = max_date[0];
if (min_date[0] < globalMin)
globalMin = min_date[0];
}
function monthDiff(d1, d2) {
return d2.getMonth()-d1.getMonth() + (12 * (d2.getFullYear()-d1.getFullYear())) + 2;
}
var ticks = [];
var mind = new Date(globalMin);
var maxd = new Date(globalMax);
for (i = 0; i < monthDiff(mind, maxd); i++) {
var tempDate = new Date(new Date(mind).setMonth(mind.getMonth()+i));
ticks.push(tempDate.setDate(1));
}
xAxis: {
type: 'datetime',
tickPositions: ticks,
min: ticks[0], // Remove this if you want an automatic range
max: ticks[ticks.length - 1], // Remove this if you want an automatic range
dateTimeLabelFormats: {
month: '%e. %b',
year: '%b'
},
title: {
text: 'Date'
},
labels: {
formatter: function () {
return Highcharts.dateFormat('%e. %B', this.value);
}
},
}, ...