Ho un grafico bar/grafico combinato. Per ogni riga del file di input, creo un gruppo che contiene più elementi (linee, rettangoli, testi):D3: aggiornamento dei dati con più elementi in un gruppo
var myGroups = svg.selectAll('g').data(myData)
myGroups.enter().append('g')
...
myGroups.append('line')
...
myGroups.append('polygon')
...
myGroups.append('text')
...
Attualmente solo
svg.selectAll('*').remove()
e creare tutto da zero ogni volta che i dati sono aggiornati. Tuttavia, mi piacerebbe avere una transizione graduale per tutti gli elementi.
Sono passato attraverso lo this tutorial diverse volte, ma ancora non capisco come posso farlo nel mio caso.
Sei il vento sotto le mie ali! – Mikhail
Secondo i documenti d3, 'select()' dovrebbe restituire un singolo elemento. Ma qui sembra selezionare tutti gli elementi della linea nella dichiarazione 'myGroups.select (" linea "). Attr (...);'. E nei miei esperimenti, 'selectAll()' non sembra funzionare. Potresti spiegare l'apparente discrepanza? – brainjam
'myGroups' contiene più elementi e' .select() 'esegue la selezione per ognuno di essi. Cioè, stai selezionando un singolo elemento per più elementi. '.selectAll()' probabilmente non ha funzionato perché non aggiorna i dati. –