Как расположить метку горизонтального объекта цветовой панели matplotlib точно в центре цветовой панели ниже или выше?
Вот код, который я позаимствовал из примеров примеров matplotlib с небольшими изменениями для создания горизонтальной цветовой полосы для изображения с правильно размещенной меткой:
from matplotlib import colors
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
cmap = "cool"
fig, axs = plt.subplots()
# Generate data with a range that varies from one plot to the next.
data = (1 / 10) * np.random.rand(10, 20) * 1e-6
image = axs.imshow(data, cmap=cmap)
axs.label_outer()
# Find the min and max of all colors for use in setting the color scale.
vmin = image.get_array().min()
vmax = image.get_array().max()
norm = colors.Normalize(vmin=vmin, vmax=vmax)
cbar = fig.colorbar(image, ax=axs, orientation='horizontal', fraction=.1)
cbar.ax.set_ylabel('$[M_\u2609 kpc^{{-2}}]$', position=(30,1), fontsize=20, rotation=0)
plt.show()
Но вот выход, который я не хочу.
Я хочу ярлык, который точно сидит в центре colorbar
(ниже или выше). После изменения координат position
в приведенном выше коде не представляется, что существует какая-либо гибкость в определении положения метки. Есть ли что-то, о чем я не знаю в контексте matplotlib
ColorBars? Ваша помощь очень ценится.
1 ответ
Метка оси (ylabel
) предназначен для размещения вдоль соответствующей оси. Заголовок, с другой стороны, по своему дизайну расположен по центру объекта оси. Так что вместо использования set_ylabel
, вы должны использовать set_title
,
cbar.ax.set_title('$[M_\u2609 kpc^{{-2}}]$', fontsize=20)
Для получения дополнительной информации о различных частях фигуры, см. Этот пример "Анатомия фигуры"