我有一個1個三維Minkowski空間陣列和我可以計算該樣品的「平均」和「標準差」和繪製「正態分佈」但我有一個問題:擬合正態分佈至1D數據
我要繪製在同一個圖中的數據和正態分佈象下面這樣:
我不知道如何繪製無論是「DATA」和「正態分佈」
約「SciPy的高斯概率密度函數任何想法.stats「?
s = np.std(array)
m = np.mean(array)
plt.plot(norm.pdf(array,m,s))
我有一個1個三維Minkowski空間陣列和我可以計算該樣品的「平均」和「標準差」和繪製「正態分佈」但我有一個問題:擬合正態分佈至1D數據
我要繪製在同一個圖中的數據和正態分佈象下面這樣:
我不知道如何繪製無論是「DATA」和「正態分佈」
約「SciPy的高斯概率密度函數任何想法.stats「?
s = np.std(array)
m = np.mean(array)
plt.plot(norm.pdf(array,m,s))
您可以使用matplotlib
繪製直方圖和PDF(如在@ MrE的答案中的鏈接)。爲了擬合和計算PDF,您可以使用scipy.stats.norm
,如下所示。
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
# Generate some data for this demonstration.
data = norm.rvs(10.0, 2.5, size=500)
# Fit a normal distribution to the data:
mu, std = norm.fit(data)
# Plot the histogram.
plt.hist(data, bins=25, normed=True, alpha=0.6, color='g')
# Plot the PDF.
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2)
title = "Fit results: mu = %.2f, std = %.2f" % (mu, std)
plt.title(title)
plt.show()
下面是由腳本生成的情節:
沒有scipy模塊可以做到這一點嗎? – maro
@maro是的。適合正態分佈很簡單。你可以用mu = np.mean(data)來替換'mu,std = norm.fit(data)'; std = np.std(data)'。如果要在圖中繪製該曲線,則必須實現正態分佈的PDF版本。 –
要查看正態分佈和實際數據,您應該將數據繪製爲直方圖,然後在其上繪製概率密度函數。請參見http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html上的示例,瞭解如何執行此操作。
你嘗試過這麼遠嗎?請發佈迄今爲止的代碼,以便我們可以回答關於它的具體問題。 – Garth5689