Я хотел бы иметь разные веса шрифта для каждой из моих меток цветовой панели.
Я попытался разрешить LaTeX форматировать метки следующим образом:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.rand(50, 50)/20)
cbar = ax.figure.colorbar(im, ticks=np.arange(0, 0.05, 0.01))
cbar.ax.set_yticklabels([r'{\fontsize{50pt}{3em}\selectfont{}{0}}',
r'{\fontsize{40pt}{3em}\selectfont{}{0.01}}',
r'{\fontsize{30pt}{3em}\selectfont{}{0.03}}',
r'{\fontsize{20pt}{3em}\selectfont{}{0.03}}',
r'{\fontsize{10pt}{3em}\selectfont{}{0.04}}',
r'{\fontsize{1pt}{3em}\selectfont{}{0.05}}', ])
, но это толькообновляет текст меток до всей строки (например, {\ fontsize {50pt} {3em} \ selectfont {} {0}}).У меня работает pyplot TeX demo .Даже если бы это решение работало, оно не было бы идеальным, поскольку мне, вероятно, нужно было бы указать все вручную.
Гораздо удобнее было бы что-то вроде этого вопроса .Там я узнал, что размер шрифта отдельных меток обычной оси x и y можно обновить, вызвав
label = axes.yaxis.get_major_ticks()[2].label
label.set_fontsize(size)
, заменив set_fontsize
на set_fontweight
, корректно обновляя вес выбранной метки.К сожалению, я не смог найти эквивалент axes.yaxis.get_major_ticks()[2].label
для цветовой шкалы.
Можно ли напрямую изменить вес шрифта отдельных надписей на цветовой панели?Я имею в виду непосредственно, не используя обходной путь, такой как нанесение нового текста поверх существующих меток.Если это невозможно, также будет полезно решение, отображающее текст над существующими надписями, которое автоматически использует положение и содержание предыдущих надписей и только корректирует вес шрифта.
Спасибо!