我们正在使用Highcharts,并且在图表中有大约75个系列的复杂图表.该系列不是在整个图表中使用,而是仅在三个月的范围内使用.所以我们每年大约有15个系列,整体图表涵盖五年(大约15*5 = 75系列).但是,Highcharts会在其图例中显示所有75个图表.目标是仅将可见系列的图例最小化.我们能够确定JS代码中的相关系列,我们试图切换相关系列的'showInLegend'标志,例如
chart.series[24].options.showInLegend = false
Run Code Online (Sandbox Code Playgroud)
但没有效果.我们尝试使用重绘图表
chart.redraw()
Run Code Online (Sandbox Code Playgroud)
但这没有效果......传说保持不变.
所以问题是:
Jug*_*kar 15
好吧,只是设置showInLegend不起作用,还有一些需要注意的钩子
请参阅Halvor Strand的答案,了解更新的方法
item.options.showInLegend = true;
chart.legend.renderItem(item);
chart.legend.render();
Run Code Online (Sandbox Code Playgroud)
item.options.showInLegend = false;
item.legendItem = null;
chart.legend.destroyItem(item);
chart.legend.render();
Run Code Online (Sandbox Code Playgroud)
其中,item可以是一个点或一系列
var item = chart.series[1];
Run Code Online (Sandbox Code Playgroud)
动态添加删除图例| Highchart&Highstock @ jsFiddle
您可以设置showInLegend为false创建图表的时间.
{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
showInLegend: false
}
Run Code Online (Sandbox Code Playgroud)
如果要动态更新它,可以执行以下操作.
options.series[1].showInLegend = false;
chart = new Highcharts.Chart(options);
Run Code Online (Sandbox Code Playgroud)
你忘了强制图表重绘.
或者chart.legend.allItems[1].destroy();删除第一个.
现在可以通过该Series.update方法(API)解决这个问题.例如:
chart.series[0].update({ showInLegend: false });
Run Code Online (Sandbox Code Playgroud)
看到这个JSFiddle演示.方法签名是:
update(Object options, [Boolean redraw])
Run Code Online (Sandbox Code Playgroud)
options任何常规Series对象的选项在哪里.您可以选择暂停重绘以在重绘之前更改多个选项.
| 归档时间: |
|
| 查看次数: |
10146 次 |
| 最近记录: |