Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将xAxis标签格式化为Highcharts中每个值的日期?_Javascript_Charts_Highcharts - Fatal编程技术网

Javascript 如何将xAxis标签格式化为Highcharts中每个值的日期?

Javascript 如何将xAxis标签格式化为Highcharts中每个值的日期?,javascript,charts,highcharts,Javascript,Charts,Highcharts,我正在尝试创建一个简单的折线图。正如您所看到的,数据的格式是,数组中的第一个值是date(year-month),然后是一个值。如有必要,我可以更改日期的格式,但通常每个月的数据都有一个值,升序一直到当前月份 是否可以格式化图表,以便底部轴具有日期标签(年+月)?下面是我的工作示例的示例,如果需要,下面是示例 Highcharts.chart("container", { series: [ { data: [ ["2018-10", 18],

我正在尝试创建一个简单的折线图。正如您所看到的,数据的格式是,数组中的第一个值是date(year-month),然后是一个值。如有必要,我可以更改日期的格式,但通常每个月的数据都有一个值,升序一直到当前月份

是否可以格式化图表,以便底部轴具有日期标签(年+月)?下面是我的工作示例的示例,如果需要,下面是示例

Highcharts.chart("container", {
  series: [
    {
      data: [
        ["2018-10", 18],
        ["2018-11", 16],
        ["2018-12", 21],
        ["2019-01", 22],
        ["2019-02", 22],
        ["2019-03", 20],
        ["2019-04", 22],
        ["2019-05", 24],
        ["2019-06", 25],
        ["2019-07", 31],
        ["2019-08", 35],
        ["2019-09", 33],
        ["2019-10", 35],
        ["2019-11", 35],
        ["2019-12", 35]
      ]
    }
  ]
});
这就是我的目标


如果我能在另一个图书馆更容易地做到这一点,我愿意接受建议。

我成功地做到了这一点

Highcharts.chart("container", {
    xAxis: {
        type: 'datetime',
        labels: {
            formatter() {

                // get data from series, "this.value" is a key for each array
                var currentData = this.chart.userOptions.series[0].data[this.value];

                // split "2018-10" into array and return each on new line
                var currentData = currentData[0].split('-');
                return currentData[1] + '<br>' + currentData[0];

            }
        }

    },

  series: [
    {
      data: [
        ["2018-10", 18],
        ["2018-11", 16],
        ["2018-12", 21],
        ["2019-01", 22],
        ["2019-02", 22],
        ["2019-03", 20],
        ["2019-04", 22],
        ["2019-05", 24],
        ["2019-06", 25],
        ["2019-07", 31],
        ["2019-08", 35],
        ["2019-09", 33],
        ["2019-10", 35],
        ["2019-11", 35],
        ["2019-12", 35]
      ]
    }
  ]
});
Highcharts.chart(“容器”{
xAxis:{
键入:“日期时间”,
标签:{
格式化程序(){
//从系列中获取数据,“this.value”是每个数组的键
var currentData=this.chart.userOptions.series[0]。数据[this.value];
//将“2018-10”拆分为数组,并在新行中返回每个数组
var currentData=currentData[0]。拆分('-');
返回currentData[1]+'
'+currentData[0]; } } }, 系列:[ { 数据:[ ["2018-10", 18], ["2018-11", 16], ["2018-12", 21], ["2019-01", 22], ["2019-02", 22], ["2019-03", 20], ["2019-04", 22], ["2019-05", 24], ["2019-06", 25], ["2019-07", 31], ["2019-08", 35], ["2019-09", 33], ["2019-10", 35], ["2019-11", 35], ["2019-12", 35] ] } ] });
您可以这样做,使用type category将给出系列的xaxis

 xAxis: {
   type: 'category',
   labels: {
        formatter: function () {
            var str = this.value.split('-');
            return str[1]+'<br>'+ str[0];
        }
    }
},
xAxis:{
类型:'类别',
标签:{
格式化程序:函数(){
var str=this.value.split('-');
返回str[1]+'
'+str[0]; } } },
有一种方法可以实现自定义代码,这取决于您的数据,如果您的数据是动态的或静态的,您可以为xAxis使用自定义类别