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

Vẽ hiệu hai phân phối xác suất trong Matplotlib

Để vẽ hiệu (difference) của hai phân phối xác suất trong Matplotlib:

  • Thiết lập kích thước figure và padding
  • Tạo dataset a và b bằng Numpy
  • Tính kdea và kdeb - ước lượng mật độ kernel Gaussian
  • Tạo lưới (grid) bằng Numpy
  • Vẽ grid với kdea(grid), kdeb(grid) và kdea(grid)-kdeb(grid)
  • Đặt legend ở góc trên-trái
  • Hiển thị bằng show()

Ví dụ mã nguồn

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

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

a = np.random.gumbel(50, 28, 100)
b = np.random.gumbel(60, 37, 100)
kdea = scipy.stats.gaussian_kde(a)
kdeb = scipy.stats.gaussian_kde(b)
grid = np.linspace(0, 50, 100)
plt.plot(grid, kdea(grid), label="Kde A")
plt.plot(grid, kdeb(grid), label="Kde B")
plt.plot(grid, kdea(grid)-kdeb(grid), label="Difference")
plt.legend(loc='upper left')
plt.show()

Kết quả

Ba đường cong: KDE A, KDE B và hiệu của chúng (Difference), cho thấy vùng chênh lệch mật độ xác suất.

Vẽ hiệu hai phân phối xác suất trong Matplotlib

KDE (Kernel Density Estimation): Phương pháp phi tham số ước lượng hàm mật độ xác suất từ mẫu dữ liệu.