2017-10-17 13 views
0

現在、ハイチャートのサンバーストチャートの凡例を有効にすると、凡例に単一のシリーズラベルが表示されます。次のJSFiddleを参照してください。http://jsfiddle.net/amrutaJgtp/7r8eb5ms/6/ハイチャート:Pieチャートの伝説と同様にSunburstの伝説を表示することはできますか?

ハイチャートの円グラフの凡例は、凡例のすべてのカテゴリラベルを示しています。以下の円グラフの凡例参照してください: - 伝説では消費者、企業、ホームオフィス、スモールビジネスhttp://jsfiddle.net/amrutaJgtp/wgaak302/

series: [{ 
name: 'Sales', 
colorByPoint: true, 
showInLegend: true, 
data: [{ 
    name: 'Consumer', 
    y: 2455 
}, { 
    name: 'Corporate', 
    y: 6802 
},{ 
    name: 'Home office', 
    y: 9031 
}, { 
    name: 'Small Business', 
    y: 5551 
}] 
}] 

は、それはサンバーストシリーズのすべてのデータポイントまたは少なくともカテゴリを表示することは可能ですか?

+1

それは(ドリル付き)サンバーストのポイントは、チャート内のすべてのセグメントラベルを表示することです私の理解である - ないで伝説。 – wergeld

答えて

0

私の意見では、答えはで、です。

このデモを参照してください:http://jsfiddle.net/kkulig/u3p1usz9/

私はlegendType = 'point'設定(APIでdocummentedが、それが動作しない)とH.Legend.prototype.getAllItemsを上書きすることによって、この機能を実装しようとしたが、隠れポイントはサンバーストのためにサポートされていないようです。それを行う方法はありません - console.logの出力をチェックしてください。 visibleプロパティを使用してポイントの表示を切り替えることもできません。凡例は正しく動作しますが、プロット領域には何の影響もありません。 http://jsfiddle.net/kkulig/kn10kb7L/

まず私はデータがないという付加的な2つのシリーズを追加:

この単純な例では、所望の凡例の挙動を模倣する方法を示し

{ 
    type: 'line', 
    name: 'p1', 
    color: 'blue' 
}, { 
    type: 'line', 
    name: 'p2', 
    color: 'blue' 
} 

凡例の色アイテムマーカーは、「偽の」シリーズの色を設定することによって手動で処理する必要があります。 私は可視性を制御するためにすべてのリーフに対してvisibleフラグを作成しました。 次に、legendItemClickコールバック関数を使用して完全なデータセットをフィルタリングし、フィルタリングされたデータを使用して最初のシリーズでsetDataを実行しました。

legendItemClick: function(e) { 
     series = this; 
     data.forEach(function(leaf) { 
     if (leaf.id === series.name || leaf.parent === series.name) { 
      leaf.visible = !leaf.visible; 
     } 
     }); 
     this.chart.series[0].setData(data.filter((leaf) => leaf.visible)); 
    } 

APIリファレンス:https://api.highcharts.com/highcharts/plotOptions.sunburst.point.events.legendItemClick


あなたは隠れポイントはサンバースト直列に実施されるべきであると考える場合は、ここでこのアイデアを共有することができます:https://highcharts.uservoice.com/forums/55896-highcharts-javascript-api


を更新

setDataの代わりにaddPointremovePointを使用するとアニメーションが発生します。

APIリファレンス:

+0

お返事ありがとうございました。ダミー系列を追加してlegendItemClickイベントを定義するという解決策を試しました。 JS Fiddle:http://jsfiddle.net/amrutaJgtp/kn10kb7L/1/ 私は透明な最内側のサークルでトップレベルを示す実際のサンバーストチャートで同じことを達成しようとしています。ここでポイントを隠す条件は満たされません。 JSフィドル:http://jsfiddle.net/amrutaJgtp/7r8eb5ms/19/ – Ams

関連する問題