我正在使用Ipython3绘制一些数据,使用默认的matplotlib后端'TKAgg'和virtualenv。我有一个plot_script绘制我的数据显示在一个新窗口,它工作了一段时间。然后有点随机,当我使用tab来自动填充一个语句时,它会抛出我在链接图片中看到的错误消息。当我使用Agg后端时它会偏离正常但由于我需要检查数据(放大等),这变得非常繁琐。
Screenshot of the Ipython Window
我意识到我可能不理解线程是如何工作的,但是在使用plot_script中非常简单的函数时,不应该有办法获得GUI窗口。基本上,我只是使用plot_script.plot_something(pd.DataFrame)调用该函数,并且图表是diplayed:
from matplotlib import pyplot as plt
def plot_something(data):
fig, ax = plt.subplots(2,2)
.... # Plot something
fig.savefig()
plt.show()
plt.close(fig)
fig.clear()
如何将我的绘图移动到主循环,这是ipython的一个问题?
答案 0 :(得分:1)
您可能需要激活正确的matplotlib& tk eventloop。在一般情况下,可以使用%gui
magic和%gui tk
来完成此操作,对于matplotlib,可以通过%matplotlib
magic完成一些额外设置,可能在您的情况下使用{{1} }}
还有很多其他库可以触发这种问题,但还没有答案,特别是使用OpenCV与终端IPython可以使主线程出现恐慌,但不是以可重现的方式,还没有调试和修复。
如果使用魔法没有解决它,请随时在IPython跟踪器上打开一个错误。