matplotlib绘图不显示内容

6 投票
2 回答
10781 浏览
提问于 2025-04-16 15:04

我正在使用Python的matplotlib库来绘制一些等高线,使用的是contour和contourf这两个函数。它们在使用show的时候都能正常工作,但当我尝试在一个方法里使用draw()时,我能看到matplotlib的窗口,但却没有图形显示。show()的调用会在代码的后面很久才执行,并且是在一个不同的方法里。我希望在图形完成时能立即显示,而不是等到很后面的show()才显示。我哪里做错了呢?

谢谢。

2 个回答

7

你有没有用 ion() 开启交互模式?在我的 OSX 系统上,使用 Tk 后端并从命令行运行时,下面的代码对我有效:

import matplotlib.pyplot as plt

plt.ion()
plt.figure()
for i in range(10):
    plt.plot([i], [i], 'o')
    plt.draw()
raw_input("done >>")  

也就是说,在每次循环时,你会看到图表的变化(也就是每添加一个点,图表就会重新绘制)。顺便提一下,如果我改用 plt.ioff(),那么我就看不到图形或任何更新了。

2

如果我没记错的话,你应该可以多次调用 fig.show()。另外,可以试试使用 ipython(输入 ipython -pylab),还有这个链接 http://matplotlib.sourceforge.net/users/shell.html,里面有更多信息。

撰写回答