在R语言中,怎么把两个图生成在一个界面
时间: 2024-03-03 22:49:18 浏览: 30
在R语言中可以使用par()函数、layout()函数或者gridExtra包来将两个图生成在一个界面。下面分别介绍这三种方法的实现方式:
1. 使用par()函数
```R
# 创建两个数据向量
x1 <- c(1, 2, 3, 4, 5)
y1 <- c(3, 5, 2, 7, 4)
x2 <- c(1, 2, 3, 4, 5)
y2 <- c(2, 4, 1, 6, 3)
# 绘制第一个图
plot(x1, y1)
# 开启新的绘图区域
par(new = TRUE)
# 绘制第二个图
plot(x2, y2, axes = FALSE, xlab = "", ylab = "")
# 添加图例
legend("topleft", legend = c("图1", "图2"), lty = 1, col = c("black", "red"))
```
在这个示例中,我们使用plot()函数分别绘制了两个图,然后使用par()函数开启一个新的绘图区域,绘制第二个图时设置axes参数为FALSE表示不显示坐标轴,xlab和ylab参数设为空表示不显示轴标签。最后使用legend()函数添加图例。
2. 使用layout()函数
```R
# 创建两个数据向量
x1 <- c(1, 2, 3, 4, 5)
y1 <- c(3, 5, 2, 7, 4)
x2 <- c(1, 2, 3, 4, 5)
y2 <- c(2, 4, 1, 6, 3)
# 设置布局
layout(matrix(c(1, 2), nrow = 1))
# 绘制第一个图
plot(x1, y1)
# 绘制第二个图
plot(x2, y2, axes = FALSE, xlab = "", ylab = "")
# 添加图例
legend("topleft", legend = c("图1", "图2"), lty = 1, col = c("black", "red"))
```
在这个示例中,我们使用layout()函数设置了一个布局,将两个图分别放在一行的两个区域中。然后分别使用plot()函数绘制两个图,最后使用legend()函数添加图例。
3. 使用gridExtra包
```R
# 加载gridExtra包
library(gridExtra)
# 创建两个数据向量
x1 <- c(1, 2, 3, 4, 5)
y1 <- c(3, 5, 2, 7, 4)
x2 <- c(1, 2, 3, 4, 5)
y2 <- c(2, 4, 1, 6, 3)
# 绘制第一个图
p1 <- ggplot() + geom_point(aes(x1, y1))
# 绘制第二个图
p2 <- ggplot() + geom_point(aes(x2, y2)) + theme_void()
# 将两个图合并
grid.arrange(p1, p2, nrow = 1, widths = c(1, 1.2))
# 添加图例
legend("topleft", legend = c("图1", "图2"), lty = 1, col = c("black", "red"), bty = "n", cex = 1.2)
```
在这个示例中,我们使用ggplot2包绘制了两个图,然后使用gridExtra包中的grid.arrange()函数将两个图合并到一起,nrow参数设为1表示将两个图放在一行,widths参数分别指定了两个图的宽度比例。最后使用legend()函数添加图例。