【问题标题】:Highcharts | Heatmap | Legend filters not working when updating data海图 |热图 |更新数据时图例过滤器不起作用
【发布时间】:2018-11-28 14:32:32
【问题描述】:

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

但是,图例还可以(禁用的仍然禁用)。

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

请在下面找到我解释的视觉描述:

【问题讨论】:

标签: javascript highcharts heatmap


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多