📅  最后修改于: 2023-12-03 14:51:07.421000             🧑  作者: Mango
在 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
包还提供了更多优秀的函数和工具来帮助我们创建更加复杂的图表,例如直方图、散点图和线图等等。