Pet*_*ake 8 python animation matplotlib
我发现了各种使用matplotlib生成动画的短文件.通常,它们在从命令行运行时工作正常,但在PyCharm中我只得到一个静止帧.
我问同样的问题,因为Matplotlib在IDE(PyCharm)中使用时不会更新绘图.那里有一个答案,这似乎适用于原始的提问者.当我从命令行运行该代码时,它工作正常.从PyCharm开始,它会暂停很长时间(大概是运行动画),然后显示一个静止帧(看起来像是动画的开头或结尾).
我在Mac(OS 10.11.6)上通过PyCharm 2017.3.2(专业版)运行Python 3.6.2(Anaconda).我在PyCharm中创建了一个Python项目,将该代码粘贴到.py文件中,安装了相应的库(matplotlib 2.0.2,numpy 1.13.1),然后运行该程序.
我在命令行和我在命令行上做的事情之间唯一的区别就是python --version给出了:
Python 3.6.0 :: Anaconda custom (x86_64)
Run Code Online (Sandbox Code Playgroud)
还有什么可能是问题?
根据此答案和此票证,您可以Show plots in tool window在 Pycharm 中禁用(File->Settings->Tools->Python Scientific),我将给出此解决方案的示例。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro')
def init():
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
return ln,
def update(frame):
xdata.append(frame)
ydata.append(np.sin(frame))
ln.set_data(xdata, ydata)
return ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
init_func=init, blit=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

上面的(或在附加的链接中)对我不起作用,但是,我发现这很好用(使用 anaconda 和 ipython 控制台运行 2.7)-
我不会正常执行脚本(使用 run / Shift+f10),而是首先设置:
%matplotlib qt5
Run Code Online (Sandbox Code Playgroud)
然后从 pycharm 控制台执行脚本,使用
runfile('/path/to/script.py')
Run Code Online (Sandbox Code Playgroud)
产生类似的结果,就好像我从独立的 ipython 控制台执行相同的操作一样:

(注 - 该图是动画的)