#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
ключевого слова.