R语言与医学统计图形-【25】ggplot图形分面
ggplot2绘图系统——图形分面
ggplot2的分面faceting,主要有三个函数:
- facet_grid
- facet_wrap
- facet_null (不分面)
1. facet_grid函数
facet_grid函数及参数:
facet_grid(facets, #x~y, x+y~z
margins = F, #仅展示组合数据
scales = 'fixed', #是否通用坐标轴,free_x/free_y/free
space = 'fixed', #是否保持相同面积
shrink = T,
labeller = 'label_value', #添加标签
as.table = T,
switch = , #调整分面标签位置,both/x/y
drop = T)
基本用法
p <- ggplot(mpg,aes(displ,cty))+geom_point()
a <- p+facet_grid(.~cyl) #cyl列
b <- p+facet_grid(drv~.) #drv行
c <- p+facet_grid(drv~cyl) #drv行cyl列
grid.arrange(a,b,c,ncol=1)

分面的灵活性。
分别定义不同图形的坐标轴取值范围(scales参数)或不同分面面积(space参数)。
mt <- ggplot(mtcars,aes(mpg,wt,color=factor(cyl)))+
geom_point()
mt+facet_grid(.~cyl,scales = 'free')

ggplot(mpg,aes(drv,model))+geom_point()+
facet_grid(manufacturer~.,scales = 'free',space = 'free')+
theme(strip.text.y = element_text(angle=0)) #设置y轴标签

分面标签设置
默认标签使对应分类水平的名称,可通过设置labeller参数及对应的函数对分面标签进行修改。函数主要有:
- label_both (最常用):讲变量名和分类水平一起展示;
- label_bquote(很适合填充数学表达式标签):接受rows和cols参数,分别定义横向和纵向分面标签;
- label_context:与label_both类似;
- label_parse:与label_bquote类似。
p <- ggplot(mtcars,aes(wt,mpg))+geom_point()
p+facet_grid(vs~cyl,labeller = label_both)+ #设置分面标签
theme(strip.text = element_text(color='red'))
p+facet_grid(.~vs,labeller = label_bquote(cols = alpha ^ .(vs)))
#这里只设置cols,即必须存在列分面


改变标签的方向(默认右,上),switch参数。
p+facet_grid(am~gear,switch='both')+ #右上变为左下
theme(strip.background = element_blank()) #去掉标签背景

多重分面:三个及以上变量同时分面。
mg <- ggplot(mtcars,aes(x=mpg,y=wt))+geom_point()
mg+facet_grid(vs+am~gear,labeller = label_both)
mg+facet_grid(vs+am~gear,margins = T,labeller = label_both)
#margin不仅展示不同组合分面,还展示总体数据(all)分布的分面
mg+facet_grid(vs+am~gear,margins = 'am',labeller = label_both)
#am在切分不同水平和不切分时的数据分面



