记一次用ggplot2做双因素条形(Bar)图+显著性p值+errorbar 您所在的位置:网站首页 柱形图如何标注差异显著性 记一次用ggplot2做双因素条形(Bar)图+显著性p值+errorbar

记一次用ggplot2做双因素条形(Bar)图+显著性p值+errorbar

2024-06-11 00:39| 来源: 网络整理| 查看: 265

一、导入数据集         1        数据集介绍

                采用一个自己创建的数据集其中包括两个因素,因素1为性别分为男性和女性2水平,因素2为年龄阶段,三水平:青少年、中年、老年,因变量为不同组对于某一照片新引力的评分。

        2        导入数据集

                从spss导入数据集,同时加载相关R包,代码如下:

library(ggplot2) library(ggsignif) #添加显著性 library(Hmisc) #利用该包的SPSS.get函数从SPSS导入数据到R dataframe ExpData ExpData #查看导入的数据集 性别 年龄 吸引力评分 SD 1 男性 青少年 7.167 1.115 2 男性 中年 6.325 2.104 3 男性 老年 3.423 2.621 4 女性 青少年 3.838 2.408 5 女性 中年 3.722 2.334 6 女性 老年 3.721 2.416         3        ggplot2绘图

                1 新建一个名字为ggplotBar的脚本,方面我们写代码和后期修改代码,以及以后需要做图时,只需要修改变量直接套用模板。然后再该脚本内写我们绘制的图像的代码。

                file > new file >Script  ctrl +s 保存为 ggplotbar.R

                2 ggplot绘图代码如下:

#ExpData为我们导入的数据框的名字,aex(x = , y=, fill= )分别为我们数据框的变量,在本例中x为变量1性别,fill为标量2年龄,y为因变量吸引力评分 ggplot(ExpData,aes(x=性别,y=吸引力评分,fill = 年龄)) + #geom_bar参数介绍:position为bar图的位置信息,有效值为stack、dodge和fill,其中三种方式为bar的摆放方式,stack为堆叠、dodge为单独成条(主要应用),fill也为堆叠,但是与stack有所不同。 #stat为设置统计方法,有效值是count(默认值) 和 identity,其中,count表示条形的高度是变量的数量,identity表示条形的高度是变量的值;这里我们是平均值,所有用stat。 geom_bar(position=position_dodge(0.5), width=0.5,stat="identity") + #添加errorBar #参数介绍,aes为errorbar范围,与我们数据框的均值:评分±SD,width:为errorbar的宽度,position与上面保持一致确保每个errorbar添加到指定的bar图上面。 geom_errorbar(aes(ymin = 评分-SD,ymax = 评分+SD),width = 0.1,position=position_dodge(.5)) + #修改笛卡尔坐标x,y轴范围,可根据xy取值进行适当修改coord_cartesian(ylim = c(ymin,ymax),xlim = c(xmin,xmax)) coord_cartesian(ylim = c(0,10))+ #修改图的背景,去除网格线panel.grid=element_blank() theme(panel.grid=element_blank())+ #geom:创建自定义的注解,为每个bar添加均值标签 #参数介绍:aes 为添加的值,本例为添加吸引力评分到bar顶部,size/vjust对位置进行调整,position对位置进行调整,与前面设置的保持一致 geom_text(aes(label=吸引力评分),size=4,vjust=-0.5,position =position_dodge(0.5))+ #添加显著性 #参数介绍:y_position为添加显性的位置,xmin、ymax为显著性对应的bar的位置,这里我们要添加的为青少年男性与老年男性(xmin=0.833,xmax=12)、中年男性和老年男性(xmin=1.0,xmax=1.2)分别对应bar的x轴坐标,annotation同上添加自定义p表达式,也可根据需求改成‘*’,tip_length为显著性小角的长度。 geom_signif(y_position=c(8.7,9.2),xmin=c(0.833,1.0), xmax=c(1.2,1.2), annotation=c("p


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有