Matplotlib动画在PyCharm中不起作用

时间:2018-01-09 21:42:44

标签: python animation matplotlib

我发现了各种使用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)

还有什么问题?

2 个答案:

答案 0 :(得分:1)

以上(或附带的链接)对我不起作用,但是,我发现这很好用(用anaconda和ipython控制台运行2.7) -

不是正常执行脚本(使用run / Shift + f10),我首先设置:

sqlContext.sql("insert into table mylogs select * from temptable"")

然后使用

从pycharm控制台执行脚本
%matplotlib qt5

导致类似的结果,好像我会从独立的ipython控制台做同样的事情: hover graph

(注意 - 图是动画的)

答案 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()

Result image