I am trying to split my plots in different subplots.. What I want to achieve is to put a colorbar for a subplot in a different subplot. Right now I am using:
# fi
I believe you should use ax instead of cax.
# colorbar
axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3)
plt.colorbar(pc, ax=axes)
colorbar()
accepts a cax
keyword argument that allows you to specify the axes
object that the colorbar will be drawn on.
In your case, you would change your colorbar call to the following:
# colorbar
axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3)
plt.colorbar(pc, cax=axes)
This will take up the whole space given by subplot2grid
; you can adjust this to be more reasonable either by having the main axes take up many more columns than the colorbar axes, or by setting up the gridspec
explicitly. For example, your figure may be easier to tweak with the following:
from matplotlib import gridspec
gs = gridspec.GridSpec(2, 2, height_ratios=(3, 1), width_ratios=(9, 1))
# first graph
axes = plt.subplot(gs[0,0])
pc = plt.pcolor(df1, cmap='jet')
# second graph
axes = plt.subplot(gs[1,0])
plt.pcolor(df2, cmap='Greys')
# colorbar
axes = plt.subplot(gs[0,1])
plt.colorbar(pc, cax=axes)
Then you can just change height_ratios
and width_ratios
to your liking.