Javascript 在海图上显示每月1日

Javascript 在海图上显示每月1日,javascript,date,highcharts,Javascript,Date,Highcharts,是否有办法在highcharts中创建图表,以便显示每个相关月份的第一个?例如,在本例中,我如何设置选项,使其显示10月1日、11月1日、12月1日、1月1日等。如果还显示其他日期,则可以,但需要月初。这当然是可能的,尽管需要做一些工作 首先,您需要将要在图形中使用的数据设置为全局数据。您可以在使用.highcharts()函数之前定义它。现在让我们称之为全局数据var数据 我们想用highchart的来获得你想要的格式。所以我们需要定义这些精确的刻度。我已经编写了一些代码来实现这一点(考虑到全

是否有办法在highcharts中创建图表,以便显示每个相关月份的第一个?例如,在本例中,我如何设置选项,使其显示10月1日、11月1日、12月1日、1月1日等。如果还显示其他日期,则可以,但需要月初。

这当然是可能的,尽管需要做一些工作

首先,您需要将要在图形中使用的数据设置为全局数据。您可以在使用
.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);
        }
    },
}, ...