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.
The gca() function in pyplot module of matplotlib library is used to get the current Axes instance on the current figure matching the given keyword args, or create one. Syntax: matplotlib.pyplot.gca(\*\*kwargs)
gca() method. The gca() method figure module of matplotlib library is used to get the current axes.
Difference Between Matplotlib gca and gcf:GCA. GCF. stands for get current axis. stands for get current figure. gives the reference of the current axes.
Use plt.sca(ax)
to set the current axes, where ax
is the Axes
object you'd like to become active.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With