A partire da Bokeh 0.11.1
è ora disponibile un'interfaccia di streaming per la colonna delle origini dati nelle app del server Bokeh. È possibile visualizzare ed eseguire facilmente un esempio qui:
https://github.com/bokeh/bokeh/tree/master/examples/app/ohlc
Questo esempio mostra un grafico in diretta OHLC aggiornamento con indicatore MACD (sulla base dei dati tick sintetiche) che aggiorna solo la trama con i più recenti punti di dati su ogni aggiornare.
In pratica, l'utilizzo dell'interfaccia di streaming è costituito da due parti. In primo luogo creare un nuovo dict
con la stessa "forma" come origine di dati della colonna:
new_data = dict(
time=[t],
open=[open],
high=[high],
low=[low],
close=[close],
average=[average],
color=[color],
)
quindi passare questo al metodo .stream
, con una rollover
argomento opzionale che specifica quanto grande di un buffer per mantenere nel browser (in precedenza dati comincia a diventare lasciati):
source.stream(new_data, 300)
Poi, proprio la piccola quantità di dati in new_data
willbe inviato alla trama, non tutto.
Puoi descrivere la differenza che vuoi un po 'di più? La tecnica dell'esempio è di aggiornare i dati nell'origine dati, quindi la trama viene aggiornata automaticamente. Molte persone hanno utilizzato la tecnica dell'esempio per l'aggiornamento delle serie temporali, non sono abbastanza sicuro di cosa vuoi fare in modo diverso? Se si desidera aggiornare una serie temporale, è possibile aggiungere nuovi punti alla fine dei dati. Se si desidera una finestra fissa, è anche possibile eliminare i punti iniziali quando necessario. Se usi gli array numpy, il taglio potrebbe contribuire a rendere questo più semplice o più efficiente. – bigreddot
In alternativa, se stai chiedendo supporto per aree danneggiate e ridisegni parziali, non c'è attualmente. L'aggiornamento dei dati causa sempre un re-rendering completo. – bigreddot
Sì, sto parlando del ridisegno parziale come l'opzione blitz nella funzione di animazione di matplotlib – Maxi