我正在为各种数据集制作直方图,并希望它们都使用相同的箱子,以便它们易于比较。然而,似乎如果bin分布比数据集大得多,则hist忽略该范围并使其变小。例如:
x=[random.randrange(1,10) for _ in xrange(1000)]
plt.hist(x, 50, range=[0, 100])
plt.show()
我只能从0到10获得5个分区而不是0到100分。我假设我错过了其他所有参数的显而易见的东西?
谢谢!
答案 0 :(得分:0)
In [37]: plt.hist(x, 50, range=[0,100])
Out[37]:
(array([ 103., 228., 233., 228., 208., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0.]),
array([ 0., 2., 4., 6., 8., 10., 12., 14., 16.,
18., 20., 22., 24., 26., 28., 30., 32., 34.,
36., 38., 40., 42., 44., 46., 48., 50., 52.,
54., 56., 58., 60., 62., 64., 66., 68., 70.,
72., 74., 76., 78., 80., 82., 84., 86., 88.,
90., 92., 94., 96., 98., 100.]),
<a list of 50 Patch objects>)
该函数返回bin和patch。正如你在这里看到的那样,实际上有50个箱子。 matplotlib只是选择在没有更多数据的地方剪掉数字。