2015-01-10 9 views
5

ステップまたは棒グラフではなく、線をプロットするヒストグラムを作成する必要があります。私はpython 2.7を使用しています。以下のplt.hist関数は、階段状の線をプロットし、ビンはplt.plot関数に並んでいません。Pythonでラインヒストグラムチャートを生成するきれいな方法はありますか?

import matplotlib.pyplot as plt 
import numpy as np 
noise = np.random.normal(0,1,(1000,1)) 
(n,x,_) = plt.hist(noise, bins = np.linspace(-3,3,7), histtype=u'step') 
plt.plot(x[:-1],n) 

scipyのダウンロードを使用してフラグ

+0

フォーラムサイトとは異なり、「ありがとうございました」、「何かお手伝いしました」、または[だから]の署名は使用しません。 「[ハイ、感謝、タグライン、挨拶を投稿から削除する](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be」を参照してください。 〜から削除された投稿)。 –

答えて

5

histt​​ype = u'line「ALIGN = u'midに行くにはフラグが」あったかのように、私はビンセンターで各ビンの数と相関する行が必要、あなたはestimate the probability density functionからuse stats.gaussian_kdeできます

import matplotlib.pyplot as plt 
import numpy as np 
import scipy.stats as stats 

noise = np.random.normal(0, 1, (1000,)) 
density = stats.gaussian_kde(noise) 
n, x, _ = plt.hist(noise, bins=np.linspace(-3, 3, 50), 
        histtype=u'step', normed=True) 
plt.plot(x, density(x)) 
plt.show() 

enter image description here

2

Matplotlib's thumbnail galleryはヨーヨーのような状況では通常、非常に便利ですurs。一部のカスタマイズと、ギャラリーからthisthis oneの組み合わせは、おそらくあなたの心に持っているものに非常に近いです:

また
import numpy as np 
import matplotlib.mlab as mlab 
import matplotlib.pyplot as plt 

mu = 0 
sigma = 1 
noise = np.random.normal(mu, sigma, size=1000) 
num_bins = 7 
n, bins, _ = plt.hist(noise, num_bins, normed=1, histtype='step') 
y = mlab.normpdf(bins, mu, sigma) 
plt.plot(bins, y, 'r--') 
plt.show() 

enter image description here

、ビンの数を増やすことができます...

enter image description here

関連する問題