Eri*_*got 21 python matplotlib interactive-mode
Matplotlib的pyplot中"交互模式"的文档如下:
pyplot接口的交互属性控制是否在每个pyplot命令上绘制图形画布.如果interactive为False,则每个绘图命令都会更新图形状态,但只会在显式调用draw()时绘制.当interactive为True时,则每个pyplot命令都会触发绘制.
这似乎很清楚:当交互模式打开时,人们可以不必plot()这样做draw().但是,在以下代码中执行draw()不会执行任何操作:
from matplotlib import pyplot as pp
# Interactive mode is off by default
pp.plot([10, 20, 50])
pp.draw()
raw_input('Press enter...') # No graph displayed?!!
Run Code Online (Sandbox Code Playgroud)
(在Windows XP上,Matplotlib 1.0.1).
ion()在开头添加会使图形出现,同时等待用户输入enter(方便地关闭所有数字):
from matplotlib import pyplot as pp
ion()
pp.plot([10, 20, 50]) # No draw() is necessary
raw_input('Press enter...') # The graph is interactive *and* the terminal responds to enter
Run Code Online (Sandbox Code Playgroud)
因此,看起来ion()确实更不是每个绘图命令后,只是增加自动图表更新,可惜我不能找到文档中任何事情.后一个程序的另一个更重要的问题是ion()使所有绘图命令更新图形,这在单个图形被多次更新时是耗时的.
那么,有没有办法:
Eri*_*got 15
以下是Matplotlib邮件列表中有关此主题的有趣讨论的摘要.执行摘要是:
交互模式(激活ion())可以自动执行许多操作.特别是,pyplot.*命令会在屏幕上自动更新相关轴.但是,对Matplotlib对象的方法调用ax.plot()(ax如Axes对象)通常不会执行自动更新; 在这种情况下,pyplot.draw()执行必要的更新.)
非交互模式不太方便. draw()通常不会更新屏幕上的数字.draw()在非交互模式中有点"不活跃" 的事实在当前文档中没有提及,但希望很快就会包含在那里.
同时,可以在Matplotlib 的当前分支中找到有关交互和非交互模式的更多信息.一个更好的文档的draw(),show()朋友们也可以在同一分支中.
| 归档时间: |
|
| 查看次数: |
24055 次 |
| 最近记录: |