2. 交互式模式

  1. 使用交互式backend可以plotting to the screen,但是前提是matplotlib必须是interactive mode

    你可以在matplotlibrc配置文件中设置matplotlib是否位于交互模式,也可以通过代码matplotlib.interacite()来设置matplotlib位于交互模式。你可以通过代码matplotlib.is_interactive()来判断代码是否交互模式。通常并不建议在绘图过程中修改交互模式,因此要提前修改交互模式再绘图。

    交互模式也可以通过matplotlib.pyplot.ion()开启交互模式,由matplotlib.pyplot.ioff()关闭交互模式。另外交互模式支持ipythonpython shell,但是不支持IDLE IDE

    交互模式

  2. 在交互模式下:

    • pyplot.plot()绘图之后图表马上显示,pyplot自动绘制到屏幕,不需要调用pyplot.show()
    • 图表显式之后你可以继续输入命令。任何对图形的修改会实时的反应到图表中去。
    • 使用面向对象的方法,如Axes的方法并不会自动调用draw_if_interactive()。如果你通过Axes来修改图表,想更新图表的话那么你需要手动调用.draw()方法。而pyplot模块中的函数会主动调用draw_if_interactive(),因此如果你是通过pyplot模块修改图表那么不需要手动调用.draw()方法就是实时绘制。
  3. 在非交互模式下:

    • 在绘图之后必须手动调用pyplot.show()才能显示图表。该函数会阻塞执行直到你关闭了图表窗口。
    • 所有的绘制工作会延迟到pyplot.show()函数调用
    • 在1.0版本以前,单个脚本文件中只能调用一次pyplot.show(),在1.01版本之后该限制被放松。