Python是一種功能強大的編程語言,它可以用于創建各種形式的數據可視化。在這篇文章中,我們將探討如何使用Python的直方圖來擬合數據。
# 導入相關庫 import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit # 生成隨機數據 data = np.random.normal(0, 1, 10000) # 創建直方圖 n, bins, patches = plt.hist(data, 50, normed=1, alpha=0.75) # 定義正態分布函數 def normal_distribution(x, mu, sigma): return (1 / (sigma * np.sqrt(2 * np.pi))) * np.exp(-(x - mu)**2 / (2 * sigma**2)) # 使用曲線擬合數據 params, cov = curve_fit(normal_distribution, bins[:-1], n) # 繪制擬合曲線 x = np.linspace(-4, 4, 1000) plt.plot(x, normal_distribution(x, *params), 'r--') # 顯示圖像 plt.show()
在這個例子中,我們首先生成了10000個來自標準正態分布的隨機樣本。然后,我們使用Matplotlib庫創建了一個直方圖來顯示數據的分布情況。
接下來,我們定義了一個正態分布函數,這個函數將用來擬合我們的數據。我們使用SciPy庫的`curve_fit`函數來擬合數據,并計算出最佳擬合參數。
最后,我們繪制了擬合曲線,并將擬合結果與原始數據一起顯示在同一個圖形上。從圖中可以看出,在這個例子中,我們的擬合曲線與原始數據非常吻合。