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

如何用ggplot2在R中标记fastfood数据集钙属性的最大值点?

给钙属性最大值点添加红色圆圈标记的解决方案

你可以通过在原有散点图基础上额外叠加一层geom_point()来标记最大值点,这里提供两种实用方法:

方法一:直接基于数据值筛选

不需要依赖已计算的indices,直接在绘图时筛选出钙含量等于最大值的行,设置红色圆圈样式:

install.packages("openintro")
library(openintro)
install.packages("ggplot2")
library(ggplot2)

# 加载数据
data(fastfood)
# 找出钙的最大值
max.calcium <- max(na.omit(fastfood$calcium))

ggplot(fastfood, aes(x=seq_along(calcium), y=calcium)) +
  geom_point() +  # 绘制所有点
  # 叠加最大值点的红色圆圈标记
  geom_point(data = subset(fastfood, calcium == max.calcium), 
             color = "red", size = 3, shape = 1) +  # shape=1是空心圆圈,shape=16是实心点
  xlab("Index") + 
  ylab("Calcium") +
  ggtitle("Scatterplot of X vs Y with Outliers Highlighted") +
  theme_bw()

方法二:利用已计算的索引值

既然你已经算出了最大值的索引indices,可以直接用这个索引提取对应行数据来标记:

install.packages("openintro")
library(openintro)
install.packages("ggplot2")
library(ggplot2)

# 加载数据
data(fastfood)
# 找出钙的最大值及其索引
max.calcium <- max(na.omit(fastfood$calcium))
indices <- which(fastfood$calcium == max.calcium, arr.ind = TRUE)

ggplot(fastfood, aes(x=seq_along(calcium), y=calcium)) +
  geom_point() +
  # 使用索引筛选最大值点,添加红色圆圈
  geom_point(data = fastfood[indices, ], 
             color = "red", size = 3, shape = 1) +
  xlab("Index") + 
  ylab("Calcium") +
  ggtitle("Scatterplot of X vs Y with Outliers Highlighted") +
  theme_bw()

小说明

  • shape=1是空心红色圆圈,如果你想要实心红点可以改成shape=16
  • size=3可以根据需求调整标记的大小,数值越大标记越显眼

内容的提问来源于stack exchange,提问作者Pantaléon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:57:23