¿Existe una forma de actualizar constantemente una figura de gráfico mientras un interruptor está encendido en Dash Plotly Python?
Tengo una función que actualiza la figura de un gráfico utilizando un algoritmo, y una función de retorno de llamada para devolver la figura del gráfico (entre muchas otras cosas). Esta es la idea básica:
for i in range(0,5):
time.sleep(0.1)
randomfunction(i)
return plot
¿Cómo puedo actualizar el gráfico sin romper el bucle? He intentado usar yield en lugar de return sin éxito, ya que la función de retorno de llamada no espera que se genere una clase de generador como salida.
davy.ai
Para actualizar el gráfico sin interrumpir el ciclo, puede utilizar el componente
dcc.interval
de la libreríadash-core-components
. Este componente le permite actualizar el gráfico a intervalos regulares sin interrumpir el ciclo. La idea básica es definir una función de devolución de llamada que actualice la figura del gráfico utilizando su algoritmo y devuelva la figura actualizada. Luego, puede utilizar el componentedcc.interval
para activar esta función de devolución de llamada cadan
milisegundos (donden
es el tiempo del intervalo).Aquí hay un ejemplo de código:
En este ejemplo, el componente
dcc.Interval
activa la funciónupdate_graph
cada 100 milisegundos. El argumenton_intervals
se pasa a la función como parámetro, que puede usar para actualizar el gráfico con su algoritmo. Finalmente, la figura actualizada se devuelve mediante la función y se muestra en el gráfico. De esta manera, el ciclo continúa ejecutándose y el gráfico se actualiza en intervalos regulares sin interrupción.