Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách vẽ đường xu hướng (trend line) cho scatter plot trong Matplotlib

Để vẽ đường xu hướng cho biểu đồ phân tán, ta sử dụng polyfit() và poly1d() của NumPy để tính toán các điểm trên đường hồi quy.

Các bước

  • Thiết lập figure size và padding.
  • Tạo dữ liệu x, y ngẫu nhiên bằng NumPy.
  • Tạo figure và subplots.
  • Vẽ scatter plot cho x, y.
  • Tính hệ số hồi quy bậc 1 bằng np.polyfit(x, y, 1) và tạo hàm đa thức bằng np.poly1d().
  • Vẽ đường xu hướng bằng plot(x, p(x)).
  • Hiển thị bằng show().

Ví dụ

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.random.rand(100)
y = np.random.rand(100)
fig, ax = plt.subplots()
_ = ax.scatter(x, y, c=x, cmap='plasma')
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x, p(x), "r-o")
plt.show()

Kết quả

Cách vẽ đường xu hướng (trend line) cho scatter plot trong Matplotlib