Sto usando d3.js per visualizzare le timeeries: dati inviati dal mio backend Python (tramite Websocket). La normale quantità di dati per un grafico è di circa 120 voci (2 ore di dati, 1 voce per minuto). Funziona bene, viene aggiornato ogni minuto.Grande grafico d3.js, rendering su tela o lato server?
Ma dovrebbe anche essere in grado di visualizzare i dati da un mese o più (potrebbe essere fino a un anno), anche in un intervallo di 1 minuto. Il rendering di una tale quantità di dati è troppo per SVG.
Sto pensando delle seguenti alternative:
- rendering in una tela. È davvero molto più veloce?
- Il passaggio a un'altra libreria come Highchart.js (visto una demo con ~ 50K voci)
- rendering SVG/JPG/PNG sul server. Qualsiasi esperienza sul rendering di d3.js lato server con ad es. phantom.js? Mi piacerebbe riutilizzare i modelli grafici già scritti. Ma potrebbe anche essere qualsiasi altra libreria che è in grado di rendere i dati (generare i grafici con python)
Cosa raccomanderesti?
Vorrei discutere con l'approccio super-cool [rendering di file SVG sul client] (http://net.tutsplus.com/tutorials/why-arent-you-using-svg/). – Droogans
@Droogans Sì, lo sto già facendo per i piccoli grafici. Ma i miei problemi sono i grandi grafici (con un'enorme quantità di dati) .. – Beastcraft
Hmmm ... d3 dovrebbe funzionare bene con 120 punti dati. Quali sono i problemi con la soluzione d3? La tela è ottima per presentare grafici che cambiano dal secondo al secondo - sì, è molto più veloce. Ma non è forte sull'interattività (come drill-down o note informative a comparsa). Se si dispone di grafici statici da presentare (grafici che sono stati salvati nell'immagine), la tela può iniziare presentando un'immagine statica all'interno dell'area di disegno e quindi aggiornando l'area di disegno secondo necessità con datapoint aggiornati (la riutilizzabilità che ha menzionato). – markE