ggplot 分面的细节调整汇总

简介: ggplot 分面的细节调整汇总

简介

小编前段时间介绍了 ggplot2 分面问题:R可视乎|分面一页多图。以及很多书籍都介绍了如何使用 ggplot2 的分面,如:《ggplot2: Elegant Graphics for Data Analysis》[1]《R语言教程》[2]

但是绘制之后的细节调整,几乎都没有介绍过。小编在学习的过程中,将一些细节调整技巧进行了整理,以供参考。并分享给大家,希望能帮到你~

本文框架


本文框架


教程

本文通过模拟数据来举例,读者可以根据数据形式,加载自己的数据集,并进行相应的数据处理。

生成数据

# 导入包
library(ggplot2)
set.seed(1)
dat = data.frame("time" = rep(2013:2019,6),
                 "method" = rep(LETTERS[1:6],each = 7),
                 "value" = rnorm(7*6,5,1),
                 "upper" = rnorm(7*6,5,1) + abs(rnorm(7*6,2,0.1)),
                 "lower" = rnorm(7*6,5,1) - abs(rnorm(7*6,2,0.1))
)
head(dat)



基础版本绘图

cols <- c("#85BA8F", "#A3C8DC","#349839","#EA5D2D","#EABB77","#F09594") #设置颜色
p = ggplot(dat,aes(x = time, y = value,fill = method)) +                                                       
  geom_line(aes(color = method)) + #添加线
  geom_point(aes(color = method)) + #添加散点
  geom_ribbon(aes(ymin=lower, ymax=upper), alpha=0.3) + #添加区间
  scale_x_continuous(breaks = 2013:2019) +
  facet_wrap(vars(method),nrow = 4) + 
  theme_bw() + ylab("Value") + xlab("Time") + #主题设置
  theme(panel.grid = element_blank())
p


基础版本


刻度尺修改

默认情况下,x、y 轴刻度是固定的,即,scales = "fixed"。具体可以参考:https://ggplot2-book.org/facet.html

x 轴

利用参数 scales = "free_x",修改 x 轴刻度尺。

p + facet_wrap(vars(method),nrow = 4,scales = "free_x")



修改 x 轴刻度

y 轴

利用参数 scales = free_y,修改 y 轴刻度尺。

p + facet_wrap(vars(method),nrow = 4,scales = "free_y")



修改 y 刻度

双轴

利用参数 scales = free,修改 x 和 y 轴刻度尺。

p + facet_wrap(vars(method),nrow = 4,scales = "free")



修改双轴刻度

标题框调整

这一部分都是在 theme() 中进行调整。具体可以参考:https://ggplot2-book.org/polishing.html。

位置调整

修改 strip.position 进行位置调整。

p + facet_wrap(vars(method),nrow = 3,strip.position = "left")


位置调整

去除标题框背景

利用 strip.background = element_blank() 去除标题框背景。

p + theme(
        strip.background = element_blank() #去除标题框背景
  )


去除标题框背景

修改标题框背景颜色

利用 strip.background = element_rect() 修改标题框背景颜色。

p + theme(strip.background=element_rect(colour="black",
                                      fill="#2072A8"))


修改标题框背景颜色

修改标题框文字颜色

利用 strip.text.x=element_text() 修改标题框文字颜色。

p +  theme(strip.text.x=element_text(colour="white"))


修改标题框文字颜色

删除标题框

利用 strip.text.x = element_blank() 删除标题框。

p +  theme(strip.text.x = element_blank())


删除标题框

小编有话说

如果觉得有帮助的话,欢迎点赞,分享~

参考资料

[1]

《ggplot2: Elegant Graphics for Data Analysis》: https://ggplot2-book.org

[2]

《R语言教程》: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/ggplot2.html

目录
相关文章
|
数据可视化 数据挖掘 数据处理
R绘图 | 浅谈散点图及其变体的作图逻辑
R绘图 | 浅谈散点图及其变体的作图逻辑
247 0
|
数据可视化
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
19203 2
|
2月前
|
JSON JavaScript Linux
绘图框架 plotly 知识点补充(绘制子图,图表保存)
绘图框架 plotly 知识点补充(绘制子图,图表保存)
57 13
|
6月前
|
数据可视化
绘制GGPLOT2双色XY区间面积图组合交叉折线图数据可视化
绘制GGPLOT2双色XY区间面积图组合交叉折线图数据可视化
|
6月前
|
Python
matplotlib绘制动态瀑布图
matplotlib绘制动态瀑布图
|
C++ Python
Python绘制比例直方柱状比重图
Python绘制比例直方柱状比重图
214 1
Python绘制比例直方柱状比重图
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
179 0
如何用ggplot2绘制基因功能富集气泡图?
如何用ggplot2绘制基因功能富集气泡图?
|
存储 Go
速绘丨GO富集气泡图绘制方法,利用R语言ggplot2包快速绘制,完整脚本可重复绘图
速绘丨GO富集气泡图绘制方法,利用R语言ggplot2包快速绘制,完整脚本可重复绘图
|
数据可视化 数据挖掘 Linux
科研绘图丨使用R语言Pheatmap包快速绘制基因表达量热图的方法,支持聚类和配色自定义修改
科研绘图丨使用R语言Pheatmap包快速绘制基因表达量热图的方法,支持聚类和配色自定义修改