-5

いくつかのデータ (TEMP_2) があり、そのデータの分布を取得したいと考えていました。以下を使用してヒストグラムを作成する方法を知っています。

import numpy as np
from pylab import *

plt.figure(1)
data1 = loadtxt("TEMP_2")

a= data1[:,1]
plt.hist(a,100, normed=True,)
show ()

でも、配布したかったんです。誰でもこれで私を助けてくれませんか..

データファイル:

1000 299.23
2000 310.56
3000 308.21
4000 305.86
5000 305.21
6000 301.35
7000 295.37
8000 307.80
9000 295.61
:      :
:      :
200000 307.18
4

2 に答える 2

1

試してみてください:

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

mean, sigma = norm.fit(data) #your data here
x = np.linspace(-3,3,100)
plt.plot(x,mlab.normpdf(x,mean,sigma))

plt.show()

ここで説明されているように:python pylab plot normal distribution

于 2012-10-18T16:16:20.240 に答える
0

データに適合する正規分布をプロットするには、次のことを行う必要があります。

まず、データに最も適した正規分布を計算する必要があります。scipy には がありnorm.fitます。次に、指定されたプロパティ (平均値、標準偏差) で正規分布をプロットする必要があります。

完全なスクリプト:

# Load data
import numpy as np
from pylab import *
data1 = loadtxt("TEMP_2")
a = data1[:,1]

# Fit data into normal distribution
from scipy.stats import norm
mean, stdev = norm.fit(a)

# Plot normal distribution
import matplotlib.mlab as mlab
x = np.linspace(min(a), max(a), 100)
plot(x, mlab.normpdf(x, mean, stdev))
show()

結果:

スクリーンショットをプロット

「ビン」もプロットしたい場合は、前に追加してplot.show()ください:

plt.hist(a, len(data1), normed=True,)
于 2012-10-18T16:13:55.340 に答える