облегченные диаграммы: timeScale () изменяет диапазон видимости в setData ()

#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