使用facet()对ggplots图形进行分面
2020-02-09 本文已影响0人
Boer223
ggpubr包中的facet()函数可以绘制一个或两个变量分组数据集的分面图形。下面将介绍如何按一个或多个变量拆分数据,以及如何可视化数据的子集。
基本图形绘制
加载数据
library(ggpubr)
df <- ToothGrowth
df$dose <- as.factor(df$dose)
head(df)
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
## 4 5.8 VC 0.5
## 5 6.4 VC 0.5
## 6 10.0 VC 0.5
绘图:
p <- ggdensity(df, x = "len", fill = "dose",
palette = "jco",
ggtheme = theme_light(), legend = "top")
p
对一个分组变量进行分面
在水平方向上对supp变量进行分面:
facet(p, facet.by = "supp")
在垂直方向上对supp变量进行分面:
facet(p, facet.by = "supp", ncol = 1)
对两个变量进行分面
在水平和垂直方向上均可以对数据集的一个或两个变量进行分面。
# 垂直方向上对“supp”分面,水平方向上对“dose”分面
facet(p, facet.by = c("supp", "dose"),
short.panel.labs = FALSE)
修改面板标签的外观
facet(p, facet.by = c("supp", "dose"),
panel.labs = list(
supp = c("Orange Juice", "Vitamin C"),
dose = c("D0.5", "D1", "D2")
), # 修改supp和dose变量的分面标签
panel.labs.background = list(color = "steelblue", fill = "steelblue", size = 0.5), # 修改分面标签的背景
panel.labs.font = list(color = "white"), #修改分面标签的字体样式
panel.labs.font.x = list(angle = 45, color = "white")
)