Функции заголовка и меток в Matplotlib


Matplotlib 参考文档Справочная документация Matplotlib

Matplotlib предоставляет набор функций для установки заголовков графиков, подписей осей и общих заголовков фигуры, что составляет основу для создания полных и удобочитаемых графиков.

Задействованные функции

ФункцияНазначениеСоответствующий метод Axes
title()Установка заголовка осейax.set_title()
xlabel() / ylabel()Установка подписей осей x/yax.set_xlabel() / ax.set_ylabel()
suptitle()Установка общего заголовка фигурыfig.suptitle()
supxlabel() / supylabel()Установка подписей осей x/y уровня Figurefig.supxlabel() / fig.supylabel()

Определение функции

matplotlib.pyplot.title(label, fontdict=None, loc=None, pad=None,
    *, y=None, **kwargs)
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, *,
    loc=None, **kwargs)
matplotlib.pyplot.ylabel(ylabel, fontdict=None, labelpad=None, *,
    loc=None, **kwargs)
matplotlib.pyplot.suptitle(t, **kwargs)
matplotlib.pyplot.supxlabel(t, **kwargs)
matplotlib.pyplot.supylabel(t, **kwargs)

Общие параметры

ПараметрОписание
label / xlabel / ylabel / tТекстовое содержимое (обязательно)
fontsize / sizeРазмер шрифта, например, 14, 'large', 'x-large'
fontweight / weightНасыщенность шрифта: 'normal', 'bold', 'light'
colorЦвет текста
fontdictСловарь свойств шрифта, например, {'fontsize':14, 'color':'blue'}
locВыравнивание: 'center' (по умолчанию), 'left', 'right'
pad / labelpadОтступ между текстом и краем осей/графика (в пунктах)
y (только для заголовка)Вертикальное положение заголовка (в координатах Axes, 1.0 — верх)

AxesИменование методов объекта начинается сset_префикс, напримерax.set_title()、ax.set_xlabel(), который является рекомендуемым подходом для объектно-ориентированного интерфейса.


Примеры использования

Пример 1: базовый заголовок и подписи

Пример

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x) * np.exp(-x/5)

fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')

ax.plot(x, y, 'steelblue', linewidth=2)

# Установить заголовок (уровень Axes)
ax.set_title('Затухающая синусоида', fontsize=14, fontweight='bold')

# Установить подписи осей
ax.set_xlabel('Время (секунды)', fontsize=12)
ax.set_ylabel('Амплитуда (V)', fontsize=12)

ax.grid(True, alpha=0.3)
plt.show()

Пример 2: Suptitle фигуры + подписи осей

Пример

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

fig, axes = plt.subplots(2, 2, figsize=(10, 8),
                          layout='constrained')

# У каждого подграфика есть свой заголовок
axes[0, 0].plot(x, np.sin(x)); axes[0, 0].set_title('sin(x)')
axes[0, 1].plot(x, np.cos(x)); axes[0, 1].set_title('cos(x)')
axes[1, 0].plot(x, np.sin(2*x)); axes[1, 0].set_title('sin(2x)')
axes[1, 1].plot(x, np.cos(2*x)); axes[1, 1].set_title('cos(2x)')

# suptitle на уровне фигуры
fig.suptitle('Обзор тригонометрических функций',
             fontsize=16, fontweight='bold', y=1.02)

# Подписи осей уровня фигуры (по центру всех подграфиков)
fig.supxlabel('x (radians)', fontsize=13)
fig.supylabel('Амплитуда', fontsize=13)

plt.show()

Пример 3: Положение и стиль заголовка

Пример

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
                                 layout='constrained')

# Левый график: заголовок с выравниванием по левому краю
ax1.plot(x, np.sin(x), 'steelblue')
ax1.set_title('Заголовок с выравниванием по левому краю',
              loc='left',                # По левому краю
              fontsize=12,
              color='steelblue')
ax1.set_xlabel('Ось X', fontsize=10, color='gray')

# Правый график: заголовок с выравниванием по правому краю
ax2.plot(x, np.cos(x), 'coral')
ax2.set_title('Заголовок с выравниванием по правому краю',
              loc='right',               # Выровнено по правому краю
              fontsize=12,
              color='coral',
              fontstyle='italic')
ax2.set_ylabel('Ось Y', fontsize=10, color='gray',
               rotation=0, labelpad=20)  # Подписи не повёрнуты

plt.show()

Пример 4: заголовок с математической формулой LaTeX

Пример

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-5, 5, 200)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
                                 layout='constrained')

# Распределение Гаусса
sigma, mu = 1.0, 0.0
y1 = 1/(sigma * np.sqrt(2*np.pi)) * np.exp(-(x-mu)**2/(2*sigma**2))
ax1.plot(x, y1, 'steelblue', linewidth=2)

# Использовать формулу LaTeX в качестве заголовка
ax1.set_title(
    r'$f(x) = frac{1}{sigmasqrt{2pi}}'
    r'expleft(-frac{(x-mu)^2}{2sigma^2}right)$',
    fontsize=12)

# Полином
y2 = x**3 - 3*x
ax2.plot(x, y2, 'coral', linewidth=2)
ax2.set_title(r'$f(x) = x^3 - 3x$', fontsize=14)
ax2.axhline(y=0, color='gray', linewidth=0.5)

for ax in [ax1, ax2]:
    ax.set_xlabel('x')
    ax.grid(True, alpha=0.3)

fig.suptitle('Функции с заголовками LaTeX', fontsize=14,
             fontweight='bold')
plt.show()
print("пример: заголовки LaTeX отображены")

ЧАВО

Разница между title() и suptitle()?

title()(илиax.set_title()): Устанавливает заголовок над отдельным объектом Axes.

suptitle()(илиfig.suptitle()): Устанавливает общий заголовок в верхней части всей фигуры, охватывая все подграфики.

Как сделать, чтобы заголовок поддерживал китайский язык?

Установите шрифт:plt.rcParams['font.sans-serif'] = ['SimHei']илиplt.rcParams['font.family'] = 'sans-serif'。


Matplotlib 参考文档Справочная документация Matplotlib

Другие расширения