#highcharts
Вопрос:
У меня есть диаграмма с осью x в датах и фиксированных позициях, которую я хочу отобразить как «Март 2018».
Это определяется как
xAxis: {
type: "datetime",
tickPositions: [
new Date('2018-03-01'),
new Date('2019-03-01'),
new Date('2020-03-01'),
new Date('2021-03-01'),
]
}
и данные серии, как
data: [
{ x: new Date('2018-03-01'), y: 2.2 },
{ x: new Date('2019-03-01'), y: 3.3 },
{ x: new Date('2020-03-01'), y: 3.2 },
{ x: new Date('2021-03-01'), y: 3.8 },
]
При такой настройке метки на оси x не отображаются. Я хочу, чтобы было четыре тика, показывающих:
Mar 2018 — Mar 2019 — Mar 2020 — Mar 2021
Я пробовал использовать Дату.UTC, который не имеет изменений в позициях тиков, и на данных серии он ничего не отображает
Я также попытался использовать dateTimeLabelFormats dateTimeLabelFormats: { day: '%b %Y' }
и форматирование даты метки, оба безрезультатно
labels: {
formatter: function () {
return Highcharts.dateFormat('%b %Y', this.value);
}
}
Как я могу отобразить метки дат по оси x?
Ответ №1:
Числа нужны в тиковых позициях, и новая дата («строка») не возвращает ее: https://jsfiddle.net/BlackLabel/e2gjqoty/
Также Дата.UTC работает медленно, поэтому индексация месяцев начинается с 0: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC
xAxis: {
type: "datetime",
tickPositions: [
Date.UTC(2018,02,01),
Date.UTC(2019,02,01),
Date.UTC(2020,02,01),
Date.UTC(2021,02,01)
]
}