R可视化 | 混合多个图形
时间:2022-07-24
本文章向大家介绍R可视化 | 混合多个图形,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
作者:庄闪闪
在同一页面上混合多个图形是一种常见的做法。
它可以在同一数字上总结大量信息,例如,它被广泛用于科学出版物。
par()
一页多图用mfrow参数或mfcol参数规定,这也是我几年前经常用的一种方法。
x <- rnorm(50)
y <- rnorm(50,2,2)
随便模拟产生数据,并对数据绘制一些简单的图,用该函数将一页中对他们进行全部展示。
par(mfrow=c(2,2))
plot(x, y, xlab = "", ylab = "")
hist(x,main='')
qqnorm(x,main = '');qqline(x)
barplot(x, axes = FALSE, space = 0,col='white')
layout()
layout(mat, widths = rep.int(1, ncol(mat)),
heights = rep.int(1, nrow(mat)), respect = FALSE)
- mat 参数为一个矩阵,提供了作图的顺序以及图形版面的安排。0代表空缺,不绘制图形,大于0 的数代表绘图顺序,相同数字代表占位符。
- widths 和 heights 参数提供了各个矩形作图区域的长和宽的比例。
- respect 参数控制着各图形内的横纵轴刻度长度的比例尺是否一样。
- n 参数为欲显示的区域的序号。
生成2行2列的版面,并设置宽度和高度。par()中oma参数指四个外边空的行数
par(oma = c(2,2,2,2))
nf <- layout(matrix(c(1,2,1,3),2,2),widths = c(1, 3), heights = c(1, 2))
layout.show(nf)
再将各个图进行填充
plot(x, y, xlim = xrange, ylim = yrange, xlab = "", ylab = "")
barplot(xhist$counts, axes = FALSE, ylim = c(0, top), space = 0)
barplot(yhist$counts, axes = FALSE, xlim = c(0, top), space = 0, horiz = TRUE)
前面两种方法,说实话可以实现,但是比较费劲。那么下面看看gridExtra包。
gridExtra包—grid.arrange()
gridExtra包让混合多个图片变得轻而易举。它提供了grid.arrange() 函数来完成 这个任务。它的nrow参数允许指定如何安排布局。
对于更复杂的布局,arrangeGrob() 函数允许做一些嵌套。这里有 4 个 例子来说明 gridExtra 是如何工作的:
library(ggplot2)
library(gridExtra)
这里我们用ggplot绘图,并存在变量名称(g1,g2,g3)中,然后用grid.arrange()将各个变量名称展现出来。
# Make 3 simple graphics:
g1 <- ggplot(mtcars, aes(x=qsec)) + geom_density(fill="slateblue")
g2 <- ggplot(mtcars, aes(x=drat, y=qsec, color=cyl)) + geom_point(size=5) + theme(legend.position="none")
g3 <- ggplot(mtcars, aes(x=factor(cyl), y=qsec, fill=cyl)) + geom_boxplot() + theme(legend.position="none")
g4 <- ggplot(mtcars , aes(x=factor(cyl), fill=factor(cyl))) + geom_bar()
# Plots
grid.arrange(g1, g2, g3, nrow = 3)
当然可以使用参数arrangeGrob(),下面绘制了两行,第一行是g2,第二行是g3,g4.
grid.arrange(g2, arrangeGrob(g3, g4, ncol=2), nrow = 2)
下面绘制了两行,第一行是g2,第二行是g3,g4,g1.
grid.arrange(g2, arrangeGrob(g3, g4, g1,ncol=3), nrow = 2)
参考资料
[1]
《R语言教程》——李东风
[2]
R Graphical Representation – Multiple Plots in One Graph
[3]
http://lightonphiri.org/blog/r-graphical-representation-multiple-plots-in-one-graph
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Prometheus 入门教程(一):Prometheus 快速入门
- 开发|ShiroConfig实现基础拦截
- 推荐几个 VS Code 扩展、主题和字体
- 万字长文 | 这可能是东半球最保姆级的后台服务器开发学习路线
- Python|对多角星的绘制
- Pythyon|当中秋遇上国庆
- 清华老哥要是会 screen,是不是就不用拖着电脑骑车了
- Python|用turtle画笔制作奥运五环
- 2 行代码,将 .NET 执行时间降低 87%!(附代码)
- Web渗透测试|SQL报错注入
- Python|运算符的运用
- Windows下登录凭证窃取技巧
- 小浩发现这篇浮点数的文章讲的真不错!
- 安全攻击溯源思路及案例
- 图解:「归并排序」