Matplotlib предоставляет несколько способов добавления единого заголовка к рисунку, содержащему несколько подграфиков. Это улучшает читаемость и обеспечивает важный контекст для ваших визуализаций. В этой статье рассматриваются два основных метода, выделяются их сходства и небольшие различия.
Оглавление
Использование pyplot.suptitle()
Функция pyplot.suptitle()
предлагает краткий способ добавления основного заголовка. Она является частью модуля matplotlib.pyplot
(обычно импортируется как plt
). Этот метод прост и широко используется.
import matplotlib.pyplot as plt
# Пример данных
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]
# Создание подграфиков
fig, axes = plt.subplots(2, 1)
# Построение данных
axes[0].plot(x, y1)
axes[0].set_title('Подграфик 1')
axes[1].plot(x, y2)
axes[1].set_title('Подграфик 2')
# Добавление основного заголовка
plt.suptitle('Главный заголовок рисунка', fontsize=14)
# Корректировка компоновки (важно для предотвращения перекрытия)
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
Функция plt.tight_layout()
необходима. Она автоматически корректирует параметры подграфиков, чтобы предотвратить перекрытие заголовков. Параметр rect
позволяет точно настроить компоновку; вам может потребоваться изменить его значения в зависимости от длины заголовка и количества подграфиков.
Использование figure.suptitle()
В качестве альтернативы, метод figure.suptitle()
, доступный через сам объект figure, обеспечивает аналогичную функциональность. Этот подход соответствует объектно-ориентированному стилю программирования.
import matplotlib.pyplot as plt
# Пример данных (такой же, как выше)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]
# Создание подграфиков
fig, axes = plt.subplots(2, 1)
# Построение данных
axes[0].plot(x, y1)
axes[0].set_title('Подграфик 1')
axes[1].plot(x, y2)
axes[1].set_title('Подграфик 2')
# Добавление основного заголовка с помощью объекта figure
fig.suptitle('Главный заголовок рисунка (Объектно-ориентированный)', fontsize=14)
# Корректировка компоновки
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
Этот код повторяет предыдущий пример, демонстрируя взаимозаменяемость этих двух методов.
Выбор правильного метода
Оба метода достигают идентичных результатов. Выбор часто сводится к личным предпочтениям или стилю кодирования. pyplot.suptitle()
более краток, в то время как figure.suptitle()
лучше соответствует строго объектно-ориентированному подходу. Последовательность в вашем проекте является ключом. Не забывайте всегда использовать plt.tight_layout()
или вручную корректировать параметры подграфиков, чтобы обеспечить чистый и читаемый рисунок.