#javascript #lightweight-charts
#javascript #облегченные диаграммы
Вопрос:
Мне нужно загружать данные до тех пор, пока они не заполнят видимую область. Но на setData
графике изменяется видимая область, что приводит к бесконечной загрузке данных. Это выглядит примерно так https://jsfiddle.net/beholderrk/916g3tcf/3 /
Есть ли какой-либо способ, чтобы setData не приводил к сдвигу в видимой области timeScale()
?
Ответ №1:
Кажется, что возникает ошибка, когда вы устанавливаете данные через setData
, и библиотека перемещает видимый диапазон, и я думаю, что она не должна этого делать (это должно работать так же, как если бы у вас была видна последняя строка). Я бы посоветовал вам опубликовать проблему на github, чтобы мы могли пометить ее как ошибку и исправить в будущих версиях.
Комментарии:
1. Спасибо. github.com/tradingview/lightweight-charts/issues/549
Ответ №2:
Я разветвил скрипку на то, чего, как я думаю, вы хотите достичь. Вам просто нужно добавить:
chart.applyOptions({
priceScale:{
autoScale: false,
}
})
после объявления. Я также добавил раздел с комментариями на случай, если вы захотите изменить шкалу цен:
// To set a different scale
/*autoscaleInfoProvider: () => ({
priceRange: {
minValue: 170,
maxValue: 300,
},
}),*/
Однако я не нашел ни одного условия, при котором анимация прекращается. Только при нажатии stop
кнопки. Вам нужно было бы добавить эту часть.
Комментарии:
1. Спасибо за ответ. Я хочу, чтобы
timeScale
не смещаться вправо, когдаsetData
. Автоматическое масштабирование изменяет поведениеpriceScale
, неtimeScale