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

如何用ggplot将同一列内两类物种按不同颜色绘制散点图

问题原因

你之前的代码存在以下问题导致颜色映射失效:

  • ggplot调用拼写错误,将ggplot写为Flowerplot
  • 数据框名称前后不一致,混用Flower和flowers
  • 在geom_point中重复设置color参数,覆盖了aes()中声明的颜色映射
  • 存在括号未闭合的语法错误
  • 不需要用Flower$Species这种跨数据框引用列的写法,指定数据框参数后aes()内直接写列名即可

基础实现:自动按物种分类着色

直接在全局aes中指定color = Species即可自动区分不同物种的点颜色:

library(ggplot2)
FlowerPlot <- ggplot(Flower, aes(x = Height, y = Rate, color = Species)) +
  geom_point(size = 7) +
  theme_bw() +
  theme(text = element_text(size = 15))
# 输出图像
FlowerPlot

自定义单个物种颜色方案

如果需要单独给玫瑰、雏菊指定自定义颜色,使用scale_color_manual即可实现,不需要你提到的Flower$Species$Rose写法,直接匹配分类名赋值即可:

library(ggplot2)
FlowerPlot <- ggplot(Flower, aes(x = Height, y = Rate, color = Species)) +
  geom_point(size = 7) +
  # 引号内的分类名需要和你Species列的实际取值完全一致,可自行调整对应颜色
  scale_color_manual(values = c("Rose" = "red", "Daisy" = "yellow")) +
  # 如果Species列是中文分类,改为:
  # scale_color_manual(values = c("玫瑰" = "红色", "雏菊" = "黄色")) +
  theme_bw() +
  theme(text = element_text(size = 15))
# 输出图像
FlowerPlot

内容的提问来源于stack exchange,提问作者RStudio_Student

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:54:01