图表 |热图 |图例过滤器在更新数据时不起作用

Highcharts | Heatmap | Legend filters not working when updating data

我对 setData 函数如何处理一系列类型的“HEATMAP”有疑问,当 更新 数据,以及禁用一个或多个图例过滤器 时。

我根据数据表示的值使用 3 种颜色填充热图图表(效果很好),每种颜色在图例中显示为一个项目:

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 部分)

然而,图例是可以的(被禁用的仍然被禁用)。

你能帮我找到解决办法吗? 谢谢。

请在下面找到我所解释内容的直观描述:

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();
});