0

以下のコードを使用してサンプル データのヒストグラムと比較できるように、対数正規分布をプロットしようとしていますが、プロットが正しく表示されません。私のコードに正しく行われていないものはありますか? C配列の長さは17576です

import matplotlib.pyplot as plt
import numpy as np

data=np.loadtxt(F)
C=data[:,3]

x = np.ma.log(C)
avg = np.mean(x)
std = np.std(x)
dist=lognorm(std,loc=avg)
plt.plot(C,dist.pdf(C),'r')
plt.show()

私のプロット

4

1 に答える 1

3

x データがソートされていないようです。これを試して

ind = np.argsort(C)
xx = C[ind]
yy = dist.pdf(C)[ind]
plt.plot(xx, yy, 'r')

プロットはすべての (x,y) ペアを直線で結ぶだけなので、左右 (または左右) から関数をトレースする必要があります。または、プロット間の行をスキップできます。

plt.plot(C, dist.pdf(C), 'ro')
于 2012-08-14T18:53:08.693 に答える