2. facet_wrap函数
与facet_grid的最大区别在于:能够自定义分面行列数。
函数及其参数:
facet_wrap(facets = ,
nrow = , #分面行数
ncol = , #分面列数
scales = 'fixed',
shrink = T,
labeller = 'label_value',
as.table = T,
switch = ,
drop = T,
dir = 'h') #h/v,按行/列排列分面
R语言与医学统计图形-【25】ggplot图形分面的更多相关文章
- R语言与医学统计图形【1】par函数
张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...
- R语言与医学统计图形【4】直方图、金字塔图
R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...
- R语言与医学统计图形【2】散点图、盒形图
R语言基础绘图系统 基础图形--散点图.盒形图 plot是一个泛型函数(generic method),对于不同的数据绘制不同的图形. par函数的大部分参数在plot中通用. 1.散点图 plot绘 ...
- R语言与医学统计图形【8】颜色的选取
R语言基础绘图系统 基础绘图包之低级绘图函数--内置颜色. 1.内置颜色选取 功能657种内置颜色.colors() 调色板函数:palette(), rgb(), rainbow(). palett ...
- R语言与医学统计图形【6】低级绘图函数
R语言基础绘图系统 基础绘图包之低级绘图函数--定义坐标轴.图例.文本 低级绘图函数:本身不具备图形绘制能力,只是在已有图形基础上添加元素. 函数 功能 arrows 添加箭头 axis 坐标轴 bo ...
- R语言与医学统计图形【5】饼图、条件图
R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...
- R语言与医学统计图形【3】条形图、误差图
R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...
- R语言与医学统计图形【7】低级绘图函数
R语言基础绘图系统 基础绘图包之低级绘图函数--气泡图.一页多图.背景网格.添加线条和散点.数学表达式 4.气泡图 symbols是高级绘图函数,可在图上添加标记,标记的形状包括:circles,sq ...
- R语言与医学统计图形-【24】ggplot位置调整函数
ggplot2绘图系统--位置调整函数 可以参数position来调整,也有专门的函数position_*系列来设置. 位置函数汇总: 1.排列 并排排列 mean <- runif(12,1, ...
随机推荐
- 改善深层神经网络-week1编程题(Regularization)
Regularization Deep Learning models have so much flexibility and capacity that overfitting can be a ...
- VS2015+OpenCV+Qt
VS2015+OpenCV+Qt 01.OpenCV 下载 进入官网链接: https://opencv.org,下载所需要的版本: 下载完成后直接双击,选择解压路径,解压到响应的文件夹中: 若之后需 ...
- 2021.9.7考试总结[NOIP模拟49]
T1 Reverse $BFS$暴力$O(n^2)$ 过程中重复枚举了很多点,考虑用链表记录当前点后面可到达的第一个未更新点. 搜索时枚举翻转子串的左端点,之后便可以算出翻转后$1$的位置. $cod ...
- pyqgis环境配置
配置pyqgis开发环境时,很多网上教程写的非常繁琐,这里仅仅找了一个最简单的配置方法,使用pycharm的IDE,安装QGIS软件后,在pycharm的ProjectInterpreter里面填写Q ...
- SCons - 简单而强大的项目编译脚本(原文https://www.cnblogs.com/binchen-china/p/5646791.html)
N年前学的makefile,当时还勉强能写一些简单的工程编译,现在已经基本忘了.makefile确实编写复杂,而且平时也不是经常使用,容易忘记.偶识了scons,一切都变的简单了.最近研究了下scon ...
- Python课程笔记(十一)
一.线程与多线程 1.线程与进程 线程指的是 进程(运行中的程序)中单一顺序的执行流. 多个独立执行的线程相加 = 一个进程 多线程程序是指一个程序中包含有多个执行流,多线程是实现并发机制的一种有效手 ...
- webshell绕过D盾
PHP常见的代码执行函数: eval() assert() preg_replace() create_function() array_map() call_user_func() call_use ...
- Codeforces 1009E Intercity Travelling | 概率与期望
题目链接 题目大意: 一个人要从$A$地前往$B$地,两地相距$N$千米,$A$地在第$0$千米处,$B$地在第$N$千米处. 从$A$地开始,每隔$1$千米都有$\dfrac{1}{2}$的概率拥有 ...
- [命令行]Mysql 导入 excel 文件
将 excel 表格中的数据批量导入数据库中 将要导入的表删除字段名,只留下要导入的数据. 将文件另存为 *.csv格式,可以用记事本打开(实际上就是标准的逗号分隔的数据 进入mysql,输入命令,打 ...
- 印象最深的一个bug——排查修复问题事件BEX引发的谷歌浏览器闪退崩溃异常
前言 最近,我们部门负责项目运维的小王频频接到甲方的反馈,运行的项目使用谷歌浏览器登录后,每次点击处理2秒后,浏览器自动闪退崩溃.小王同学折腾了一个星期,还没找到问题的原因.甲方客户都把问题反馈给项目 ...