我发现了各种使用matplotlib生成动画的短文件。一般来说,它们在从命令行运行时工作正常,但在PyCharm中我只得到一个静止帧。
我问的问题与Matplotlib does not update plot when used in an 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)
还有什么问题?
答案 0 :(得分:1)
以上(或附带的链接)对我不起作用,但是,我发现这很好用(用anaconda和ipython控制台运行2.7) -
不是正常执行脚本(使用run / Shift + f10),我首先设置:
sqlContext.sql("insert into table mylogs select * from temptable"")
然后使用
从pycharm控制台执行脚本%matplotlib qt5
导致类似的结果,好像我会从独立的ipython控制台做同样的事情:
(注意 - 图是动画的)
答案 1 :(得分:1)
根据this答案和this票证,您可以在Pycharm中禁用Show plots in tool window
(文件->设置->工具-> 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()