Python: Как увеличить / уменьшить размер шрифта меток x и y?
Кажется, у меня есть проблема в выяснении, как увеличить или уменьшить fontsize
меток x и y при использовании matplotlib
,
Я знаю, что есть set_xticklabels(labels, fontdict=None, minor=False, **kwargs)
функции, но я не смог понять, как контролировать fontsize
в этом.
Я ожидал что-то как-то явное, вроде
title_string=('My Title')
plt.suptitle(title_string, y=1.0, fontsize=17)
но я пока не нашел ничего подобного. Что мне не хватает?
3 ответа
Это проще, чем я думал.
Чтобы установить размер шрифта для отметок по оси X:
x_ticks=['x tick 1','x tick 2','x tick 3']
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
Чтобы сделать это для тиков оси Y:
y_ticks=['y tick 1','y tick 2','y tick 3']
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)
Аргументы rotation
а также fontsize
может легко контролировать то, что я был после.
Вы можете установить размер шрифта прямо в вызове set_xticklabels
а также set_yticklabels
(как отмечено в предыдущих ответах). Это повлияет только на один Axes
вовремя.
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)
Вы также можете установить ticklabel
размер шрифта в глобальном масштабе (т.е. для всех рисунков / участков в сценарии) с использованием rcParams
:
import matplotlib.pyplot as plt
plt.rc('xtick',labelsize=8)
plt.rc('ytick',labelsize=8)
Или, что эквивалентно:
plt.rcParams['xtick.labelsize']=8
plt.rcParams['ytick.labelsize']=8
Наконец, если это настройка, которую вы хотели бы установить для всех ваших графиков matplotlib, вы также можете установить эти два rcParams
в вашем matplotlibrc
файл:
xtick.labelsize : 8 # fontsize of the x tick labels
ytick.labelsize : 8 # fontsize of the y tick labels
Не следует использовать set_yticklabels
изменить размер шрифта, так как это также установит метки (то есть он заменит любой автоматический форматер на FixedFormatter
), что обычно нежелательно. Проще всего установить соответствующие tick_params
:
ax.tick_params(axis="x", labelsize=8)
ax.tick_params(axis="y", labelsize=20)
или же
ax.tick_params(labelsize=8)
в случае, если обе оси имеют одинаковый размер.
Конечно, использование rcParams, как и в ответе @tmdavison, также возможно.