Ich verwende AxesGrid in Matplotlib, um ein Diagramm zu erstellen, das zwei IMshow-Plots mit einer separaten Farbleiste nebeneinander für jede Bildfarbpalette überlagert. Während ich in this question/answer sehen kann, dass mit pyplot.colorbar() automatisch die zweite Farbleiste neben der ersten plottet, scheint dies nicht mit AxesGrid zu arbeiten.Kann AxesGrid verwendet werden, um zwei Imshows (Overlays) mit zwei separaten Farbbalken zu plotten?
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import AxesGrid
fig = plt.figure(1, facecolor='white',figsize=(10,7.5))
grid = AxesGrid(fig, 111,
nrows_ncols=(1, 1),
axes_pad=(0.45, 0.15),
label_mode="1",
share_all=True,
cbar_location="right",
cbar_mode="each",
cbar_size="7%",
cbar_pad="2%",
)
im = grid[0].imshow(my_image, my_cmap)
cbar = grid.cbar_axes[0].colorbar(im)
im2 = grid[0].imshow(my_image_overlay, my_cmap2, alpha=0.5)
cbar2 = grid.cbar_axes[0].colorbar(im2)
plt.show()
Dies zeigt jedoch nur die zweite Farbleiste. (Vermutlich überlagert die erste). Ich habe versucht, die Polsterung in cbar2 überschrieben mit:
cbar2 = grid.cbar_axes[0].colorbar(im2, pad=0.5)
aber dies führt zu einem Fehler mit „bekam ein unerwartetes Stichwort Argument‚pad‘“
Gibt es eine Möglichkeit, die zweite colourbar zu kompensieren?