如何让半圆环形图仅保留一个图例选项?
如何让Highcharts环形图仅保留一个图例选项
我需要让环形图只显示一个图例选项,尝试在series.data中添加showInLegend: true/false但没有效果,原代码如下:
series: [{ name: 'Brands', innerSize: '60%', colorByPoint: true, showInLegend: true, data: [{ name: 'Chrome', // showInLegend: true, ----dosen't work y: 70.67, }, { name: 'Edge', // showInLegend: true, ----dosen't work y: 29.33 } ] }]});
问题原因
在Highcharts的单系列饼图/环形图中,数据点的showInLegend属性不生效——此时图例是基于整个系列的每个数据点自动生成的,该属性仅在多系列场景下才会被识别。
解决方案
方法一:通过图例格式化函数过滤显示项
修改legend配置,使用formatter函数只返回需要显示的图例文本,同时隐藏空图例项:
legend: { formatter: function() { // 仅返回Chrome的图例名称,其他数据点返回空 return this.name === 'Chrome' ? this.name : ''; }, // 隐藏无文本的图例项 itemHiddenStyle: { display: 'none' } }, series: [{ name: 'Brands', innerSize: '60%', colorByPoint: true, showInLegend: true, data: [{ name: 'Chrome', y: 70.67, }, { name: 'Edge', y: 29.33 } ] }]});
方法二:拆分多系列控制图例显示
将需要显示图例的数据点单独拆分为一个系列,其他数据点放在另一个系列并禁用图例:
series: [ { name: 'Chrome', innerSize: '60%', colorByPoint: true, showInLegend: true, data: [{y: 70.67}] }, { name: 'Edge', innerSize: '60%', colorByPoint: true, showInLegend: false, data: [{y: 29.33}] } ]});
内容的提问来源于stack exchange,提问作者Artem Shakun
相关产品推荐
相关产品推荐

