Matplotlib trung cấp

Giới hạn trục, tick và thang log

Đặt giới hạn trục, chọn vị trí và nhãn tick, chuyển sang thang log bằng set_yscale.

Giới thiệu

Matplotlib tự chọn giới hạn trục và các vạch chia (tick), nhưng nhiều khi bạn biết rõ hơn. set_xlim và set_ylim chọn khoảng hiển thị, set_xticks chọn vị trí và chữ của từng tick, còn set_yscale("log") biến một đại lượng tăng gấp đôi đều đặn thành một đường thẳng.

Số người dùng tăng gấp đôi mỗi tuần, nên trên trục thường các tuần đầu trông như nằm ngang còn các tuần cuối vọt lên. Trên thang log, mỗi lần gấp đôi chiếm cùng một khoảng chiều cao, nên đường thẳng ra và tuần nào cũng đọc được. set_xticks(x, labels) đặt một tick cho mỗi tuần và đặt tên W1, W2...; set_xlim chừa thêm một chút khoảng trống ở hai đầu.

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

Bật tắt thang log. Trên trục thường, các tuần đầu nằm sát số 0; trên thang log, mỗi lần tăng gấp đôi chiếm cùng một khoảng chiều cao.

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

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

x = np.arange(1, 11)
users = 50 * 2.0 ** x

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, users, marker="o")
ax.set_yscale("log")
ax.set_xlim(0.5, 10.5)
ax.set_xticks(x, [f"W{i}" for i in x])
ax.set_xlabel("Week")
ax.set_ylabel("Users (log scale)")
ax.set_title("Users double every week")
plt.show()
Lấy nút Run cho ví dụ này Biểu đồ mà đoạn code này vẽ ra
Giới hạn trục, tick và thang log