R语言 绘制ggplot2图的非平衡网格

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

输出

在R语言中绘制ggplot2图的非平衡网格

简单的散点图

改变图的垂直网格

这里我们要改变图的垂直网格。我们使用 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)

输出

在R语言中绘制ggplot2图的非平衡网格

带有半垂直网格的散点图

改变图形的水平网格

为了改变绘图的水平网格,我们只需将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)

输出

在R语言中绘制ggplot2图的非平衡网格

带有一半水平网格的散点图

在同一绘图空间上绘制不同网格大小的多幅图

对于绘制不同尺寸的多个图,我们使用 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)

输出

在R语言中绘制ggplot2图的非平衡网格

不同大小的网格的多幅图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程