You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:51:30