[Python] How to change the current axis instance (i.e., gca()) in matplotlib

Discussão em 'Python' iniciado por Stack, Março 23, 2025.

  1. Stack

    Stack Membro Participativo

    I use a trick to draw a colorbar whose height matches the master axes. The code is like

    import matplotlib.pyplot as plt
    from mpl_toolkits.axes_grid1 import make_axes_locatable
    import numpy as np

    ax = plt.subplot(111)
    im = ax.imshow(np.arange(100).reshape((10,10)))

    # create an axes on the right side of ax. The width of cax will be 5%
    # of ax and the padding between cax and ax will be fixed at 0.05 inch.
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("right", size="5%", pad=0.05)

    plt.colorbar(im, cax=cax)


    This trick works good. However, since a new axis is appended, the current instance of the figure becomes cax - the appended axis. As a result, if one performs operations like

    plt.text(0,0,'whatever')


    the text will be drawn on cax instead of ax - the axis to which im belongs.

    Meanwhile, gcf().axes shows both axes.

    My question is: How to make the current axis instance (returned by gca()) the original axis to which im belongs.

    Continue reading...

Compartilhe esta Página