Matplotlib trung cấp

Box plot và violin plot

So sánh độ phân tán của nhiều nhóm bằng ax.boxplot và ax.violinplot.

Giới thiệu

Biểu đồ cột chỉ cho thấy giá trị trung bình mà che mất mức độ phân tán của dữ liệu. Box plot cho thấy trung vị (median), nửa giữa của dữ liệu (cái hộp), khoảng thông thường (hai râu) và các điểm ngoại lai (outlier) dưới dạng chấm. Violin plot cho thấy toàn bộ hình dạng phân bố của mỗi nhóm.

Mỗi danh sách trong scores thành một hộp. Vạch trong hộp là trung vị, hộp bao 50% điểm số ở giữa, còn râu kéo tới giá trị xa nhất không phải ngoại lai. Lớp B có hộp nhỏ hơn hẳn: điểm số của lớp này sát nhau. set_xticks đặt tên cho các hộp nằm ở x = 1, 2 và 3; ax.violinplot(scores) sẽ vẽ các nhóm này dưới dạng violin.

Trình mô phỏng tương tác

Chuyển giữa box plot và violin plot, hiện từng điểm số dưới dạng chấm và thay đổi độ phân tán của lớp C.

Ví dụ Matplotlib chạy được

Matplotlib
Chạy code →
main.py
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(5)
scores = [rng.normal(70, 8, 80), rng.normal(75, 4, 80), rng.normal(65, 12, 80)]

fig, ax = plt.subplots(figsize=(7, 4))
ax.boxplot(scores)
ax.set_xticks([1, 2, 3], ["Class A", "Class B", "Class C"])
ax.set_ylabel("Score")
ax.set_title("Test scores by class")
plt.show()
Lấy nút Run cho ví dụ này Biểu đồ mà đoạn code này vẽ ra
Box plot và violin plot