I am working with a ML project and I want to display in (relative) real time a chart with a fitness function.
I am using code from this SO answer and it works fine as long as the chart is displayed in the matplotlib window. As soon as I add it to the page, it becomes a static image.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
max_x = 5
max_rand = 10
x = np.arange(0, max_x)
ax.set_ylim(0, max_rand)
line, = ax.plot(x, np.random.randint(0, max_rand, max_x))
def init(): # give a clean slate to start
line.set_ydata([np.nan] * len(x))
return line,
def animate(i): # update the y values (every 1000ms)
line.set_ydata(np.random.randint(0, max_rand, max_x))
return line,
ani = animation.FuncAnimation(
fig, animate, init_func=init, interval=1000, blit=True, save_count=10)
st.pyplot(plt)
Any idea how to animate a chart? It doesn't have to be matplotlib.
animate(i)
to update with your new chart data. – Mohawk