R语言 patchwork包绘制图的组合
在这篇文章中,我们将讨论如何使用R编程语言中的patchwork包来绘制一个组合图。patchwork包使我们更容易在一张图中绘制不同的ggplots。我们将需要ggplot2包来绘制我们的数据,以及patchwork包来组合不同的ggplots。
让我们首先正常地、独立地绘制所有的图。
例子: 将数据集绘制成条形图
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
# Plotting the bar chart
gfg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species)) +
geom_bar(stat = "identity")
gfg1
输出:
条形图
例子: 将数据集绘制成散点图
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
# Scatterplot
gfg2 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) + geom_point()
gfg2
输出:
散点图
例子: 将数据集绘制成线状图
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
# Line plot
gfg3 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) + geom_line()
gfg3
输出:
线形图
现在让我们看看这三张图如何在不同的方向上组合。
纵向绘图
垂直方向结合了这些图,这些图被并排放在一起。我们将把上面的ggplot2图添加到一起,使其垂直排列。 + 运算符被用来在同一个图形中并排排列这些图。
例子: 在同一框架内垂直排列图块
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
gfg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) + geom_bar(stat = "identity")
gfg2 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) + geom_point()
gfg3 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) + geom_line()
# Combination of plots by arranging them side by side
gfg_comb_1 <- gfg1 + gfg2 + gfg3
gfg_comb_1
输出:
垂直方向
用不同的宽度进行排列
这些图的第二种组合是在同一图形窗口的多行和多列中以不同的宽度排列它们。不同的宽度方向将这些图按照宽度安排在不同的行中。基本上,第一个图被放置在第一行,其他两个图被放置在水平方向的下一行。
我们在要开始一个新行的那个位置使用斜线 (/) 运算符。所以我们把它放在第一个图的后面。然后,我们使用添加 ( + ) 运算符,将另外两个绘图水平地安排在下一个新行上。
例子: 安排不同宽度的图画
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
gfg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) +
geom_bar(stat = "identity")
gfg2 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) +
geom_point()
gfg3 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) +
geom_line()
# Arranging the plots in different widths
gfg_comb_2 <- gfg1 / (gfg2 + gfg3)
gfg_comb_2
输出:
不同宽度的方向
用不同的高度进行排列
这些图的第三种组合是在同一图形窗口的多行和多列中以不同高度排列。不同高度方向将这些图按照高度安排在不同的行中。基本上,前两个图是水平排列的,这里的最后一个图被放在第二个图的下面。
我们使用添加 (+) 运算符将前两个图水平排列。然后我们用斜线 (/) 操作符将第三个图放在第二个图下面的新行上。
例子: 安排不同高度的图谱
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
gfg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) +
geom_bar(stat = "identity")
gfg2 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) +
geom_point()
gfg3 <- ggplot(iris, aes(Sepal.Length, Petal.Length,
color = Species)) +
geom_line()
# Arrangement of plots according to
# different heights
gfg_comb_3 <- gfg1 + gfg2 / gfg3
gfg_comb_3
输出:
不同的高度方向
绘制水平图
绘图的最后一种组合是将它们水平排列。这些绘图被放置在一个下面。我们将使用斜线( / )操作符将这些图放在一个新的行中,一个在另一个图的下面。
例子: 垂直排列图谱
library(ggplot2)
library(patchwork)
data(iris)
head(iris)
gfg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species)) +
geom_bar(stat = "identity")
gfg2 <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species)) +
geom_point()
gfg3 <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species)) +
geom_line()
# Combination of plots by arranging them
# horizontally
gfg_comb_4 <- gfg1 / gfg2 / gfg3
gfg_comb_4
输出:
水平方向