ggpubr全能作图包






ggpubr全能作图包

小云  生信果  2023-07-19 19:00:40

生信人R语言学习必备

立刻拥有一个Rstudio账号

开启升级模式吧

(56线程,256G内存,个人存储1T)

 

在前文中我们介绍了一些有关与ggpubr的一些绘图的功能,但是这个全功能的包还可以绘制非常多的图形,今天我们来盘点ggpubr的图形大全。


处理数据的时候主要接触的是数据类型为,单变量因素连续型数据;双变量X离散,Y连续;双变量X,Y都连续这几个了类型。



密度分布图、直方图

对于单变量因素连续型数据一般用密度分布图、直方图来表示,那ggpuber也提供了相关的绘图功能。



密度分布图

#加载相应的R包library(ggplot2)library(ggpubr)#构建数据集,随机构建一个个数据框,包括ABCD四个组别set.seed(1234)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绘制密度图ggdensity(mydata, x = "value", y="..density..", #也可选择"..count.."          fill = "lightblue",          add = "mean", #或者"median",          rug = TRUE #在图形下方添加的密度标度)


分组绘制密度图

#分组绘制密度直方图ggdensity(mydata, x = "value",          facet.by="group", #按照分组进行分面处理          color = "group", fill="group", #填充按照组别映射          palette = "lancet",#可以选择"npg", "aaas", "lancet", "jco", "ucscgb", "uchicago", "simpsons" and "rickandmorty"          add = "mean",          rug = TRUE,          alpha=0.4, #调整透明度          xlab=F,ylab = "Density",          panel.labs=list(group = c("A", "B", "C", "D")), #修改每个panel的名字          ggtheme=theme_bw() #可以是ggplot2中的主题类型

#还可以添加相应的正态曲线来展示

p+stat_overlay_normal_density(color = "black", linetype = "dashed")


 

直方图

#直方图展示

gghistogram(mydata, x = "value", fill = "group",add = "mean", rug = TRUE, palette = c("#00AFBB", "#E7B800","pink","lightgreen"))

 

 

分面直方图

gghistogram(mydata, x = "value",facet.by = "group"#分面操作,add_density = TRUE,#添加密度曲线fill = "group",add = "mean", rug = TRUE, palette = c("#00AFBB", "#E7B800","pink","lightgreen"))

 

 

箱线图,小提琴图,条形图,点状图

离散型的数据(X为离散的)——箱线图,小提琴图,条形图,点状图等。

在以前的文章中我们也给予了一写小提琴的作图方法,今天打包汇总各种图的做法。

 

简单的箱线图绘制:

ggboxplot(mydata, x = "group", y = "value", width = 0.8)

ggboxplot(mydata, x = "group", y = "value", width = 0.8,select = c("A","B"),#如果只想绘制某个组中的可以选择orientation = "horizontal",#箱线图的方向fill = "group",#填充映射到分组上palette = c("#00AFBB", "#E7B800"),add = "dotplot",#添加散点在图中,还可以选择"none", "dotplot", "jitter", "boxplot", "point", "mean", "mean_se", "mean_sd", "mean_ci", "mean_range", "median", "median_iqr", "median_hilow", "median_q1q3", "median_mad", "median_range"add.params=list(color = "lightblue",size=0.5)#对添加的对象进行性状,颜色,大小等定义)



小提琴

小提琴图的绘制,可以查阅小果以前写的“多渠道绘制小提琴图,实现作图自由”的文章。

 


条形图

data("mtcars")df2 <- mtcarsdf2$cyl <- factor(df2$cyl)df2$name <- rownames(df2)#添加一行namehead(df2[, c("name", "wt", "mpg", "cyl")])
ggbarplot(df2, x="name", y="mpg", fill = "cyl", color = "white",palette = "jco",#jco的配色sort.val = "asc",#上升排序sort.by.groups=TRUE,#按组排序x.text.angle=90)


 

偏差图

df2$mpg_z <- (df2$mpg-mean(df2$mpg))/sd(df2$mpg)df2$mpg_grp <- factor(ifelse(df2$mpg_z<0, "low", "high"), levels = c("low", "high"))head(df2[, c("name", "wt", "mpg", "mpg_grp", "cyl")])
ggbarplot(df2, x="name", y="mpg_z", fill = "mpg_grp", color = "white",palette = "jco", sort.val = "asc", sort.by.groups = FALSE, x.text.angle=60,ylab = "MPG z-score", xlab = FALSE, legend.title="MPG Group")
ggbarplot(df2, x="name", y="mpg_z", fill = "mpg_grp", color = "white",          palette = "jco", sort.val = "desc", sort.by.groups = FALSE,          x.text.angle=90, ylab = "MPG z-score", xlab = FALSE,          legend.title="MPG Group", rotate=TRUE,#是否旋转的参数 ggtheme = theme_minimal())#一般我们用的偏差图都是旋转90度的直方图

 

 

 

点图

棒棒图可以代替柱状图来展示相应的结果,ggpubr包中也有相应的函数。

这里简单的展示棒棒图的做法,对于偏差图与柱状图类似。

ggdotchart(df2, x="name", y="mpg", color = "cyl",palette = c("#00AFBB", "#E7B800", "#FC4E07"), sorting = "ascending",add = "segments", ggtheme = theme_pubr())


 

相关线性分析图

对于双变量X,Y都连续这个数据类型,一般采用相关线性分析来解决,这一部分小果也有写过一片有关于相关性分析的图的绘制。

data("iris")p <- ggplot(data = iris, aes(x = Sepal.Width, y = Petal.Width,  color = Species)) + geom_point() + geom_smooth(method = lm) +scale_color_manual(values = c('#FF7400', '#009999', '#3914AF'))  +labs(title = 'iris') +theme_bw() + theme(plot.title = element_text(hjust = 0.5)) +stat_cor(method = 'pearson', aes(x = Sepal.Width, y = Petal.Width,  color = Species))p


从以上的展示中可以看到,ggpubr的全能性非常的强,可以涵盖很多图形,并且快速的制作相应的图。

 

好了,这样我们ggpubr包的分享就完成了。小伙伴们如果有什么问题就和小果讨论吧。

点击“阅读原文”立刻拥有

↓↓↓