如何用dplyr与ggplot合并分组散点并按类别区分颜色
一步实现双类别散点图合并展示
嘿,你完全不用分开生成两个图再合并!咱们可以用dplyr筛选出目标数据后,直接在ggplot里通过颜色映射把两个类别放在同一张图里,操作更简洁还自带图例,方便对比数据。
完整实现代码
library(dplyr) library(ggplot2) # 筛选出setosa和virginica两个物种的数据,一步完成 iris_filtered <- iris %>% filter(Species %in% c("setosa", "virginica")) # 绘制同一张散点图,用颜色区分不同物种 ggplot(data = iris_filtered) + aes(x = Petal.Width, y = Petal.Length, color = Species) + # 将Species映射到color参数 geom_point(size = 2) + # 可以调整点的大小让图更清晰 labs(title = "Petal Length vs Width: Setosa vs Virginica", x = "Petal Width", y = "Petal Length") + theme_minimal()
关键细节解释
- 筛选数据时用
%in%代替两次filter,一次就能选中多个目标类别,比分开筛选更高效; - 在
aes()里加入color = Species,ggplot会自动为不同物种分配不同颜色,同时生成对应的图例; - 额外添加的
labs()和theme_minimal()是为了让图的可读性更强,你可以根据自己的需求调整样式。
如果你不想提前保存筛选后的数据,也可以把筛选和绘图合并成一条链式代码:
iris %>% filter(Species %in% c("setosa", "virginica")) %>% ggplot() + aes(x = Petal.Width, y = Petal.Length, color = Species) + geom_point() + labs(title = "Petal Dimensions Comparison")
这样就能直接得到一张包含两个物种散点、颜色区分清晰的图啦!
内容的提问来源于stack exchange,提问作者Rhodo
相关产品推荐
相关产品推荐

