使用matplotlib绘制大量整数的直方图

时间:2014-10-02 08:23:46

标签: python matplotlib plot

我试图在范围内的数字列表中绘制整数频率。更具体地说:

ints = np.random.random_integers(0,1440,15000)

ints是一个长整数列表,其值介于0和1440之间。接下来,我想绘制一个可视化频率的直方图。为此,我使用了类似的东西:

fig_per_hour = plt.figure()
per_hour = fig_per_hour.add_subplot(111)
counts, bins, patches = per_hour.hist(
    ints, bins = np.arange(0,1441), normed = False, color = 'g',linewidth=0)
plt.show()

但我面临两个问题:

  1. x轴右端的恼人间隙。虽然我指定了正确的(?)数量的箱子,但情节并没有反映出来。
  2. 由于采样的范围较大,每个条形都很薄,很难区分。是否可以拉伸x轴使条形更宽?原因是我想要注释x轴和一些条形。
  3. 作为参考,这是我到目前为止的输出: enter image description here

1 个答案:

答案 0 :(得分:1)

我使用set_xlim和较少数量的垃圾箱,例如bins = 100

from matplotlib import pyplot as plt
import numpy as np

ints = np.random.random_integers(0,1440,15000)

fig_per_hour = plt.figure()
per_hour = fig_per_hour.add_subplot(111)
counts, bins, patches = per_hour.hist(
    ints, bins = 100, normed = False, color = 'g',linewidth=0)
plt.gca().set_xlim(ints.min(), ints.max())
plt.show()

enter image description here


修改:您可以手动调整窗口大小:

enter image description here

原则上,您可以使用plt.figure(figsize=(20, 2))以编程方式执行此操作。但不知何故,窗口大小仅限于屏幕大小。