ggpubr全能作图包

在前文中我们介绍了一些有关与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 #在图形下方添加的密度标度

)

截屏2023-06-19 07.39.18

分组绘制密度图

#分组绘制密度直方图

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中的主题类型

截屏2023-06-13 14.10.39

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

p+stat_overlay_normal_density(color = “black”, linetype = “dashed”)

截屏2023-06-13 14.15.56

直方图

#直方图展示

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

截屏2023-06-13 14.22.40

分面直方图

gghistogram(mydata, x = “value”,facet.by = “group”#分面操作

,add_density = TRUE,#添加密度曲线

fill = “group”,add = “mean”, rug = TRUE, palette = c(“#00AFBB”, “#E7B800″,”pink”,”lightgreen”))

截屏2023-06-13 14.24.24

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

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

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

简单的箱线图绘制:

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

截屏2023-06-13 14.55.11

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)#对添加的对象进行性状,颜色,大小等定义) 截屏2023-06-13 15.02.26

小提琴

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

条形图

data(“mtcars”)

df2 <- mtcars

df2$cyl <- factor(df2$cyl)

df2$name <- rownames(df2)#添加一行name

head(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)

截屏2023-06-13 15.28.46

偏差图

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度的直方图

截屏2023-06-13 15.43.39

点图

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

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

ggdotchart(df2, x=”name”, y=”mpg”, color = “cyl”,

palette = c(“#00AFBB”, “#E7B800”, “#FC4E07”), sorting = “ascending”,

add = “segments”, ggtheme = theme_pubr())

截屏2023-06-13 15.47.55

相关线性分析图

对于双变量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包的分享就完成了。小伙伴们如果有什么问题就和小果讨论吧。