2016-11-11 10 views
1

異なるデータを示す複数のグラフがあります。ただし、それらはすべて同じオブジェクトタイプe.ge [acc1、acc2、acc3]です。したがって、ある親の凡例をどこかのページに設定してクリックすると、すべてのグラフからすべての対応するデータセットが表示/非表示になるかどうかは疑問でした。ChartJS、複数のグラフの凡例をマージする

+0

これは参考になる可能性があります[単一の凡例を制御する複数の図表](https://codepen.io/shivabhusal/pen/XazwVq?editors=1010) – illusionist

答えて

1

私はあなたが1つを除いてすべての凡例を隠すことができ、その凡例のクリックを処理し、各グラフのすべての対応するデータセットを非表示にするカスタムonClick関数を実装できると思います。

現在のonClickの実装は次のようになります。

onClick: function(e, legendItem) { 
     var index = legendItem.datasetIndex; 
     var ci = this.chart; 
     var meta = ci.getDatasetMeta(index); 

     // See controller.isDatasetVisible comment 
     meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null; 

     // We hid a dataset ... rerender the chart 
     ci.update(); 
    } 

この機能はoptions.legend.onClickで定義する必要があります。この作業を行うには、上記の関数を書き換えてループを実装し、必要なすべてのチャートを選択してメタを選択し、非表示にしてチャートを更新する必要があります。

関連する問題