Просто поместите весь свой код в один и тот же файл (ы), объедините экземпляры перекрестного фильтра и поместите все диаграммы в одну группу диаграмм (по умолчанию), и все должно работать нормально.
Диаграмма группа является вторым параметром для каждого конструктора диаграммы. Если он не указан, то диаграмма переходит в группу диаграмм по умолчанию.
Когда какой-либо график отфильтровывается в группе диаграмм, он сообщает всем другим диаграммам в этой группе диаграмм о необходимости перерисовать, и они вытягивают свои диаграммы. новые данные из соответствующих групп кроссфильтров. (Извините за наименование, ad c. js группа диаграмм не имеет ничего общего с группой перекрестных фильтров.)
Чтобы объединить ваш код, я переименовал оба экземпляра перекрестного фильтра в cf
, Затем я добавил новые поля, которые вы генерируете, в существующие строки вместо сопоставления данных:
data.forEach(d =>
Object.assign(d, {
mes: d.Month,
atual: d.Vendas_Ano,
passado: d.Vendas_Ant
})
);
В скрипте таблицы вы инициализировали таблицу для каждой строки в данных с data.forEach()
, который не был необходим. Вот почему загрузка была такой медленной.
Кроме того, обе скрипки имели одинаковую общую структуру, поэтому я просто скопировал и вставил код из скрипта таблицы в композитную скрипту, HTML, JS и CSS.
В JS я позаботился о том, чтобы поставить и те же строки снаружи и внутри обратного вызова d3.json()
, как и раньше.
Похоже, это работает?
https://jsfiddle.net/gordonwoodhull/0q1y5ftr/15/