奇怪的行为,我确定这是我搞砸了,但我想深入了解正在发生的事情:
我正在运行以下代码,使用matplotlib创建一个非常简单的图形窗口:
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.plot((1, 3, 1))
[<matplotlib.lines.Line2D object at 0x0290B750>]
>>> plt.show()
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,我得到了一个人们所期望的图表,在一个弹出的新窗口中,包含一条非常简单的蓝线,在y轴上从1回到1再回到1,其中0,1,2为x轴点(就像例子).现在我关闭图形窗口(使用窗口右上角的十字按钮).这让我可以控制解释器,然后我重新开始创建新对象:
>>>
>>> fig1 = plt.figure()
>>> bx = fig1.add_subplot(111)
>>> bx.plot((1, 3, 1))
[<matplotlib.lines.Line2D object at 0x029E8210>]
>>> plt.show()
Run Code Online (Sandbox Code Playgroud)
这一次,我得到一个窗框,里面没有任何东西(只是框架,没有白色背景),整个爆炸拍摄都挂了.我必须"结束任务",python解释器被系统终止,我得到一个命令提示符.在mac上的类似行为(除了它实际上首先绘制图形,然后也挂起).
所以Python和/或matplotlib不希望我手动关闭窗口.有人知道发生了什么,我应该做什么?我想做的是在解释器中使用不同的情节,显然这种行为没有帮助.我知道我可以使用"Ipython -pylab",但为了学习,我想了解上述错误.
谢谢.
小智 8
聚会晚了三个月,但我在matlibplot文档中发现了一个使用draw()而不是show()的建议; 前者显然只是对当前情节进行渲染,而后者则启动所有交互式工具,这就是问题似乎从何处开始.
它并没有非常突出地放在文档中,但这里是链接:http: //matplotlib.sourceforge.net/faq/howto_faq.html#use-show
对于它的价值,我已经尝试了pylab.show()并且你遇到了完全相同的问题,而pylab.draw()似乎工作得很好,如果我只是想看看输出.
小智 2
显然,这是由 tkinter 后端的错误引起的。例如,参见https://bugs.launchpad.net/ubuntu/+source/matplotlib/+bug/313834。它正在研究中......如果你可以回归到一个稍微旧的 tkinter 库,这应该是暂时的解决方法(几周前我遇到了同样的事情,这是我唯一的希望)。
| 归档时间: |
|
| 查看次数: |
10422 次 |
| 最近记录: |