R语言 绘制ggplot2图的非平衡网格
在这篇文章中,我们将看到如何在R编程语言中绘制ggplot2图的非平衡网格。我们主要使用 grid.arrange() 和 arrangeGrob() 函数。以下是这两个函数的简要信息。
- grid.arrange(): 它将计算出不同数量的行和列,以组织图,并形成图的嵌套布局。
语法: grid.arrange(plot, nrow, ncol)
参数
- plot: 我们要安排的ggplot2绘图
- nrow: 行的数量
- ncol: 列的数量
返回: 情节的安排
- arrangeGrob(): ,该函数需要许多参数,例如 layout_matrix, as.table, respect, top, bottom, left, right, 等等。
语法: arrangeGrob(…, heights)
参数
- ...:我们想安排在同一页上的ggplot2图块
- 高度: 这些图的高度
返回: 在同一页上用不同的网格排列多个图块
首先,我们应该加载一些将在本例中进一步使用的R包。我们将使用 ggplot2 包来绘制绘图,并使用 gridExtra 在绘图上绘制各种网格。
install.packages("ggplot2")
library("ggplot2")
install.packages("gridExtra")
library("gridExtra")
对于散点图的数据,我们使用 rnorm() 函数为 X 轴和 Y 轴挑选50个随机值,该函数可以生成随机的正常值。然后创建一个DataFrame并将其分配给 “data “数据对象。
data <- data.frame(x = rnorm(50), y = rnorm(50))
现在我们使用 ggplot() 函数创建一个散点图,并使用 geom_point() 函数使其散点化。
下面是实现 方法。
# Load Packages
library("ggplot2")
library("gridExtra")
# Create data for Plotting
data <- data.frame(x = rnorm(50), y = rnorm(50))
# Create Simple Scatter Plot
gplot <- ggplot(data, aes(x, y)) + geom_point(col = "green")
gplot
输出
简单的散点图
改变图的垂直网格
这里我们要改变图的垂直网格。我们使用 gridExtra 包的 grid.arrange() 函数。在grid.arrange()包中,我们把 gplot (我们的散点图)作为第一个参数,把 ncol 作为第二个参数。ncol只是在我们分配给ncol的值中垂直划分绘图区域。在这里,我们用 “ncol = 2 “将绘图的垂直网格改为绘图空间的一半。
代码
# Load Packages
library("ggplot2")
library("gridExtra")
# Create Data for plotting
data <- data.frame(x = rnorm(50), y = rnorm(50))
# Create ggplot2 Scatter Plot
gplot <- ggplot(data, aes(x, y)) + geom_point(col = "green")
# Change the plot grid to half of the plot space.
grid.arrange(gplot, ncol = 2)
输出
带有半垂直网格的散点图
改变图形的水平网格
为了改变绘图的水平网格,我们只需将grid.arrange()函数的ncol参数替换为 nrow 参数即可。在这里,我们用 “nrow = 2 “将绘图的水平网格改为绘图空间的一半。
代码
# Load Packages
library("ggplot2")
library("gridExtra")
# Create Data for plotting
data <- data.frame(x = rnorm(50), y = rnorm(50))
# Create ggplot2 Scatter Plot
gplot <- ggplot(data, aes(x, y)) + geom_point(col = "green")
# Change the plot Horizontal grid to half of the plot space.
grid.arrange(gplot, nrow = 2)
输出
带有一半水平网格的散点图
在同一绘图空间上绘制不同网格大小的多幅图
对于绘制不同尺寸的多个图,我们使用 arrangeGrob() 作为grid.arrange()函数的第二个参数,它将把每个图形的高度和宽度作为参数。首先,它将把gplot作为我们要创建的每个图形的参数,然后还用 heights 参数指定每个图的高度。
代码
# Load Packages
library("ggplot2")
library("gridExtra")
# Create Data for plotting
data <- data.frame(x = rnorm(50), y = rnorm(50))
# Create ggplot2 Scatter Plot
gplot <- ggplot(data, aes(x, y)) +
geom_point(col = "green")
# Create Multiple Plots with different size of grids.
grid.arrange(gplot,
arrangeGrob(gplot, gplot,
heights = c(0.4, 0.6)),
ncol = 2)
输出
不同大小的网格的多幅图