Matplotlib colorbar не дает усадки - PullRequest
       1

Matplotlib colorbar не дает усадки

0 голосов
/ 27 сентября 2019

Я использую настраиваемую цветовую панель на своем графике со следующим кодом

import matplotlib
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

cmap = matplotlib.cm.get_cmap("hot")
norm = matplotlib.colors.Normalize(vmin=0, vmax=10)
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
fig = plt.figure()
gs = GridSpec(10, 10, figure=fig)
ax = fig.add_subplot(gs[1:, :])
colorbar_ax = fig.add_subplot(gs[0, :])
plt.colorbar(cax=colorbar_ax, mappable=sm, orientation="horizontal",
                 shrink=0.5)
plt.tight_layout()
plt.show()

Это дает мне следующий вывод: enter image description here

Для некоторых других аспектов моегодругой код, я должен использовать gridspec.Как я могу уменьшить цветовую полосу вдвое (или любую другую дробь)?shrink=0.5 или fraction=0.5 не работают.

1 Ответ

1 голос
/ 27 сентября 2019

Из документации для colorbar:

Термоусадочный кварг предоставляет простой способ масштабирования цветовой шкалы относительно осей.Обратите внимание, что если указан cax, он определяет размер цветовой шкалы, а сжатие и аспектные кварги игнорируются.

Так что вы не можете использовать shrink, если вы используете gridspec.

Конечно, gridspec разработан для упрощения подбора размеров осей подзаговора, поэтому мы можем использовать это для определения размера осей цветовой полосы.Поскольку у вас уже есть сетка 10x10, определенная gridspec, мы могли бы просто использовать среднюю часть в направлении x;Например, вы можете изменить что-то вроде этого, чтобы укоротить вашу цветовую панель:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...