- Вы можете использовать функцию xAxis.categories , чтобы назначить этот массив xAxis, но функция категорий доступна только для Highcharts (не Highstock), однако вы должны иметь возможность объединять параметры из От Highstock к Highcharts используя скрипт Highstock. Недостатком этого решения является то, что метки и всплывающая подсказка получают эти значения в числовом формате, а не во времени данных.
Демонстрация: https://jsfiddle.net/BlackLabel/ye1rxw49/
let timestamp = [1577203210, 1577206808, 1577210408];
Highcharts.chart('container', {
title: {
text: 'Stock Price'
},
xAxis: {
categories: timestamp
},
...
});
Чтобы отобразить значения x во время данных, вам необходимо использовать некоторую функцию разбора, например, здесь:
Демонстрация: https://jsfiddle.net/BlackLabel/2j3yswn5/
let categoriesTimeStamp = timestamp.map((val) => new Date(val).toUTCString())
Однако это решение все еще не идеально, потому что rangeSelector плохо работает с категорией ie - вы можете видеть, что диапазон составляет от 1 января 1970 г. до 1 января 1970 г., а метки - 19 января.
Я думаю, что лучшим подходом будет создание некоторой функции синтаксического анализа, которая объединит ваши данные и массивы данных xAxis.
Примерно так: https://jsfiddle.net/BlackLabel/woht0vpk/
let data1 = [1, 21, 8],
data2 = [2,4,6],
xAxisData = [1577203210, 1577206808, 1577210408];
data1 = data1.map((val, i) => [xAxisData[i], val])
data2 = data2.map((val, i) => [xAxisData[i], val])