图表 |热图 |图例过滤器在更新数据时不起作用
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();
});
我对 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();
});