2016-11-11 3 views
1

У меня есть несколько диаграмм, показывающих разные данные. однако все они имеют одинаковый тип объекта e.ge [acc1, acc2, acc3]. Поэтому мне было интересно, можно ли установить одну родительскую легенду на странице и щелкнуть ее, чтобы показать/скрыть все соответствующие данные из всех диаграмм?ChartJS, слияние легенд для нескольких диаграмм

+0

это может быть полезно [диаграмма-js несколько диаграмм с одной легендой для управления] (https://codepen.io/shivabhusal/pen/XazwVq?editors=1010) – illusionist

ответ

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. Чтобы выполнить эту работу, вам нужно будет переписать вышеприведенную функцию для реализации цикла, выбрав все необходимые диаграммы и выберите мета, скройте его и обновите диаграмму.

Смежные вопросы