Контроль размера субплотов в Matplotlib: figure и figsize

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для создания подграфиков разного размера в Matplotlib воспользуйтесь инструментом GridSpec и параметрами rowspan и colspan. Они позволят вам регулировать размер каждого подграфика по вертикали и горизонтали. Приведем пример:

Python
Скопировать код
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

# Создаем сетку 3x3
gs = GridSpec(3, 3, figure=plt.figure(figsize=(8, 6)))

# Создаем подграфик в левом верхнем углу
plt.subplot(gs[0:2, 0:2])
# Создаем горизонтальный подграфик в нижней строке
plt.subplot(gs[2, :])
# Создаем вертикальный подграфик в правом верхнем углу
plt.subplot(gs[0:2, 2])

plt.show()
Кинга Идем в IT: пошаговый план для смены профессии

Дальнейшее изучение: GridSpec и параметры rowspan/colspan

С помощью GridSpec, rowspan и colspan вы сможете создать более сложное размещение подграфиков. Осмотрим пример продвинутой композиции:

Python
Скопировать код
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

fig, ax = plt.subplots(figsize=(10, 6))
gs = GridSpec(2, 3, figure=fig, width_ratios=[3, 1, 1], height_ratios=[1, 2])

# Создаем подграфик на всю ширину верхней строки
ax1 = fig.add_subplot(gs[0, :])
# Создаем подграфик, занимающий два столбца в нижней строке
ax2 = fig.add_subplot(gs[1, 0:2])
# Создаем самый большой подграфик в правом нижнем углу
ax3 = fig.add_subplot(gs[1, 2])

plt.tight_layout()
plt.show()

Тонкая настройка подграфиков

Регулировка размера вручную

Чтобы манипулировать размерами подграфиков напрямую, используйте объект Axes. Это позволяет выбрать детальный подход к размещению графиков.

Python
Скопировать код
fig = plt.figure()
ax1 = fig.add_axes([0\.1, 0.1, 0.8, 0.4])   # Определяем место для основного графика
ax2 = fig.add_axes([0\.3, 0.6, 0.4, 0.3])   # Выделяем место для небольшого дополнительного графика

plt.show()

Использование возможностей Python: subplot2grid

Для точной работы с сеткой и гибкого управления расположением подграфиков используйте метод subplot2grid.

Python
Скопировать код
ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=2)
ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=2)
ax3 = plt.subplot2grid((3, 3), (0, 2), rowspan=3)

plt.show()

Памятка: размер фигуры имеет значение

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

Визуализация: аналогии и примеры

Чтобы лучше понять принцип работы с подграфиками, представьте их как карманы рюкзака:

Markdown
Скопировать код
🎒 До: [🧦, 🥪, 🥾, 🧴]
🎒 После:  [🥾🥾, 🥪🧴, 🧦]

Большие подграфики можно сравнить с основным отделением для больших предметов (🥾🥾).\ Маленькие подграфики подходят для размещения небольших предметов, которые нужно держать под рукой (🥪🧴🧦).

GridSpec может стать таким же универсальным инструментом, как и хорошо спланированный рюкзак.

Создание подграфиков и их сохранение

Поздравляем, вы научились создавать мастерскую композицию подграфиков. Теперь остается поделиться ею с коллегами. Сохраните ваши графики в формате PDF с помощью fig.savefig, чтобы делиться ими или печатать.

Python
Скопировать код
fig.savefig('my_subplots.pdf')

Рекомендации от доктора: полезные приёмы и советы

Ускорение создания сеток

  • Для быстрого создания сетки, используйте fig, axs = plt.subplots(2, 2).
  • Синхронизируйте оси с помощью sharex=True или sharey=True.

Избегание рисков

  • Подграфики могут перекрыть друг друга: примените plt.tight_layout() для их автоматического размещения.
  • Смотрите за пропорциями: если изображение выглядит растянутым, откорректируйте размеры подграфиков.

Продвинутое использование библиотеки Matplotlib

  • Для создания сложных композиций подграфиков идеально подходит объектно-ориентированный подход.
  • Метод fig.add_subplot() помогает вставлять подграфики в нужные места сетки.

Полезные материалы

  1. Работа с подграфиками в Matplotlib — подробное описание в документации Matplotlib.
  2. Изменение размера графиков в Matplotlib и seaborn на Stack Overflow — как влияет параметр figsize на размеры подграфиков.
  3. Метод matplotlib.pyplot.subplots — создание множества подграфиков с помощью plt.subplots().
  4. Руководство по Matplotlib от Real Python — как стать профессионалом в создании диаграмм с помощью объектного интерфейса Matplotlib.
  5. Подробное руководство по Matplotlib в Scipy — гид по продвинутым функционалностям библиотеки Matplotlib.
  6. Серия видеоуроков по подграфикам в Matplotlib на YouTube — научитесь создавать и управлять подграфиками на простых и понятных примерах.