打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
直方图设置坐标
userphoto

2022.12.04 四川

关注
        当变量值个数较多时,对各变量值出现的频率列表即为频率分布表,简称频率表。 频率分布直方 图是频率分布表的图形表示,可以帮 助研究者发现某些离群值或极端值,更好地揭示变量的分 布类型(对称分布、正偏锋分布、负偏峰分布)与分布特征(集中 趋 势、离散 趋势 ),为研 究者进一步计算统计指标和统计分析提供方便。 本 文将 基于R语言对定量 变量频率分布 图的绘制进行讲解。

离散型变量

    ggplot2是R语言中用于数据可视化的重要程序包,在使用前需要在RStudio console中运行 install.packages(ggplot2)进行安装。利用R语言绘制离散型变量频率分布直方图的代码如下:
library(ggplot2)# 构造数据data  data  rpois(1000, lambda = 10)df  data.frame(wrong=data)# 绘制频率分布直方图ggplot(df, aes(wrong)) +   geom_histogram(aes(y = stat(count) / sum(count)), binwidth = 1, fill = "#F9A825", color = "#FFFDE7", alpha = 0.5) +  labs(x = "错误次数", y = "人数占比") +  theme_bw() +   scale_y_continuous(labels = scales::percent)
    首先需要构造离散型变量数据。鉴于泊松分布适合于描述单位时间(或空间)内随机事件发生的次数,是最重要的离散分布之一,所以本文在此使用R语言中的rpois()函数生成离散型变量数据并将之转换为dataframe。
在构造数据之后就是绘制频率分布直方图,其中:
  • ggplot()是初始化一个ggplot对象,并通过其中的参数指定数据。
  • geom_histogram()是用于生成直方图,它的参数binwidth用于指定组距,fill用于指定填充颜色,color用于指定边框颜色,alpha用于指定透明度。
  • labs用于指定坐标轴名称。
  • theme_bw()用于去除灰色背景。
  • scale_y_continuous()用于修饰y轴刻度。

    离散型变量的频率分布直方图绘制结果如下:

连续型变量

    利用R语言绘制连续型变量频率分布直方图的代码如下:
library(ggplot2)# 构造数据data  rnorm(5000, mean = 175, sd = 10)data  (data[data > 160])data  (data[data < 190])df  data.frame(height=data)#获取极值max_val  max(df$height)min_val  min(df$height)#计算全距range  max_val - min_val#输出全距和极值print(max_val)print(min_val)print(range)# 绘制频率分布直方图ggplot(df, aes(height)) +  geom_histogram(aes(y = stat(count) / sum(count)), bins = 10, fill = "#F9A825", color = "#FFFDE7", alpha = 0.5) + labs(x = "身高", y = "人数占比") + theme_bw() +  scale_y_continuous(labels = scales::percent)
    首先本文通过R语言中的rnorm()构建符合正太分布的模拟数据,同时为了避免异常点对绘图效果的影响去除(160, 190)之外的数据。连续型变量的频率分布直方图的绘制可以分为以下四个步骤:
  1. 提取最大值max和最小值min。
  2. 计算全距(range, R),又称极差;R = max - min。
  3. 确定组段数和组距(一般为人工指定)
  4. 绘图
    以上四个步骤在上述代码得到了十分明确的体现,特别需要指出的是在geom_histogram()中,在组段数bins和组距binwidth发生冲突的情况下,bins的优先级更高。连续型变量的频率分布直方图绘制结果如下:

分组变量

    birthwt是Baystate医疗中心在1986年收集的数据,用于研究低出生体重儿的相关影响因素。在使用该数据前,需要在RStudio console中运行install.packages(MASS)安装相关软件包。利用R语言绘制分组变量频率分布直方图的代码如下:

library(ggplot2)library(MASS)# 预处理:将smoke变量转换为因子类型birthwt$smoke = factor(birthwt$smoke)# 绘制频率分布直方图ggplot(birthwt, aes(bwt, fill = birthwt$smoke)) +# 直方图函数:position设置堆积模式为重叠  geom_histogram(aes(y = stat(count) / sum(count)), position = "identity", alpha = 0.4) +   labs(x = "bwt", y = "人数占比") +  theme_bw() +   scale_y_continuous(labels = scales::percent)
    本文基于birthwt数据集中的smoke因素作为数据分组依据,并在geom_histogram()通过参数position指定重叠堆积为直方图的堆积方法,该堆积方法能够更好的展示不同分组间的频数变化趋势。分组变量的频率分布直方图绘制结果如下:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言ggplot包之数据分布汇总
散点图及数据分布情况
【高考数学】解题能力提升, 每日一题: 第131题
2012年高考数学按章节分类汇编(人教A必修三):第二章统计
随机抽样、用样本估计总体及线性相关关系
频率分布直方图的来龙去脉
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服