0

円グラフタイプのグラフの凡例から1つの特定のデータポイントを除外し、他のすべてのデータポイントを表示するにはどうすればよいですか?

4

3 に答える 3

3

そのオプションは現在、私が見つけた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/

于 2013-03-12T13:46:55.707 に答える
0

あなたは探している

   chart.series[0].setData() 

ワーキングデモ http://jsfiddle.net/XdfSd/

于 2013-03-12T13:57:30.317 に答える
0

この例のように、「偽の」シリーズを使用できます。

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();

                    }
于 2013-03-13T12:44:32.903 に答える