matplotlib绘图不显示内容
我正在使用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,里面有更多信息。