Как изменить размер шрифта меток тиков цветовой панели в Matplotlib? - PullRequest
0 голосов
/ 02 февраля 2020

Я создаю матрицу путаницы для моих данных. Рядом с графиком я размещаю цветовую панель и хочу изменить размер шрифта для меток. Я некоторое время искал по inte rnet, но не мог понять, как я могу изменить размер шрифта для галочек моей цветовой шкалы, так как я создаю цветную полосу с помощью imshow. Это может быть связано с тем, что создание цветовой панели таким способом не является обычным способом, как это делается / предлагается в большинстве мест в Интернете (например, здесь и здесь ). Поэтому мне нужна твоя помощь для этого. Вот как я создаю свой график и добавляю цветную полосу рядом с ним:

data=np.array([[0.83, 0.6,  0.76],[0.59, 0.46, 0.52],[0.62, 0.58, 0.88]])
xTicksMajor, yTicksMajor = [0.5, 1.5, 2.5], [0.5, 1.5, 2.5]
xTicksMinor, yTicksMinor = [0, 1, 2], [0, 1, 2]

fig, ax = plt.subplots()
cmapProp = {'drawedges': True, 'boundaries': np.linspace(0, 1, 13, endpoint=True).round(2)}
m = ax.imshow(data, cmap=plt.cm.get_cmap('Oranges'))
m.set_clim(0, 1)
ax.figure.colorbar(m, ax=ax, **cmapProp)
ax.set_xticks(xTicksMajor)
ax.set_yticks(yTicksMajor)
ax.set_xticks(xTicksMinor, minor=True)
ax.set_yticks(yTicksMinor, minor=True)
ax.yaxis.grid(True, color='black', linestyle='-', linewidth=0.5)
ax.xaxis.grid(True, color='black', linestyle='-', linewidth=0.5)
thresh = data.max() / 1.4
    for i, j in itertools.product(range(data.shape[0]), range(data.shape[1])):
        ax.text(j, i, format(data[i, j], '.2f'),
                horizontalalignment="center",
                verticalalignment='center',
                color="black" if data[i, j] > thresh else "dimgrey",
                fontsize=26)
    fig.savefig('temp.png', dpi=200) 
    plt.close()

Я попытался изменить размер шрифта для галочек следующим образом:

cmapProp = {'drawedges': True, 'boundaries': np.linspace(0, 1, 13, endpoint=True).round(2), 'fontsize': 14}

Но это дает мне следующая ошибка:

TypeError: init () получил неожиданный аргумент ключевого слова 'fontsize'

Интересно, как я могу изменить шрифт размер галочки рядом с цветовой шкалой? Не стесняйтесь вносить предложения, такие как создание цветовой панели другим способом, чтобы было легко изменить размер шрифта.

Кроме того, приведенный выше код приводит к графику, показанному ниже:

confusion matrix made using matplotlib

1 Ответ

1 голос
/ 03 февраля 2020

Как насчет этого:

...
fig, ax = plt.subplots()
cmapProp = {'drawedges': True, 'boundaries': np.linspace(0, 1, 13, endpoint=True).round(2)}
m = ax.imshow(data, cmap=plt.cm.get_cmap('Oranges'))
m.set_clim(0, 1)

# And here try this:
cbar = ax.figure.colorbar(m, ax=ax, **cmapProp)
cbar.ax.tick_params(labelsize=25)  # set your label size here
...

Out: out image

полужирный этикетки:

...
cbar = ax.figure.colorbar(m, ax=ax, **cmapProp)
cbar.ax.tick_params(labelsize=25)
for tick in cbar.ax.yaxis.get_major_ticks():
    tick.label2.set_fontweight('bold')
...

Out: Bold

...