2. 交互式模式
使用交互式
backend
可以plotting to the screen
,但是前提是matplotlib
必须是interactive mode
。你可以在
matplotlibrc
配置文件中设置matplotlib
是否位于交互模式,也可以通过代码matplotlib.interacite()
来设置matplotlib
位于交互模式。你可以通过代码matplotlib.is_interactive()
来判断代码是否交互模式。通常并不建议在绘图过程中修改交互模式,因此要提前修改交互模式再绘图。交互模式也可以通过
matplotlib.pyplot.ion()
开启交互模式,由matplotlib.pyplot.ioff()
关闭交互模式。另外交互模式支持ipython
和python shell
,但是不支持IDLE IDE
。在交互模式下:
pyplot.plot()
绘图之后图表马上显示,pyplot
自动绘制到屏幕,不需要调用pyplot.show()
- 图表显式之后你可以继续输入命令。任何对图形的修改会实时的反应到图表中去。
- 使用面向对象的方法,如
Axes
的方法并不会自动调用draw_if_interactive()
。如果你通过Axes
来修改图表,想更新图表的话那么你需要手动调用.draw()
方法。而pyplot
模块中的函数会主动调用draw_if_interactive()
,因此如果你是通过pyplot
模块修改图表那么不需要手动调用.draw()
方法就是实时绘制。
在非交互模式下:
- 在绘图之后必须手动调用
pyplot.show()
才能显示图表。该函数会阻塞执行直到你关闭了图表窗口。 - 所有的绘制工作会延迟到
pyplot.show()
函数调用 - 在1.0版本以前,单个脚本文件中只能调用一次
pyplot.show()
,在1.01版本之后该限制被放松。
- 在绘图之后必须手动调用