在前文中我们介绍了一些有关与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 <- 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)
偏差图
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包的分享就完成了。小伙伴们如果有什么问题就和小果讨论吧。