Matplotlib: продвинутый уровень

Сложные макеты с subplot_mosaic

Собирайте фигуры с графиками разного размера с помощью plt.subplot_mosaic и пропорций ширины и высоты.

Введение

plt.subplots создаёт ровную сетку, но реальным фигурам часто нужен большой основной график с маленькими вокруг. plt.subplot_mosaic позволяет нарисовать макет как список строк и дать каждому графику имя.

Каждый внутренний список - строка, каждое имя - график; имя, повторённое в нескольких ячейках, даёт график побольше, а "." оставляет ячейку пустой. axes - словарь, поэтому axes["main"] - точечная диаграмма. gridspec_kw задаёт относительные размеры: основной столбец в четыре раза шире правого. Гистограммы по краям показывают распределение x и y.

Интерактивный визуализатор

Выберите макет и включайте или выключайте пропорции. Каждое имя в мозаике становится отдельным графиком.

Запускаемый пример Matplotlib

Matplotlib
Запустить код →
main.py
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(4)
x = rng.normal(size=300)
y = 0.6 * x + rng.normal(scale=0.8, size=300)

fig, axes = plt.subplot_mosaic([["top", "."], ["main", "right"]], figsize=(6, 6),
                               gridspec_kw={"width_ratios": [4, 1], "height_ratios": [1, 4]})
axes["main"].scatter(x, y, s=10, alpha=0.6)
axes["top"].hist(x, bins=30)
axes["right"].hist(y, bins=30, orientation="horizontal")
axes["top"].axis("off")
axes["right"].axis("off")
fig.suptitle("Scatter plot with marginal histograms")
plt.show()
Получить кнопку запуска для этого примера График, который рисует этот код
Сложные макеты с subplot_mosaic