R绘图(6): 拯救初学者 您所在的位置:网站首页 教师网上授课平台 R绘图(6): 拯救初学者

R绘图(6): 拯救初学者

2022-05-28 09:46| 来源: 网络整理| 查看: 265

install.packages("ggpubr") library(ggpubr) 1. 单变量——连续型 1.1 密度图 #创建数据框 set.seed(0330) mydata = data.frame( group = rep(c("A", "B","C","D"), each=200), value = c(rnorm(200, mean = 2), rnorm(200, 6),rnorm(200,2,4),rnorm(200,6,4)) ) ggdensity(mydata, x = "value", y="..density..", #或者"..count..",默认为"..density.." fill = "lightgray", add = "mean", #或者"median", rug = TRUE #在图形下方添加密度线 ) ggsave("density1.pdf",width = 10,height = 10,units = "cm")

分组绘制

ggdensity(mydata, x = "value", color = "group", fill="group", #分组 palette = "Dark2",#或者"aaas"这种ggsci包的配色形式,或者"#00AFBB"这种编码形式 add = "mean", rug = TRUE, alpha=0.2, #调整透明度 xlab=F,ylab = "Density", facet.by="group", #分面 panel.labs=list(group = c("1", "2", "3", "4")), #修改每个panel的名字 title="density plot", ggtheme=theme_bw() #可以是ggplot2中的主题类型 ) ggsave("density2.pdf",width = 13,height = 12,units = "cm")

1.2 密度图叠加正态分布 set.seed(0330) mydata = data.frame( group = rep(c("A", "B"), each=200), value = c(rnorm(200, 2), rnorm(200, 6, 4)) ) ggdensity(mydata, x = "value", fill = "red") + stat_overlay_normal_density(color = "red", linetype = "dashed")+ scale_x_continuous(limits = c(-5,20)) ggsave("density3.pdf",width = 10,height = 10,units = "cm")

分组绘制

ggdensity(mydata, x = "value", fill = "group") + stat_overlay_normal_density(aes(color=group), linetype = "dashed")+ scale_x_continuous(limits = c(-5,20)) ggsave("density4.pdf",width = 10,height = 10,units = "cm")

分组+分面

ggdensity(mydata, x = "value", fill = "group", facet.by = "group") + stat_overlay_normal_density(aes(color=group), linetype = "dashed")+ scale_x_continuous(limits = c(-5,20)) ggsave("density5.pdf",width = 16,height = 10,units = "cm")

1.3 直方图 gghistogram(mydata, x = "value", fill = "lightgray", add = "mean", rug = TRUE) ggsave("hist1.pdf",width = 10,height = 10,units = "cm")

分组绘制

gghistogram(mydata, x = "value", fill = "group", add = "mean", rug = TRUE, palette = c("#00AFBB", "#E7B800")) ggsave("hist2.pdf",width = 10,height = 10,units = "cm")

添加核密度图

gghistogram(mydata, x = "value", fill = "group", rug = TRUE, palette = c("#00AFBB", "#E7B800"), add_density = TRUE) ggsave("hist3.pdf",width = 10,height = 10,units = "cm")

2. 双变量——x离散,y连续 2.1 箱型图 library(patchwork) set.seed(0330) mydata = data.frame( group = rep(c("A", "B"), each=100), group2 = rep(c("g1","g2","g1","g2"),each=50), value = c(rnorm(100, 2), rnorm(100, 6, 4)) ) #下面的加号表示拼接图形 ggboxplot(mydata, x = "group", y = "value", width = 0.8)+ ggboxplot(mydata, x = "group", y = "value", width = 0.8, orientation = "horizontal")+ ggboxplot(mydata, x = "group", y = "value", width = 0.8, notch = TRUE,order = c("B","A"))+ ggboxplot(mydata, x = "group", y = "value", width = 0.8, select = c("A")) ggsave("box1.pdf",width = 10,height = 10,units = "cm")

orientation调整图形方向;notch添加缺口;order调整顺序;select选择特定的水平来画图

ggboxplot(mydata, x = "group", y = "value", width = 0.8, add = "jitter",add.params=list(color = "lightblue",size=1, shape = 17))+ ggboxplot(mydata, x = "group", y = "value", width = 0.8, add = "dotplot",add.params=list(color = "lightblue",size=0.5)) ggsave("box2.pdf",width = 16,height = 10,units = "cm")

上面的add添加额外图形add.params对附加图形的参数进行调整,shape表示点的形状,可以参加下图

内部分组

ggboxplot(mydata, x = "group", y = "value", width = 0.6, color = "black",fill="group2",palette = c("#00AFBB", "#E7B800"), xlab = F, #不显示x轴的label bxp.errorbar=T,bxp.errorbar.width=0.4, #添加errorbar size=1, #箱型图边线的粗细 outlier.shape=NA, #不显示outlier legend = "right") #图例放右边 ggsave("box3.pdf",width = 10,height = 10,units = "cm")

2.1.1 箱型图添加配对连线

可以接受两种数据框

mydata2=mydata mydata2$group2=NULL head(mydata2) # group value # 1 A 3.551687 # 2 A 3.664068 # 3 A 2.194454 # 4 A 2.569605 # 5 A 2.579997 # 6 A 1.837967 ggpaired(mydata2, x = "group", y = "value", color = "group", line.color = "gray", line.size = 0.4, palette = "npg") mydata2$id=rep(1:100,2) mydata2=mydata2%>%reshape2::dcast(id~group) head(mydata2) # id A B # 1 1 3.551687 4.720074 # 2 2 3.664068 7.821049 # 3 3 2.194454 8.956841 # 4 4 2.569605 -4.450063 # 5 5 2.579997 7.568216 # 6 6 1.837967 5.133688 ggpaired(mydata2, cond1 = "A", cond2 = "B", color = "condition", line.color = "gray", line.size = 0.4, palette = "npg") ggsave("box4.pdf",width = 10,height = 10,units = "cm")

上面两种数据框得到的图是一模一样的

2.1.2 添加p值

一般用法

ggboxplot(mydata, x = "group", y = "value", width = 0.8, add = "dotplot",add.params=list(color = "lightblue",size=0.5))+ stat_compare_means(method = "t.test") ggsave("box5.pdf",width = 10,height = 10,units = "cm")

成对数据

ggpaired(mydata2, cond1 = "A", cond2 = "B", color = "condition", line.color = "gray", line.size = 0.4, palette = "npg")+ stat_compare_means(paired = TRUE) ggsave("box6.pdf",width = 10,height = 10,units = "cm")

多于两个组时,定义想检验的配对

my_comparisons


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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