📜  在R中组合来自不同DataFrame的两个ggplot2图(1)

📅  最后修改于: 2023-12-03 15:23:27.463000             🧑  作者: Mango

在R中组合来自不同DataFrame的两个ggplot2图

在数据分析和可视化过程中,经常需要从不同的DataFrame中提取数据,并将其呈现在一个图中。使用ggplot2包可以轻松创建美观的图形。本文将介绍如何在R中组合来自不同DataFrame的两个ggplot2图。

准备工作

首先,我们需要安装并加载ggplot2包:

install.packages("ggplot2")
library(ggplot2)

接下来,我们需要准备两个不同的数据框,以用于提取数据。

假设我们有两个数据框:df1df2

| Name | Age | Gender | | ---- | --- | ------ | | Tom | 25 | Male | | Lily | 30 | Female | | Jack | 28 | Male |

df1 <- data.frame(Name = c("Tom", "Lily", "Jack"),
                  Age = c(25, 30, 28),
                  Gender = c("Male", "Female", "Male"))

| Name | Score | | ------ | ----- | | Tom | 85 | | Lily | 90 | | David | 80 | | Rachel | 95 |

df2 <- data.frame(Name = c("Tom", "Lily", "David", "Rachel"),
                  Score = c(85, 90, 80, 95))
创建ggplot2图

接下来,我们将创建两个ggplot2图。假设我们要绘制一个柱状图和一个散点图。

# 创建柱状图
p1 <- ggplot(df1, aes(x = Name, y = Age, fill = Gender)) +
  geom_bar(stat = "identity") +
  labs(title = "Age by Gender", x = "Name", y = "Age")

# 创建散点图
p2 <- ggplot(df2, aes(x = Name, y = Score)) +
  geom_point() +
  labs(title = "Scores by Name", x = "Name", y = "Score")

现在,我们有了两个单独的ggplot2图表,我们需要将它们组合在一起。

组合ggplot2图

我们可以使用patchwork包中的wrap_plots()函数将两个ggplot2图表组合在一起。

# 安装并加载patchwork包
install.packages("patchwork")
library(patchwork)

# 将两个ggplot2图表组合在一起
p1 + p2 + plot_layout(ncol = 2, align = "v")

这将产生一个包含两个子图的新图表,其中一个子图是柱状图,另一个是散点图。

# 返回的代码片段如下
```r
# 安装并加载ggplot2包
install.packages("ggplot2")
library(ggplot2)

# 准备数据
df1 <- data.frame(Name = c("Tom", "Lily", "Jack"),
                  Age = c(25, 30, 28),
                  Gender = c("Male", "Female", "Male"))
df2 <- data.frame(Name = c("Tom", "Lily", "David", "Rachel"),
                  Score = c(85, 90, 80, 95))

# 创建柱状图
p1 <- ggplot(df1, aes(x = Name, y = Age, fill = Gender)) +
  geom_bar(stat = "identity") +
  labs(title = "Age by Gender", x = "Name", y = "Age")

# 创建散点图
p2 <- ggplot(df2, aes(x = Name, y = Score)) +
  geom_point() +
  labs(title = "Scores by Name", x = "Name", y = "Score")

# 安装并加载patchwork包
install.packages("patchwork")
library(patchwork)

# 将两个ggplot2图表组合在一起
p1 + p2 + plot_layout(ncol = 2, align = "v")