使用Python中的np.histogram函数中的bin和数据绘制直方图

2024-09-28 15:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

虽然我发现了其他类似的问题,但没有一个能解决我想做的事情

瞄准

我想根据np.histogram函数生成的数据创建直方图

注意:我需要累积直方图数据,然后将其绘制成图表。这就是为什么我不立即绘制值的原因

玩具示例代码

生成的功能和数据包括:

import numpy as np
values = np.asarray([100, 100, 90, 10, 0, 0, 0, 30, -10, -20, -40]) # 11 values

def histogram(values, intervals, limitInf=-50, limitSup=120):
    return np.histogram(values,range(limitInf,limitSup,intervals),normed=False,density=None)

intervals = 10
hist, bins = histogram(values, intervals=intervals)

第一次尝试

代码如下:

import matplotlib.pyplot as plt
plt.bar(bins[0:-1]+intervals/2,hist, width=intervals)
plt.show()

我能够创建以下图表:

enter image description here

差别

如果我直接从如下值创建图形:

plt.hist(values,intervals)
plt.show()

我得到了不同的输出:

enter image description here

问题:

这是一个好的解决方案还是我应该再尝试一次?我不太习惯将宽度添加到垃圾箱并删除最后一个值。我接受任何其他图形包解决方案

编辑

如果我改用:

plt.hist(values,density=None,bins=range(limitInf=-50, limitSup=120,intervals=intervals))

我得到了相同的结果,没有差别。我没有设定同样的限制


Tags: 数据代码importnp图表绘制plt直方图