如何在 C 语言中创建直方图?

2025年1月7日 | 阅读 6 分钟

在本文中,我们将讨论 C 语言中的直方图程序。但在讨论其实现之前,我们需要了解直方图

什么是直方图?

直方图是显示数值数据分布情况的图表。它可视化落入不同区间(通常称为“箱”“存储桶”)的数据点的频率或计数。直方图经常用于统计和数据分析,以理解数据集的潜在分布并发现模式、异常值和其他特征。

直方图的y 轴显示每个区间内数据点的频率计数,而x 轴表示分为区间的数据值范围。每个区间的宽度通常是恒定的,尽管它可能根据数据类型和分析师的偏好而变化。直方图上相应条形的高度表示每个区间中的数据点数量。

通过直方图可以确定数据分布的形状,例如它是对称、偏斜、双峰(有两个峰)还是任何其他模式。它们还有助于识别异常值,因为远离大部分数据的点会显示为直方图边缘的孤立条形。

直方图是探索性数据分析以及深入了解数据特性的有效工具,因为它们提供了数据中心趋势和离散度的可视化摘要。

直方图

条形图用于在直方图中表示数据。它是沿x 轴组织成多个柱状结果的可视化。同一直方图的y 轴表示每个柱形在数据中的出现次数或多次出现。它是可视化数据分布最简单的方法。让我们看一个直方图示例,以帮助更好地理解直方图

1. 布鲁诺叔叔有一个拥有30 棵黑樱桃的花园。每棵树的高度不同。树高分别为 61、63、64、66、68、69、71、71.5、72、72.5、73、73.5、74、74.5、76、76.2、76.5、77、77.5、78、78.5、79、79.2、80、81、82、83、84、85、87 英寸。通过指定范围,我们可以将信息分组到频率分布表中,如下所示:

身高范围(英尺)树的数量(频率)
60 - 753
66 - 703
71 - 758
76 - 8010
81 - 855
86 - 901

How to create a histogram in C

现在,可以使用直方图显示此数据。绘制直方图时,必须确保条形之间没有间隙。

如何制作直方图?

以下是有关如何使用提供的数据创建直方图的说明:

步骤 1:首先,为水平轴选择一个刻度来表示权重。

步骤 2:频率的垂直轴选择一个合适的刻度。

步骤 3:然后,使用指定权重中每个权重的频率,绘制与每个权重对应的条形

示例:为以下描述班级 25 名学生体重频率的频率分布表构建一个直方图。

体重(磅)频率(学生人数)
65 - 704
70 - 7510
75 - 808
80 - 854

绘制直方图的步骤

步骤 1:首先,我们可以将水平轴上的刻度设置为1 单位 = 11 磅。由于表格中的体重从65开始而不是从0开始,因此我们在X 轴上包含一个断点或折痕。

步骤 2:垂直轴上的频率范围为410。因此,我们决定将刻度设置为1 单位 = 2

步骤 3:使用每个指定权重的频率,绘制与每个权重对应的条形。

How to create a histogram in C

频率直方图

显示给定数据项频率(出现次数)的直方图称为频率直方图。例如,一家医院有20 名新生儿,他们的年龄从最小到最大分别为:1、1、1、1、2、2、2、2、2、3、3、3、3、3、3、3、3、4、4、5。可以使用以下频率分布表显示此数据:

年龄(天)频率
14
25
38
42
51

现在,可以使用频率直方图来显示此数据。

How to create a histogram in C

关于直方图的技巧和窍门

在使用直方图可视化任何数据时,以下是一些需要牢记的关键点和技巧:

  • 创建直方图时,请查看能整除所有频率最大整数来选择垂直轴上的刻度。如果不存在这样的数字,请寻找能整除大部分频率的最大数字。
  • 直方图是一种用于汇总连续数据的图表
  • 直方图提供连续数据的可视化解释。
  • 水平垂直轴的刻度不必从0开始。
  • 直方图的条形之间不应有任何间隙。

程序

让我们看一个简单的 C 语言直方图程序。

输出

How to create a histogram in C

示例 2

输出

How to create a histogram in C

直方图的应用

在许多领域,直方图经常用于数据分析和可视化。可以在 C 语言中创建直方图以支持以下应用:

  • 物理与工程

直方图有助于分析实验科学中的观测结果,例如粒子能量、信号强度材料质量,并有助于理解物理现象。

  • 市场调研

营销人员使用直方图通过分析消费者偏好、调查结果人口统计信息来定制营销活动。

  • 教育

教师可以利用直方图来评估学生在考试、作业或小测验中的表现,并帮助他们发现可能需要额外帮助的领域。

  • 图像处理

直方图对于图像处理活动至关重要,例如均衡化、阈值处理对比度增强。为了理解图像像素强度值的分布并做出明智的调整,可以创建这些值的直方图。

  • 数据分析与统计

在数据分析和统计中,直方图有助于理解数值数据的分布。它们用于探索性数据分析和决策,以发现数据集中的模式、异常值和中心趋势。

  • 金融与经济

金融分析师使用直方图来评估各种金融指标并可视化股票价格的变化。

  • 环境科学

直方图可以显示环境数据,包括污染物浓度、温度变化降雨量,以评估趋势并做出明智的决策。

  • 质量控制与过程监控

在制造的质量控制和过程监控中,使用直方图来检查测量值的分布。与预期分布的偏差可能表明生产过程中存在问题。

  • 生物医学研究

通过使用直方图分析医学数据,例如患者年龄、血压读数胆固醇水平研究人员可以深入了解健康趋势和潜在的风险因素。

  • 社会科学

社会学心理学等领域,直方图可以帮助研究人员可视化和分析调查数据,揭示数据中的模式和相关性。

由于手动创建直方图可能耗时容易出错,因此在 C 语言中使用直方图时,选择合适的数据操作和可视化库至关重要。考虑使用 **Gnuplot** 等附加库或开发自己的例程以高效地生成和显示直方图。