当前位置: 首页 > 面试题库 >

Matplotlib中的bin大小(直方图)

钮巴英
2023-03-14
问题内容

我正在使用matplotlib制作直方图。

有什么方法可以手动设置垃圾箱的大小,而不是垃圾箱的数量吗?


问题答案:

实际上,这很简单:您可以提供一个带有bin边界的列表,而不是bin的数量。它们也可能分布不均:

plt.hist(data, bins=[0, 10, 20, 30, 40, 50, 100])

如果只希望它们均匀分布,则可以使用range:

plt.hist(data, bins=range(min(data), max(data) + binwidth, binwidth))

添加到原始答案

上一行data仅适用于整数填充。正如macrocosme所指出的,对于浮点数,您可以使用:

import numpy as np
plt.hist(data, bins=np.arange(min(data), max(data) + binwidth, binwidth))


 类似资料:
  • 我正在制作一个有3个子绘图的图,尽管它们的宽度都相等,但一些直方图箱子的大小似乎不同。我的目标是创建一个具有相等宽度条的直方图。 我正在绘制来自三个不同数据框< code>df1、df2、df3的数据,每个数据框都有自己的轴。前两个数据帧(< code>df1,df2)有12个值,而第三个(< code>df3)有21个值。一个简单的工作示例: 在上图中,第三个子图 具有一个柱形图条,其条柱宽度显

  • 直方图(Histogram),又称质量分布图,它是一种条形图的一种,由一系列高度不等的纵向线段来表示数据分布的情况。 直方图的横轴表示数据类型,纵轴表示分布情况。 首先,我们需要了解柱状图和直方图的区别。直方图用于概率分布,它显示了一组数值序列在给定的数值范围内出现的概率;而柱状图则用于展示各个类别的频数。 例如,我们对某工厂的员工年龄做直方图统计,首先我们要统计出每一位员工的年龄,然后设定一个

  • 我花了一些时间在互联网上寻找这个问题的答案,我也试着在SO的所有地方寻找答案,但我想我没有正确的术语……请原谅,如果这是某个已知问题的重复,我很乐意删除我的帖子,改为引用该帖子! 无论如何,我试图在Matplotlib中的同一图形上绘制两个直方图。我的两个数据源是包含 500 个元素的列表。要说明我面临的问题,请参阅下图: 如您所见,在默认参数下,直方图具有不均匀的条块大小,即使条块的数量是相同的

  • NumPy有一个numpy.histogram()函数,它是数据频率分布的图形表示。 相等水平尺寸的矩形对应于称为bin类间隔和对应于频率的variable height 。 numpy.histogram() numpy.histogram()函数将输入数组和bin作为两个参数。 bin数组中的连续元素充当每个bin的边界。 import numpy as np a = np.array([2

  • 我想使用Matplotlib绘制一个带有非均匀x轴的直方图。例如,考虑下面的直方图: 第一个箱子的密度很高,所以我想放大。 理想情况下,我想将x轴中的值更改为,保持图中的箱宽度不变(当然不是数字)。有没有简单的方法来实现这一点?欢迎任何意见或建议。

  • 我想在同一个图上绘制多个直方图,我需要比较数据的分布。我想用每个直方图除以它的最大值,这样所有分布都有相同的比例。然而,根据matplotlib的直方图函数的工作方式,我还没有找到一种简单的方法来实现这一点。 这是因为n在 是计数的数量在每个箱,但我不能重传这到hist,因为它将重新计算。 我尝试了范数和密度函数,但这些函数使分布的面积正常化,而不是分布的高度。我可以复制n,然后使用箱输出重复箱边