円グラフタイプのグラフの凡例から1つの特定のデータポイントを除外し、他のすべてのデータポイントを表示するにはどうすればよいですか?
質問する
2511 次
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
于 2013-03-12T13:57:30.317 に答える
0
この例のように、「偽の」シリーズを使用できます。
定義されたアイテムを凡例で表示する方法を紹介します。
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 に答える