Matplotlib绘图没有显示任何内容

6
我正在使用Python的Matplotlib库使用contour和contourf函数来绘制一些等高线图。在使用show时,它们都可以正常工作,但是当我尝试在方法内部使用draw()时,虽然可以打开Matplotlib窗口,但没有图形显示。show()调用将在代码的后面和不同的方法中执行,并且我希望在完成draw()时立即显示一个图形,而不必等待较晚的show()。我做错了什么?
谢谢。
2个回答

7

您是否已经使用ion()打开了交互模式?以下内容适用于我在OSX上使用Tk后端并从shell命令行运行:

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(),则不会看到任何图像或更新。


1
@andi:我认为你的环境可能设置不正确。我刚刚再次运行了一遍以检查它,对我来说仍然有效,但是现在已经过去4年了,我使用了不同的计算机、版本、环境等。如果你无法让它工作,我建议你提出一个单独的问题,并提供更多细节(例如,在其他情况下,plt.ion()是否适用于你,你使用的是哪些版本等)。 - tom10
你说得完全正确!重新安装Anaconda后,它完美地运行了。对此我很抱歉。 - user4290866

2

谢谢你的回答。问题是我没有使用交互式环境 - 这是一个脚本中的模拟。而且多次调用show的问题在于show()是阻塞的,我需要在显示图形后程序继续运行而不需要用户干预。 - Ivan
啊,好的。那我也不确定了。随便想一下:如果你不能使用绘图工具完成这个任务,你可以将图表导出为图像文件并传递它。 - dfb
好的,无论如何感谢您。我正试图避免这种情况——我需要一个图表来决定是否保存结果。 - Ivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接