📜  在 R 中并排创建多个条形图(1)

📅  最后修改于: 2023-12-03 14:51:07.421000             🧑  作者: Mango

在 R 中并排创建多个条形图

在 R 中创建并排的条形图可以帮助我们直观地比较多组数据,特别是在数据量较大时更能显示优势。在这里将会介绍如何使用 R 中的 ggplot2 包来快速创建并排的条形图。

准备数据

首先,我们需要准备一组数据来进行演示。在这里我们使用 R 自带的 diamonds 数据集。该数据集包含 10 个变量,分别为钻石的各种属性,如克拉数、颜色等等,共计 53940 行。

library(ggplot2)

# 加载数据集
data(diamonds)

# 分别计算各等级钻石的平均价格
df <- diamonds %>% 
  group_by(cut) %>% 
  summarise(mean_price = mean(price))
创建并排条形图
首先,创建一个条形图

我们使用 ggplot2 包中的 geom_bar() 函数来创建条形图。在这里我们创建了一个表示各个钻石等级平均价格的条形图。

p1 <- ggplot(df, aes(x = cut, y = mean_price)) + 
  geom_bar(stat = "identity", fill = "steelblue") +
  theme_classic() +
  labs(title = "钻石等级与价格", x = NULL, y = "平均价格")
p1
在这个条形图的基础上添加一个额外的条形图

现在我们已经有了一个条形图,接下来我们可以在同一张图中创建并排的另一个条形图。首先,我们需要使用 facet_grid() 函数将两张图合并到一起。

p2 <- p1 + facet_grid(. ~ cut)
p2
旋转图例项

为了让图例不重叠,我们可以将其旋转 90 度。

p3 <- p2 + theme(legend.position = "bottom",
                 legend.box = "horizontal",
                 legend.key.width = unit(2, "cm"),
                 legend.title = element_blank(),
                 legend.text = element_text(angle = 90))
p3
调整图表大小和标签位置

最后,我们可以对图表的整体大小进行调整,并且移动 y 轴的标签位置,使其不重叠。

p4 <- p3 + theme(plot.title = element_text(size = 20, hjust = 0.5),
                 axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) +
  labs(title = "钻石等级与价格",
       x = NULL,
       y = "平均价格(美元)")
p4

现在我们已经成功地创建了并排的条形图。ggplot2 包还提供了更多优秀的函数和工具来帮助我们创建更加复杂的图表,例如直方图、散点图和线图等等。