matplotlib的新手,并尝试通过动画迭代DataFrame来探索现有数据,但似乎很慢,任何人都可以看到我做错了或建议改进,尝试过使用帧速但效果不大我认为它是我的代码,想在15秒内查看这个2000行对象给予或接受。 box是8gb linex所以应该没问题,使用ipython pop out figure来绘制。
from pandas import *
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import animation
coef_mean = DataFrame(np.random.rand(2000,50))
def animate(f_frame):
plt.cla()
plt.plot(coef_mean.columns.values, coef_mean.ix[f_frame])
plt.ylim(f_coef_min,f_coef_max)
fig = plt.figure(figsize=(9,5))
f_coef_min, f_coef_max = coef_mean.min().min()-.02, coef_mean.max().max()+.02
anim = animation.FuncAnimation(fig, animate, frames=150)
plt.show()
那里有什么想法我做错了什么?非常感谢,LW
也可以尝试使用
获取弹出数字%matplotlib qt
答案 0 :(得分:2)
您无需在动画功能内重新绘制。相反,您应该只更新绘图的数据。在你的情况下,这样的事情应该有效:
fig, ax = plt.subplots()
custom_plot, = ax.plot(coef_mean.columns.values, coef_mean.ix[0])
ax.set_ylim(f_coef_min,f_coef_max)
def animate(f_frame):
custom_plot.set_ydata(coef_mean.ix[f_frame])
return custom_plot,
查看一些动画示例以获取更多信息。例如: http://matplotlib.org/examples/animation/simple_anim.html