繁体   English   中英

高图,饼图上的图例中不包括数据点

[英]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/

您正在寻找

   chart.series[0].setData() 

工作演示 http://jsfiddle.net/XdfSd/

您可以使用“假”系列,例如以下示例:

http://jsfiddle.net/Qaaqw/

介绍了如何在图例中显示定义的项目。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM