Контроль размера субплотов в Matplotlib: figure и figsize
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для создания подграфиков разного размера в Matplotlib воспользуйтесь инструментом GridSpec и параметрами rowspan и colspan. Они позволят вам регулировать размер каждого подграфика по вертикали и горизонтали. Приведем пример:
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()
Дальнейшее изучение: GridSpec и параметры rowspan/colspan
С помощью GridSpec, rowspan и colspan вы сможете создать более сложное размещение подграфиков. Осмотрим пример продвинутой композиции:
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. Это позволяет выбрать детальный подход к размещению графиков.
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
.
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
позволит вам контролировать общий размер фигуры и предоставлять достаточно пространства для всех подграфиков.
Визуализация: аналогии и примеры
Чтобы лучше понять принцип работы с подграфиками, представьте их как карманы рюкзака:
🎒 До: [🧦, 🥪, 🥾, 🧴]
🎒 После: [🥾🥾, 🥪🧴, 🧦]
Большие подграфики можно сравнить с основным отделением для больших предметов (🥾🥾).\ Маленькие подграфики подходят для размещения небольших предметов, которые нужно держать под рукой (🥪🧴🧦).
GridSpec может стать таким же универсальным инструментом, как и хорошо спланированный рюкзак.
Создание подграфиков и их сохранение
Поздравляем, вы научились создавать мастерскую композицию подграфиков. Теперь остается поделиться ею с коллегами. Сохраните ваши графики в формате PDF с помощью fig.savefig
, чтобы делиться ими или печатать.
fig.savefig('my_subplots.pdf')
Рекомендации от доктора: полезные приёмы и советы
Ускорение создания сеток
- Для быстрого создания сетки, используйте
fig, axs = plt.subplots(2, 2)
. - Синхронизируйте оси с помощью
sharex=True
илиsharey=True
.
Избегание рисков
- Подграфики могут перекрыть друг друга: примените
plt.tight_layout()
для их автоматического размещения. - Смотрите за пропорциями: если изображение выглядит растянутым, откорректируйте размеры подграфиков.
Продвинутое использование библиотеки Matplotlib
- Для создания сложных композиций подграфиков идеально подходит объектно-ориентированный подход.
- Метод
fig.add_subplot()
помогает вставлять подграфики в нужные места сетки.
Полезные материалы
- Работа с подграфиками в Matplotlib — подробное описание в документации Matplotlib.
- Изменение размера графиков в Matplotlib и seaborn на Stack Overflow — как влияет параметр
figsize
на размеры подграфиков. - Метод matplotlib.pyplot.subplots — создание множества подграфиков с помощью
plt.subplots()
. - Руководство по Matplotlib от Real Python — как стать профессионалом в создании диаграмм с помощью объектного интерфейса Matplotlib.
- Подробное руководство по Matplotlib в Scipy — гид по продвинутым функционалностям библиотеки Matplotlib.
- Серия видеоуроков по подграфикам в Matplotlib на YouTube — научитесь создавать и управлять подграфиками на простых и понятных примерах.