特定の範囲でヒストグラムを作成しようとしていますが、matplotlib.pyplot.hist()関数は、エントリが含まれるビンに範囲をトリミングし続けます。おもちゃの例:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-100,100,1000)
nbins = 100
xmin = -500
xmax = 500
fig = plt.figure();
ax = fig.add_subplot(1, 1, 1)
ax.hist(x, bins=nbins,range=[xmin,xmax])
plt.show()
範囲が[-100,100]のプロットを示します。範囲が指定どおり[-500,500]でないのはなぜですか?
(私はEnthought Canopy 1.4を使用していますが、申し訳ありませんが、プロットの画像を投稿するのに十分な高さの担当者がいません。)
実際には、range
で_[-100, 100]
_より短い間隔を指定すると機能します。たとえば、この作品:
_import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-100, 100, 1000)
plt.hist(x, bins=30, range=(-50, 50))
plt.show()
_
[x.min(), x.max()]
より大きい範囲にヒストグラムをプロットする場合は、プロットのxlim
プロパティを変更できます。
_import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-100, 100, 1000)
plt.hist(x, bins=30)
plt.xlim(-500, 500)
plt.show()
_
次のコードは、2つのサブプロットで同じy軸制限を作成するためのものです
f ,ax = plt.subplots(1,2,figsize = (30, 13),gridspec_kw={'width_ratios': [5, 1]})
df.plot(ax = ax[0], linewidth = 2.5)
ylim = [df['min_return'].min()*1.1,df['max_return'].max()*1.1]
ax[0].set_ylim(ylim)
ax[1].hist(data,normed =1, bins = num_bin, color = 'yellow' ,alpha = 1)
ax[1].set_ylim(ylim)