Не хочу ничего отнимать у автора этого сообщения в блоге (Джозеф Лонг), но это, безусловно, лучшее решение, которое я нашел до сих пор. Он включает в себя фрагменты кода, отличные объяснения и множество примеров.
Подводя итог, с любого выхода оси ax команды: plot , image , scatter , коллекция и т. д., например:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(5,5), dpi=300)
ax = fig.add_subplot(1, 1, 1)
data = ax.plot(x,y)
# or
data = ax.scatter(x, y, z)
# or
data = ax.imshow(z)
# or
data = matplotlib.collection(patches)
ax.add_collection(data)
Вы создаете ось цветовой шкалы, используя make_axes_locatable и исходную ось графика.
from mpl_toolkits.axes_grid1 import make_axes_locatable
# the magical part
divider = make_axes_locatable(ax)
caxis = divider.append_axes("right", size="5%", pad=0.05)
fig.colorbar(data, cax=caxis)
plt.show()
Созданная цветовая панель будет иметь тот же размер, что и рисунок или подзаговор, и вы можете изменить ее width , location , padding при использовании divr.append_axes команда.