使用facet()对ggplots图形进行分面

更好的阅读体验>>

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")
      )

参考

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容