Search code examples
functionmatplotlibdefinitioninteractive-mode

Finding draw_if_interactive() in pyplot.py


There are multiple draw_if_interactive() expressions in the pyplot module but I can't find this function's definition anywhere in the module.

From intuition and readings, it's an easy guess that the function enables on-demand plotting but where can I read its definition? Thanks.


Solution

  • The function is actually in the backend code. The actual implementation depends on your backend. For example the function with the TkAgg backend is in backend_tkagg.py:

    def draw_if_interactive():
        if matplotlib.is_interactive():
            figManager =  Gcf.get_active()
            if figManager is not None:
                figManager.show()
    

    Same kind of functions seem to be for other backends, they use the matplotlib.is_interactive to determine if this is an interactive session and then use the backend specific drawing commands to draw the image.