Добавляем заголовки к субграфикам в Matplotlib: способы
Быстрый ответ
Чтобы присвоить названия подграфикам в matplotlib, воспользуйтесь методом set_title
для каждого экземпляра Axes. Примьем в качестве примера сетку из 2x2 подграфиков:
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 2)
titles = ["Название 1", "Название 2", "Название 3", "Название 4"]
for ax, title in zip(axs.ravel(), titles):
ax.set_title(title)
plt.tight_layout()
plt.show()
Не только установка названий: продвинутое редактирование подграфиков
Итерация по подграфикам для динамических названий
Нужно озаглавить множество подграфиков? Используйте цикл:
fig, axs = plt.subplots(nrows=3, ncols=3)
for i, ax in enumerate(axs.flat):
ax.set_title(f'Подграфик {i+1}')
plt.show()
Альтернативные способы присвоения названий
Вернемся к другому подходу озаглавливания подграфика — title.set_text
:
ax.title.set_text('Название моего подграфика')
Акцентируем внимание на главном названии
Это обозначение общей тематики делается через fig.suptitle
:
fig.suptitle('Главное название моего изображения', fontsize=16)
Визуализация
Подграфики можно представить как холсты для создания ваших изображений:
fig, axes = plt.subplots(2, 2)
axes[0, 0].set_title('Рассвет')
axes[0, 1].set_title('Лес')
axes[1, 0].set_title('Океан')
axes[1, 1].set_title('Пустыня')
Каждому из подграфиков назначено уникальное название.
Сложные конфигурации подграфиков – со вкусом и чувством такта
Сложные компоновки подграфиков требуют осознанного присвоения названий:
fig, axs = plt.subplots(3, 1, gridspec_kw={'height_ratios': [1, 2, 1]})
axs[0].set_title('Вид сверху')
axs[1].set_title('Основной план')
axs[2].set_title('Вид снизу')
Усмирение макета при помощи tight_layout
Используйте tight_layout()
для эстетичного расположения подграфиков:
fig.tight_layout(pad=3.0)
Эстетические настройки названий подграфиков
Настройте внешний вид названий, задав параметры шрифта и позиции:
ax.set_title('Красивый график', fontdict={'fontsize': 14, 'color': 'green'}, loc='left')
Руководство по устранению неполадок: типичные ошибки
Обеспечение уникальности названий
Избегайте повторения названий, чтобы не вызвать путаницу:
# НЕ ТАК: Одно и то же название для всех подграфиков
for ax in axs.flat:
ax.set_title('Общее название')
# ТАК: Уникальное название для каждого подграфика
for index, ax in enumerate(axs.flat):
ax.set_title(f'Подграфик-{index + 1}')
Как предотвратить наложение названий
Используйте tight_layout
или constrained_layout
, чтобы избежать перекрытия названий:
plt.tight_layout()
# Или:
fig, axs = plt.subplots(2, 2, constrained_layout=True)
Динамическое содержание названий
Внесите динамические данные в названия, используя форматирование строк:
ax.set_title(f'График данных {dynamic_value}')
Полезные материалы
- matplotlib.pyplot.subplot — Документация Matplotlib 3.8.2 — детальное описание создания подграфиков в matplotlib.
- Множественные подграфики — Документация Matplotlib 3.8.2 — управление размещением названий и подграфиков.
- python – Как добавить название каждому подграфику – Stack Overflow — дискуссия и альтернативы по отношению к методам назначения названий подграфикам.
- Множественные подграфики | Руководство по науке о данных в Python — примеры использования подграфиков в анализе данных.
- Построение графиков в Python с помощью Matplotlib (Руководство) – Real Python — обширное руководство по работе с подграфиками в Python.
- Анатомия фигуры — Документация Matplotlib 3.8.2 — глубокий анализ элементов изображений в Matplotlib.
- Учебник по Matplotlib (Часть 10): Подграфики – YouTube — Видео уроки по созданию подграфиков в Matplotlib.