Highcharts |Тепловая карта |Фильтры легенды не работают при обновлении данных - PullRequest
0 голосов
/ 28 ноября 2018

У меня проблема с тем, как функция setData работает с серией вида ' HEATMAP ', когда обновляет данные и когда один или несколько Фильтры легенды были отключены.

Я использую 3 цвета для заполнения диаграммы Heatmap в соответствии со значением, представленным данными (что отлично работает), каждый цвет отображается как элемент вЛегенда:

options.colorAxis = {
      dataClasses: [
{
      color: GREEN,
      from: 0,
      to: 50,  
    },
    {
      color: ORANGE,
      from: 50,
      to: 100, 
    },
    {
      color: RED,
      from: 100,  
      to: 1e6,
    }]

    };

Когда я хочу обновить диаграмму новыми данными, поступающими с сервера, я использую:

this.chart.series[0].setData(newData, true, false, false);

Это также хорошо работает, за исключением когда цвета были отключены нажатием на элементы легенды.

Проблема в том, что все цвета, отфильтрованные фильтром, вновь появляются на графике при обновлении данных (изображение ниже, часть 3)

Однако легенда в порядке (то, что было отключено, остается отключенным).

Не могли бы вы помочь мне найти решение?Спасибо.

Ниже приведено визуальное описание того, что я объяснил:

enter image description here

1 Ответ

0 голосов
/ 29 ноября 2018

FWIW, вот как я решил свою проблему.

Сразу после обновления с помощью

this.chart.series[0].setData(newData, true, false, false);

Я только добавил строки ниже (программно переключаю вдвое видимость групп данных):

const allItems = (<any>this.chart.legend).allItems as Array<any> ;

allItems.forEach( item => {
  item.setVisible();
  item.setVisible();
});
...