Я создаю фигуру в Matplotlib следующим образом:
from matplotlib import pyplot as plt
fig = plt.figure()
plt.plot(data)
fig.suptitle('test title')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
fig.savefig('test.jpg')
Я хочу указать размеры шрифта для заголовка рисунка и меток оси. Мне нужно, чтобы все три были разными размерами шрифта, поэтому установка глобального размера шрифта ( mpl.rcParams['font.size']=x
) - это не то, что мне нужно. Как индивидуально настроить размеры шрифта для заголовка рисунка и меток оси?
python
matplotlib
vasek1
источник
источник
mpl.rcParams['font.size'] = 20
и попытался изменить значения на 10 и 14. Сначала я обнаружил, что я получаю ошибки, если я не изменилсяmpl
наplt
. Это изменение устранило ошибку, но затем строка кода не повлияла на мои заголовки или ярлыки. Уверен, что этот синтаксис правильный?mpl
команды?Ответы:
Функции, работающие с текстом, например
label
,title
и т. Д., Принимают параметры так же, как иmatplotlib.text.Text
. Для размера шрифта вы можете использоватьsize/fontsize
:Для глобальных настроек
title
иlabel
размеров,mpl.rcParams
содержитaxes.titlesize
иaxes.labelsize
. (Со страницы):(Насколько я вижу, нет возможности устанавливать
x
иy
маркировать размеры отдельно.)И я вижу, что
axes.titlesize
это не влияетsuptitle
. Я думаю, вам нужно установить это вручную.источник
mpl.rcParams
. Я отредактировал свой ответ.plt.rcParams.update({'axes.titlesize': 'small'})
rcParams
ссылке используйтеfigure.titlesize
в дополнение кaxes.titlesize
.python -c 'import matplotlib as mpl; print(mpl.__version__); print("figure.titlesize" in mpl.rcParams.keys())'
. Результат1.5.1
,True
. 1) Какую версию matplotlib вы используете? Какая версия Python? 2) Может ли это быть ошибкой, когда по какой-то причине он принимает,str
но неunicode
в Py2?Вы также можете сделать это глобально через словарь rcParams:
источник
'x-large'
?pylab.rcParams.keys()
чтобы увидеть полный список параметров.ax.set_title('some title', fontsize=15)
,ax.set_xlabel('some xlabel', fontsize=12)
? Кажется, чтоrcParams
принимает только строки.'axes.labelsize': 32,
Если вы более привыкли использовать
ax
объекты для построения графиков, вам может бытьax.xaxis.label.set_size()
легче запомнить или, по крайней мере, легче найти их с помощью вкладки в терминале ipython. Кажется, после операции нужно перерисовать эффект. Например:Я не знаю подобного способа установки размера субтитра после его создания.
источник
fig.suptitle('test title', fontsize = 20)
похоже на работу.ax.set_xlabel('xlabel', fontsize = 20)' also works, in which case we can do away with
ax.xaxis.label.set_size (20) `.ax.xaxis.label.set_size()
когда я работаю в интерактивном режиме с графиком ipython, и я хочу сделать быструю визуальную оценку различных размеров шрифта.plt.xlabel()
против,ax.set_xlabel()
как вы говорите), они эквивалентны с оговоркой, чтоplt.*
функции работают на текущей оси / фигуре. Поэтому, если вы настроите фигуру с несколькими осями, вы, вероятно, захотите использовать явные вызовы, например,ax1.set_xlabel()
чтобы избежать путаницы.Чтобы изменить только шрифт заголовка (а не шрифт оси), я использовал это:
Шрифтдикт принимает все kwargs из matplotlib.text.Text .
источник
Глобальная настройка размеров шрифта через
rcParams
должна быть сделана сЗначения по умолчанию можно восстановить с помощью
Вы также можете сделать это, создав таблицу стилей в
stylelib
каталоге под каталогом конфигурации matplotlib (вы можете получить каталог конфигурации из негоmatplotlib.get_configdir()
). Формат таблицы стилейЕсли у вас есть таблица стилей,
/path/to/mpl_configdir/stylelib/mystyle.mplstyle
вы можете использовать ее черезВы также можете создать (или изменить) файл matplotlibrc, который разделяет формат
В зависимости от matplotlibrc файл, изменить эти изменения будут использоваться только для текущего рабочего каталога, для всех рабочих каталогов , которые действительно не имеют файла matplotlibrc, или для всех рабочих каталогов , которые действительно не имеют файл matplotlibrc и где никакой другой файл matplotlibrc не имеет было указано. Смотрите этот раздел на странице настройки matplotlib для более подробной информации.
Полный список
rcParams
ключей может быть получен черезplt.rcParams.keys()
, но для регулировки размера шрифта у вас есть (курсив цитируется здесь )axes.labelsize
- Размер шрифта меток x и yaxes.titlesize
- Размер шрифта по осямfigure.titlesize
- Размер заголовка рисунка (Figure.suptitle()
)xtick.labelsize
- Размер шрифта меткиytick.labelsize
- Размер шрифта меткиlegend.fontsize
- Размер шрифта для легенд (plt.legend()
,fig.legend()
)legend.title_fontsize
- Размер шрифта для заголовков легенды,None
устанавливается так же, как оси по умолчанию. Смотрите этот ответ для примера использования.все из которых принимают размеры строки
{'xx-small', 'x-small', 'smaller', 'small', 'medium', 'large', 'larger', 'x-large', 'xxlarge'}
илиfloat
вpt
. Размеры строк определяются относительно размера шрифта по умолчанию, который определяетсяfont.size
- размер шрифта по умолчанию для текста, указанный в пунктах. 10 pt - стандартное значениеКроме того, вес может быть указан (хотя только для значения по умолчанию)
font.weight
- Вес шрифта по умолчанию, используемыйtext.Text
. Принимает{100, 200, 300, 400, 500, 600, 700, 800, 900}
или'normal'
(400),'bold'
(700)'lighter'
и'bolder'
( относительно текущего веса ).источник
Альтернативным решением для изменения размера шрифта является изменение отступов. Когда Python сохраняет ваш PNG, вы можете изменить макет, используя открывшееся диалоговое окно. Интервал между осями, отступы, если хотите, можно изменить на этом этапе.
источник
Место
right_ax
доset_ylabel()
ax.right_ax.set_ylabel('AB scale')
источник
7 (лучшее решение)
6 (немного худшее решение)
источник