首页 > 解决方案 > 使用给定的 X 和 Y 值创建直方图

问题描述

我有 2 组数据正在尝试进入直方图格式。最初它被绘制为一条线,代表一条高斯曲线,但我想将其更改为直方图。我通读了文档,最初有这个......

from matplotlib import pyplot as plt

B = [0.248, 0.248, 0.745, 0.745, 1.241, 1.241, 1.737, 1.737, 2.233, 2.233, 2.729, 2.729, 3.224, 3.224, 3.718, 3.718, 4.213, 4.213, 4.706, 4.706, 5.199, 5.199, 5.691, 5.691, 6.182, 6.182, 6.672, 6.672, 7.162, 7.162, 7.65, 7.65, 8.137, 8.137, 8.623, 8.623] 

D = 1, 1, .99, .99, .96, .96, .92, .92, .86, .86, .80, .80, .73, .73, .65, .65, .57, .57, .48, .48, .36, .36, .3, .3, .25, .25, .2, .2, .16, .16, .13, .13, .11, .11]

plt.figure(figsize=[10,8])
plt.hist(x=D, bins=B)

查看 B 和 D 时,您可以看到每两个重复的值。最初,它是数组中每个元素的单个值(或列表,取决于它的格式),但是当我在 Excel 中执行此操作时,我需要定义我的 bin 的每个边缘。我的印象是我可以将 Bins 定义为一个整数,这将创建均匀间隔的 bin,或者定义为一个列表,然后按照定义创建 bin 边界。

当我这样做时,我得到以下信息:

看起来不太像我想要的直方图。

我希望 Y 轴上的值不会超过 1,并且 X 轴上的值会从略高于 0 到略高于 8。欢迎对此提出任何想法/帮助,我很乐意在您需要时提供更多信息。

更新:

我也很高兴(并且实际上更喜欢)有一个不连续的线图。有点像这样的东西……

在此处输入图像描述

标签: pythonmatplotlibhistogram

解决方案


推荐阅读