[英]Highcharts, exclude data point from legend on pie chart
如何从饼图类型的图例中排除一个特定的数据点,但显示所有其他数据点?
我可以找到HighCharts中目前不存在该选项,但是,您可以对源代码进行一些修改以使其工作。
我针对此黑客使用了v2.3.3
版本,但是其他版本可能也可以类似地工作。
有问题的代码在9336行附近:
allItems = [];
each(chart.series, function (serie) {
var seriesOptions = serie.options;
if (!seriesOptions.showInLegend) {
return;
}
// use points or series for the legend item depending on legendType
allItems = allItems.concat(
serie.legendItems ||
(seriesOptions.legendType === 'point' ?
serie.data :
serie)
);
});
在该代码之后,立即放置以下代码:
for (var i=0;i<allItems.length;i++){
if (typeof allItems[i].showInLegend !== "undefined"){
if (!allItems[i].showInLegend){
allItems.splice(i,1)
i--;
}
}
}
然后对于点集showInLegend = false像这样:
{
name: 'Chrome',
y: 12.8,
sliced: true,
selected: true,
showInLegend: false
},
这是显示工作概念的JSFiddle: http : //jsfiddle.net/mkremer90/zXSJW/
您可以使用“假”系列,例如以下示例:
介绍了如何在图例中显示定义的项目。
legendItemClick: function (event) {
console.log(this);
var thisSeriesId = this.id;
var thisSeriesVisibility = this.visible ? true : false;
$(chart.series).each(function (i, e) {
$(e.data).each(function(j, k){
if (thisSeriesId === k.id) {
thisSeriesVisibility ? k.setVisible(false) : k.setVisible(true);
}
});
});
event.preventDefault();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.