15

ヒストグラムを作成しています

pylab.hist(data,weights,histtype='step',normed=False,bins=150,cumulative=True)

紫の線を取得する(現在は関係のない他のプロットがあります)

ヒストグラム

最後にヒストグラムが再びゼロになるのはなぜですか?累積関数は、一般的に減少しないはずです。バグであれ機能であれ、これを回避する方法はありますか?

編集:解決策(ハック):

# histtype=step returns a single patch, open polygon
n,bins,patches=pylab.hist(data,weights,histtype='step',cumulative=True)
# just delete the last point
patches[0].set_xy(patches[0].get_xy()[:-1])
4

2 に答える 2

1

OPの素晴らしく単純な解決策が気に入らない場合のために、ここに、手作業でプロットを作成する非常に複雑な解決策があります。ただし、ヒストグラムカウントにしかアクセスできず、matplotlibのhist関数を使用できない場合は便利です。

import numpy as np
import matplotlib.pyplot as plt

data = np.random.randn(5000)
counts, bins = np.histogram(data, bins=20)
cdf = np.cumsum(counts)/np.sum(counts)

plt.plot(
    np.vstack((bins, np.roll(bins, -1))).T.flatten()[:-2],
    np.vstack((cdf, cdf)).T.flatten()
)
plt.show()

出力

于 2017-04-28T12:51:34.817 に答える
0

これはデフォルトの動作です。棒グラフとしてのヒストグラムのアウトラインと考えてください。簡単な回避策については、私が認識していることではありません。解決策は、自分でヒストグラムを計算することです:pythonヒストグラムワンライナー

于 2012-05-21T18:10:11.443 に答える