9

Как задать размер шрифта заголовка фигуры и меток осей?

5

Я создаю график в 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) мне не подходит. Как я могу задать индивидуальные размеры шрифтов для заголовка фигуры и меток осей?

5 ответ(ов)

1

Вы также можете установить эти параметры глобально с помощью словаря rcParams. Вот пример кода:

import matplotlib.pylab as pylab
params = {
    'legend.fontsize': 'x-large',
    'figure.figsize': (15, 5),
    'axes.labelsize': 'x-large',
    'axes.titlesize': 'x-large',
    'xtick.labelsize': 'x-large',
    'ytick.labelsize': 'x-large'
}
pylab.rcParams.update(params)

Таким образом, задав данные параметры, вы измените стиль отображения графиков во всей вашей работе с Matplotlib.

1

Если вы больше привыкли использовать объекты ax для построения графиков, вы можете найти метод ax.xaxis.label.set_size() более удобным для запоминания или, по крайней мере, проще находить с помощью клавиши таб в терминале ipython. Кажется, после изменения размера метки необходимо выполнить перерисовку, чтобы увидеть эффект. Вот пример:

import matplotlib.pyplot as plt

# создаем график с тестовыми данными
fig, ax = plt.subplots()
x = [0, 1, 2]
y = [0, 3, 9]
ax.plot(x, y)

# заголовок и метки, устанавливаем начальные размеры
fig.suptitle('тестовый заголовок', fontsize=12)
ax.set_xlabel('xlabel', fontsize=10)
ax.set_ylabel('ylabel', fontsize='medium')   # относительно plt.rcParams['font.size']

# установка размеров меток после их создания
ax.xaxis.label.set_size(20)
plt.draw()

Я не знаю аналогичного способа задать размер заголовка после его создания.

0

Если вы не создаёте объекты фигур и осей явно, вы можете задать размер шрифта заголовка, используя аргумент fontdict при создании заголовка.

Вы можете отдельно задать размеры шрифтов для подписей осей x и y, используя аргумент fontsize при их создании.

Например:

plt.title('Цены на автомобили растут', fontdict={'fontsize': 20})
plt.xlabel('Год', fontsize=18)
plt.ylabel('Цена', fontsize=16)

Это также будет работать с визуализациями, созданными с помощью Seaborn и Pandas (когда Matplotlib используется как backend)!

0

Альтернативным решением для изменения размера шрифта является изменение отступов. Когда вы сохраняете свой PNG в Python, вы можете изменить разметку, используя диалоговое окно, которое откроется. На этом этапе можно настроить расстояние между осями, отступы, если хотите.

0

Чтобы разместить right_ax перед вызовом set_ylabel(), просто переместите код, который создает right_ax, так чтобы он находился перед вызовом метода set_ylabel(). Например, если у вас есть код, который создает подграфик (axes), выполните следующее:

# Создайте основной и правый оси
fig, ax = plt.subplots()
right_ax = ax.twinx()  # Создаем правую ось (right_ax)

# Теперь устанавливаем подпись для правой оси
right_ax.set_ylabel('AB scale')

Таким образом, вы будете устанавливать подпись для правой оси right_ax после его создания.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь