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

Cách vẽ rug plot (biểu đồ thảm) trong Matplotlib

Giới thiệu

Rug plot được dùng để hình dung phân phối dữ liệu. Đây là biểu đồ của một biến đơn lẻ, hiển thị dưới dạng các dấu chấm dọc theo một trục. Để vẽ rug plot trong Matplotlib, bạn có thể làm theo các bước:

  • Thiết lập kích thước hình vẽ và padding.
  • Tạo dữ liệu x bằng numpy.
  • Tạo ước lượng mật độ hạt nhân (KDE) với Gaussian kernels: kde1 và kde2 (với bandwidth khác nhau).
  • Tạo figure mới.
  • Thêm subplot ax1.
  • Vẽ rug plot bằng cách plot x đối với giá trị y=0, dùng marker 'b+' và ms=20.
  • Vẽ đường cong KDE: x_eval, kde1(x_eval) và kde2(x_eval).
  • Thêm legend.
  • Hiển thị hình vẽ bằng show().

Ví dụ minh họa

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

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

x = np.array([-6, -4, 2, 1, 4], dtype=np.float)
kde1 = stats.gaussian_kde(x)
kde2 = stats.gaussian_kde(x, bw_method='silverman')

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, np.zeros(x.shape), 'b+', ms=20)
x_eval = np.linspace(-5, 5, num=10)
ax.plot(x_eval, kde1(x_eval), 'k-', label="Scott's Rule")
ax.plot(x_eval, kde2(x_eval), 'r-', label="Silverman's Rule")
plt.legend(loc='upper right')
plt.show()

Kết quả đầu ra

Biểu đồ rug plot (dấu + màu xanh) kết hợp với hai đường KDE:

Cách vẽ rug plot (biểu đồ thảm) trong MatplotlibCách vẽ rug plot (biểu đồ thảm) trong Matplotlib