2016-08-23 3 views
0

Matplotlibでスタックヒストグラムを作成すると、ビン幅が縮小することがわかりました。この単純な例では:左側のヒストグラムは左と右のヒストグラムの両方を使用しているにもかかわらず、それぞれのビンの間の間隔を持っていることをMatplotlibスタックヒストグラムビン幅

enter image description here

お知らせ:

import numpy as np 
import matplotlib 
import matplotlib.pylab as plt 

#Create histograms and plots 
fig = plt.figure() 
gs = matplotlib.gridspec.GridSpec(1, 2) 
h1 = fig.add_subplot(gs[0]) 
h2 = fig.add_subplot(gs[1]) 

x = np.random.normal(0, 5, 500) 
y = np.random.normal(0, 20, 500) 

bins = np.arange(-60,60, 5) 

h1.hist([x, y], bins=bins, stacked=True) 
h2.hist(x, bins=bins, alpha=1) 
h2.hist(y, bins=bins, alpha=0.5) 

plt.tight_layout() 
plt.show() 
filename = 'sample.pdf' 
plt.savefig(filename) 

私は次の出力を得ます同じ瓶。

この現象を修正する方法はありますか?私は、左のヒストグラムが、隣接するビンがエッジを共有するように、ビン幅全体を使用したいと考えています。

答えて

0

ax.hist -callの最初の引数がリストのリスト(または2dのnumpy-arrayまたはその2つの組み合わせ)である場合、自動的にビンが小さくなります。 ax.hist -allのrwidthパラメータは、ビン幅を決定するパラメータです。 1に設定すると、あなたはそれが何をしたいでしょう:

h1.hist([x, y], bins=bins, stacked=True, rwidth=1)

+0

は、返信いただきありがとうございます。ビンを縮小するのがデフォルトの動作である理由は分かりますか? – jadenkorr

関連する問題