matplotlib.pyplot.hist返回一个柱状图,当我改变d时,所有的箱子都有相同的值

2024-10-01 11:37:18 发布

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

我试图在python中使用matplotlib.pyplot.hist. 我有一个不同的数据数组,但是当我把代码放入python中时,柱状图返回的结果是所有存储单元中的值彼此相等,或者等于零,这是不正确的。在

柱状图应该看上面的线图,这些线图的高度和形状与上面的图大致相同。在

柱状图上方的线图是为了说明我的数据是什么样子的,并表明我的数据确实有所不同。在

我的数据数组称为spectrumnoise,它只是我针对数组x创建的一个函数

x=np.arange[0.1,20.1,0.1]

我用来创建直方图的代码和上面的线图是

^{pr2}$

我也试过用

mpl.hist((x,spectrumnoise),bins=50,histtype=step)

我还无数次地改变了箱子的数量,看看这是否有助于直方图函数的正常化,但没有任何效果。在

这里可以看到代码输出的图像 enter image description here


Tags: 数据函数代码高度matplotlib数组直方图hist
1条回答
网友
1楼 · 发布于 2024-10-01 11:37:18

问题是spectrumnoise是数组的list,而不是numpy.ndarray。当您将数组列表作为第一个参数交给hist时,它将每个元素视为要绘制的独立数据集。由于列表中的每个“数据集”中只有一个值,所以所有的箱子都具有相同的高度!在

histdocstring:

Multiple data can be provided via x as a list of datasets of potentially different length ([x0, x1, ...]), or as a 2-D ndarray in which each column is a dataset.

尝试将spectrumnoise转换为1D数组:

pp.hist(np.vstack(spectrumnoise),50)

顺便说一句,看看你的代码,绝对没有理由首先把你的数据转换成列表。您应该直接对数组中的片进行操作,例如:

^{pr2}$

相关问题 更多 >