matplotlib hist()自动裁剪范围

Kei*_*ith 10 python matplotlib range histogram

我试图在特定范围内制作一个histgram,但是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()
Run Code Online (Sandbox Code Playgroud)

给出范围为[-100,100]的图.为什么范围不是[-500,500]?

(我正在使用Enthought Canopy 1.4而且抱歉,但我没有足够高的代表来发布情节图像.)

Ger*_*Ger 18

实际上,如果您指定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()
Run Code Online (Sandbox Code Playgroud)

如果要在大于[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()
Run Code Online (Sandbox Code Playgroud)