matplotlib hist给了我“太多的值来解压”

时间:2016-02-14 12:21:27

标签: python matplotlib

我想创建一个样本的频率图,其值介于-1和1之间。

使用numpy创建直方图效果很好:

freq, bins = np.histogram(sample, bins=np.arange(-1,1,0.05) )

但是使用相同的bin创建一个图表会给我一个错误(参见标题):

plt.hist(freq, range=bins)

除此之外,如何调整x标签以显示正确的bin值?

最小工作示例:

import matplotlib.pyplot as plt
import numpy as np


if __name__ == "__main__":

  sample =  np.random.uniform(-1,1,100)
  freq, bins = np.histogram(sample, bins=np.arange(-1,1,0.05) )

  plt.figure()
  plt.hist(freq, range=bins)
  plt.show()

1 个答案:

答案 0 :(得分:0)

没有必要使用numpy预处理数据,只需将数据直接传递给matplotlib的hist函数:

  sample =  np.random.uniform(-1,1,10000)
  #freq, bins = np.histogram(sample, bins=np.arange(-1,1,0.05) )

  plt.figure()
  plt.hist(sample, bins=100)
  plt.show()