Bố cục phức tạp với subplot_mosaic
Tạo hình có các biểu đồ kích thước khác nhau bằng plt.subplot_mosaic và tỷ lệ rộng, cao.
Giới thiệu
plt.subplots tạo một lưới đều nhau, nhưng hình thực tế thường cần một biểu đồ chính lớn với các biểu đồ nhỏ xung quanh. plt.subplot_mosaic cho phép bạn "vẽ" bố cục bằng một danh sách các hàng, mỗi biểu đồ có một tên riêng.
Mỗi danh sách con là một hàng, mỗi tên là một biểu đồ; một tên lặp lại qua nhiều ô sẽ tạo biểu đồ lớn hơn, còn "." để trống một ô. axes là một dictionary nên axes["main"] là biểu đồ phân tán. gridspec_kw đặt kích thước tương đối: cột chính rộng gấp bốn lần cột bên phải. Hai histogram ở mép cho thấy x và y phân bố thế nào.
Trình mô phỏng tương tác
Chọn một bố cục và bật tắt tỷ lệ kích thước. Mỗi tên trong mosaic trở thành một biểu đồ.
Ví dụ Matplotlib chạy được
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()
