Я использую highstock
свечную диаграмму в своем угловом приложении. Вот варианты моей биржевой диаграммы.
rangeSelector: {
enabled: false,
},
colors: Global.colors,
title: {
text: ''
},
xAxis: {
crosshair: true
},
yAxis: [
{
opposite: true,
labels: {
align: 'left',
x: 5
},
height: '60%',
lineWidth: 2,
resize: {
enabled: true
},
}, {
labels: {
align: 'right',
x: -3
},
top: '65%',
height: '35%',
offset: 0,
lineWidth: 2
}],
tooltip: {
split: false,
shared: true,
},
credits: {
enabled: false
},
scrollbar: {
enabled: false
},
legend: {
enabled: false
},
plotOptions: {
series: {
marker: {
enabled: false
}
},
}
В этом, если вы заметили, я отключил rangeSelector
, navigator
и scrollbar
. Здесь я получаю значения с сервера и задаю их как часть ряда на графике.
stockChart.addSeries({
type:'candlestick',
name:this.seriesName,
data:this.seriesData
});
Теперь в этом. Всякий раз, когда мне нужно добавить точку, которую я получаю через веб-сокет. Мне нужно удалить первое значение из массива данных, а затем добавить новое значение. В короткую смену и толчок.
updateChart(newValue){
this.seriesData.shift();
this.seriesData.push(newValue);
this.stockChart.series[0].setData([]);
this.stockChart.series[0].setData(this.seriesData);
}
Всякий раз, когда этот метод выполняется, новая точка добавляется в массив seriesData
и также применяется в качестве данных ряда к диаграмме, но до тех пор, пока я не перетащу ее на левую сторону, отметка не будет видна. Кроме того, график не выглядит обновленным. Я пытался сделать то же самое с series[0].addPoint(newValue,true,true)
, чтобы добавить точку и сдвиг, но у меня это не сработало.