ggplot2-分面(facet) 一页多图
本文更新地址:http://blog.csdn.net/tanzuozhev
本文在 http://www.cookbook-r.com/Graphs/Facets_(ggplot2)/的基础上加入了自己的理解
ggplot2的数据分面就是根据数据中的不同分组,绘制多个图形.
数据预览
library(reshape2)
head(tips)
## total_bill tip sex smoker day time size
## 1 16.99 1.01 Female No Sun Dinner 2
## 2 10.34 1.66 Male No Sun Dinner 3
## 3 21.01 3.50 Male No Sun Dinner 3
## 4 23.68 3.31 Male No Sun Dinner 2
## 5 24.59 3.61 Female No Sun Dinner 4
## 6 25.29 4.71 Male No Sun Dinner 4
绘制散点图
library(ggplot2)sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) + geom_point(shape=1)
sp
facet_grid
facet_grid()
可以根据数据的不同分组, 将图形按照 水平或者垂直方向 进行分割.共享x轴或者轴.
# 垂直方向进行分割
sp + facet_grid(sex ~ .)
# 水平方向分割
sp + facet_grid(. ~ sex)
# 对 sex 进行垂直分割, 对 day 进行水平分割
sp + facet_grid(sex ~ day)
facet_wrap
facet_wrap()
可以根据行列的数值进行分割
# 水平分割, 分为两列
sp + facet_wrap( ~ day, ncol=2)
修改分页的标签外观
sp + facet_grid(sex ~ day) +theme(strip.text.x = element_text(size=8, angle=75),strip.text.y = element_text(size=12, face="bold"),strip.background = element_rect(colour="red", fill="#CCCCFF"))
修改分页标签文字
labels <- c(Female = "Women", Male = "Men")
sp + facet_grid(. ~ sex, labeller=labeller(sex = labels))
或者直接进行赋值
tips2 <- tips
levels(tips2$sex)[levels(tips2$sex)=="Female"] <- "Women"
levels(tips2$sex)[levels(tips2$sex)=="Male"] <- "Men"
head(tips2, 3)
## total_bill tip sex smoker day time size
## 1 16.99 1.01 Women No Sun Dinner 2
## 2 10.34 1.66 Men No Sun Dinner 3
## 3 21.01 3.50 Men No Sun Dinner 3
# Both of these will give the same output:
sp2 <- ggplot(tips2, aes(x=total_bill, y=tip/total_bill)) + geom_point(shape=1)
sp2 + facet_grid(. ~ sex)
labeller
labeller()
通过输入一个方法
, 对字符串进行该方法
处理的,重新返回字符串.
# Reverse each strings in a character vector
reverse <- function(strings) {strings <- strsplit(strings, "")vapply(strings, function(x) {paste(rev(x), collapse = "")}, FUN.VALUE = character(1))
}sp + facet_grid(. ~ sex, labeller=labeller(sex = reverse))
设置范围
一般情况下, 坐标轴的范围是固定的,也就是每幅图都有相同的尺寸和范围, 当然也可以设置free
, free_x
, 或者 free_y
自由改变坐标轴的范围.
hp <- ggplot(tips, aes(x=total_bill)) + geom_histogram(binwidth=2,colour="white")# Histogram of total_bill, divided by sex and smoker
hp + facet_grid(sex ~ smoker)
# scales="free_y", y轴自由设置
hp + facet_grid(sex ~ smoker, scales="free_y")
# With panels that have the same scaling, but different range (and therefore different physical sizes)
hp + facet_grid(sex ~ smoker, scales="free", space="free")
ggplot2-分面(facet) 一页多图相关推荐
- ggplot2 分面相关设置(facet)
总结学习,ggplot 1.0,2.0 后,已经大致画出符合需求的图,并能对坐标轴,图例进行修改.分面画图,和一页多图可以更好的将数据分类展示出来. 分面 分面分成两种网格分面(facet_grid( ...
- R语言ggplot2可视化分组变量下的数据分布(线条、色彩配置)、WVPlots包的ShadowHist函数比较分组下的数据直方图、ggplot2分面图facet_wrap可视化分组变量下的数据分布
R语言ggplot2可视化分组变量下的数据分布(线条.色彩配置).WVPlots包的ShadowHist函数比较分组下的数据直方图.ggplot2分面图facet_wrap可视化分组变量下的数据分布 ...
- R语言ggplot2可视化(facet图)使得第一个子图的坐标轴范围一致
R语言ggplot2可视化(facet图)使得第一个子图的坐标轴范围一致 目录 R语言ggplot2可视化(facet图)使得第一个子图的坐标轴范围一致
- ggplot2如何实现1页多图
看到论坛上好多人在问 ggplot2 怎么画1页多图,par参数在这里不起作用.一种方法是通过分面facet_grid,还有一种方法是通过视图窗口viewport和矩形网格grid,具体代码如下(以第 ...
- r语言ggplot2一夜多图_关于GGPLOT2出图里的一页多图模式
由于出图需求,需要使用一页多图的方式出图.对照着<GGPLOT2:数据分析与图形艺术>书上的程序方法测试了下,不管的计算方式还是GRID.LAYOUT方式,两种排版方式都出现了同样的错误. ...
- ggplot2 一页多图排版的简便方法
前文链接 title: 'ggplot2 一页多图排版的简便方法' output: html_document knitr::opts_chunk$set(echo = F, message = F) ...
- ggplot2-一页多图(不同来源, 灵活绘制)
本文更新地址:http://blog.csdn.net/tanzuozhev 本文在 http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_p ...
- ggplot2版聚类物种丰度堆叠图
文章目录 写在前面 加载依赖关系 导入数据 ggtree绘制聚类树 物种组成数据 整理成facet需要的格式 保证颜色填充独立性 分面组合树和柱图 修改配色 ggtree调整布局 添加样本其他信息 树 ...
- ggplot2分面柱状图柱子比例一致_R语言柱状图
气象水文科研猫公众号交流邮箱:leolovehydrometeor@hotmail.com欢迎投稿&批评指正如有侵权且本公众号未能正确引用原文,请联系删除,谢谢理解.谢谢配合. #openai ...
最新文章
- 开发日记-20190823 linux有名管道fifo,进程间通信
- manual start user profile import
- Interpreter(解释器)--类行为型模式
- matlab圆形器件,计算围绕点+ Matlab的圆形箱
- vue 多个回调_Vue 进阶面试必问,异步更新机制和 nextTick 原理
- 女子在朋友圈辱骂前男友被起诉,最后法院判决结果舒适...
- nodejs进入mysql数据库_nodejs简单访问及操作mysql数据库的方法示例
- CSS-Position用法的理解
- 大数据分析应具备哪些属性
- lr中错误解决方法(收集)
- 如何开发 Web 应用程序
- vivado simulation仿真(38译码器实现)
- 【产业互联网周报】AWS 全球换帅,中国区发布战略;杨杰回应回A,中移动计划千亿投5G;全球缺芯潮持续...
- linux运维经验总结
- 6572 Phone call分析
- 【ZT】【详细教程】WPS如何关闭自动更新和WPS热点?(ksomisc.exe)
- SketchUp模型组件【iMod · 精选242 —— 现代客厅SU模型】
- MYSQL数据库 增删改查基础语句
- 中国移动说:给你免费发短信的工具
- 速学堂(java)第八章编程题答案自写