Matplotlib atualizando plotagem ao vivo
Quero atualizar um gráfico de linhas com matplotlib e me pergunto se há uma boa modificação do código, de modo que a linha plotada simplesmente seja atualizada em vez de ser redesenhada toda vez. Aqui está um código de exemplo:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
matplotlib.style.use('ggplot')
plt.ion()
fig=plt.figure()
i=0
df = pd.DataFrame({"time": [pd.datetime.now()], "value": 0}).set_index("time")
plt.plot(df);
while True:
temp_y=np.random.random();
df2 = pd.DataFrame({"time": [pd.datetime.now()], "value": temp_y}).set_index("time")
df = df.append(df2)
plt.plot(df)
i+=1
plt.show()
plt.pause(0.000001)
Como você vê, a plotagem fica cada vez mais lenta depois de um tempo e acho que o gráfico de linhas é redesenhado a cada iteração, pois muda de cor.