atualizar plotagem matplotlib
Eu estou tentando atualizar um gráfico de matplotlib da seguinte forma:
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
import numpy as np
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)
for i,(_,_,idx) in enumerate(local_minima):
dat = dst_data[idx-24:idx+25]
dates,values = zip(*dat)
if i == 0:
assert(len(dates) == len(values))
lines2d, = ax.plot_date(mdate.date2num(dates), np.array(values), linestyle='-')
else:
assert(len(dates) == len(values))
lines2d.set_ydata(np.array(values))
lines2d.set_xdata(mdate.date2num(dates)) #This line causes problems.
fig.canvas.draw()
raw_input()
Na primeira vez durante o loop, o gráfico é exibido muito bem. Na segunda vez no loop, todos os dados do meu lote desaparecem - tudo funciona bem se eu não incluir olines2d.set_xdata
linha (além dos pontos de dados x estar errado, claro). Eu olhei para os seguintes posts:
Como atualizar um gráfico no matplotlib?
e
Atualizar linhas no matplotlib
No entanto, em ambos os casos, o usuário está atualizando apenasydata
e eu gostaria de atualizar oxdata
também.