Высокие графики рисуют линию в текущем месяце и году

#javascript #highcharts

Вопрос:

Я уже знаю, как нарисовать вертикальную линию на графике, но это статическое значение, и я хочу быть динамичным. Итак, я хочу получить индекс текущего месяца и года.Есть ли функция?.

Пример: Представьте, что текущая дата сейчас = ’27-03-2021′

Мне нужна функция, которая извлекает текущий месяц и год

Примечание: this.value , this.category , this.point всегда показывайте undefined , почему я не могу использовать его в области потлайнов?

 xAxis: {
  categories: ['01-08-2018', '01-10-2019', '31-02-2020', '27-03-2021', '01-01-1900'],

  plotLines: [{
    color: '#FF0000',
    width: 1,
    value: index = (function() {

      var value;

      if (this.category == '03-2021') { //Compare only the month and year
        value = //I want the Index of this position date 
      } else {
        value = //the length of the list

      }

      return value;
    })()
  }]
}

 

Ответ №1:

Вот динамический способ задания сюжетной линии

 let data = () => {
    let data = []
    let start = 1609455600000
    for(let i = 0; i < 12; i  ){
    data.push([start   i * 2592000000, Math.floor(Math.random() * Math.floor(30))]) 
  }
  return data
}


Highcharts.chart('container', {

        xAxis: {
        type: 'datetime',
        plotLines: [{ 
                color: '#FF0000',
          width: 2,
            value: Date.now()
        }]
    },

    series: [{
        name: 'Installation',
        data: data(),
    }],

}); 
 <script src="https://code.highcharts.com/highcharts.js"></script>
    <div id="container"></div> 

Я считаю, что в соответствии с документацией API это значение принимает только значение, а не функцию. Если вы хотите использовать функцию, вы можете сделать это в chart.events.загрузить, например. Затем вы можете попытаться получить value , category , point из объекта диаграммы с помощью this ключевого слова.