简介
小编前段时间介绍了 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