Interakcje wpływające na wiele oddzielnych wykresów w d3.js?

Próbuję utworzyć wizualizację danych w d3.js, która zawiera dwa wykresy: wykres osi równoległej i poziomy wykres kolorów (właśnie stworzyłem tę nazwę, ale jest to w zasadzie seria kolorowych prostokątów). Każda linia na wykresie osi równoległej jest powiązana z zestawem prostokątów na wykresie kolorów.

W tej chwili, poruszanie się po danej linii podkreśla tę linię, a przemieszczenie nad danym prostokątem podkreśla ten zestaw prostokątów. Moim celem jest również zaznaczenie powiązanej linii lub zestawu prostokątów na odwrotnym wykresie za każdym razem, gdy użytkownik przesuwa mysz nad jednym z wykresów. Wydaje się, że byłoby to całkiem proste, gdybym wygenerował oba wykresy z tą samą funkcją. Jednak znacznie lepszym (i bardziej wielokrotnym) stylem kodowania jest nadanie każdemu wykresowi własnej funkcji i po prostu połączenie go w jakiś sposób. Próbowałem, aby każda funkcja przesuwania kursora w obrębie wykresu wywoływała funkcję zdefiniowaną na wyższym poziomie, która miała wpływ na oba wykresy, ale nie wydawało się to mieć żadnego wpływu na wykres, który nie został zmieniony. Ponieważ nadal nie czuję, że w pełni rozumiem, jak d3.js działa na podstawowym poziomie, naprawdę chciałbym mieć potwierdzenie, że jest to realny sposób na skonfigurowanie mojego kodu. Mój kod jest długi i skomplikowany, a ja naprawdę chcę porady na temat struktury, więc oto podstawowy zarys:

function chart1(){
    make chart
    function mouseover(d,i){
         do stuff
         chart1_globalmouseover(d,i);
    }
    chartElement.on("mouseover", function(d,i){mouseover(d,i)});
}

function chart2(){
    make chart
    function mouseover(d,i){
         do stuff
         chart2_globalmouseover(d,i);
    }
    chartElement.on("mouseover", function(d,i){mouseover(d,i)});
}

function chart1_globalmouseover(d,i){
    do stuff in chart 2's mouseover function
}

function chart2_globalmouseover(d,i){
    do stuff in chart 1's mouseover function
}

c1 = chart1();
c2 = chart2();

questionAnswers(1)

yourAnswerToTheQuestion