#javascript #echarts #apache-echarts
Вопрос:
У меня возникли большие проблемы с использованием временных меток unix, преобразованных в дату, в качестве значений для моего графика ECharts. Ось x моего графика должна быть временем записи каждой из соответствующих цен покупки или продажи (которые являются линиями). Это прекрасно работает, когда я просто использую метку времени в необработанном виде (т. Е. 1627353870000), но когда я пытаюсь установить тип диаграммы по оси x в значение «время», она превращается в странный линейный график, изображенный ниже.
Не работает с типом, установленным на «время»
Вот основной блок, с которым я работаю:
var buy_price = {
title: {
text: 'Prices Comparison Chart'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['Buy Price', 'Sell Price']
},
xAxis: {
type: 'time', // evil line (works like first picture when removed)
data: [1627353870000, 1627353810000, 1627353820000, 1627353830000]
},
yAxis: [{ min: 1,
max: 100,
type: 'value'
}],
series: [{
name: 'Buy Price',
type: 'line',
symbol: 'none',
data: [2, 4, 6, 8]
},
{
name: 'Sell Price',
type: 'line',
symbol: 'none',
data: [1, 2, 3, 4]
}]
};
Я действительно заблудился здесь, и, похоже, в Интернете не слишком много помощи для этой библиотеки.
Ответ №1:
Вам нужно изменить значение даты на строку даты с помощью «Date.parse()». И вам нужно привязать даты к значению цен. Ваш код будет выглядеть следующим образом:
var option;
var data1 = [["2018-08-15T10:04:01.339Z",2],["2018-08-15T10:14:13.914Z",4],["2018-08-15T10:40:03.147Z",6],["2018-08-15T11:50:14.335Z",8]];
var data2 = [["2018-08-15T10:04:01.339Z",1],["2018-08-15T10:14:13.914Z",2],["2018-08-15T10:40:03.147Z",3],["2018-08-15T11:50:14.335Z",4]];
option = {
title: {
text: 'Prices Comparison Chart'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['Buy Price', 'Sell Price']
},
xAxis: {
type:"time",
},
yAxis: {
type: 'value'
},
series: [{
name: 'Buy Price',
type: 'line',
symbol: 'none',
data: data1
},
{
name: 'Sell Price',
type: 'line',
symbol: 'none',
data: data2
}
]
};
option amp;amp; myChart.setOption(option);
И вы рисуете график так: Смотрите график