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

如何程序化高亮每个x值对应的y最大值(R语言ggplot2)

程序化提取每个x对应的y最大值并高亮绘图

你可以用dplyr(属于tidyverse套件)的分组聚合功能自动计算每个x对应的y最大值,完全不用手动输入。修改后的代码如下:

library(tidyverse)

x <- c(1,1,1,1,1,      2,2,2,    3,3,3,3,3,     4,4,  5, 6,6,6,6,6,6)
y <- c(10,11,12,13,14, 22,20,21, 8,12,14,15,18, 9,10, 5, 22,21,20,9,7,5)
df <- data.frame(x,y)

# 自动计算每个x对应的y最大值
specials <- df %>%
  group_by(x) %>%
  summarize(max_y = max(y)) %>%
  ungroup() # 可选,取消分组状态避免后续潜在问题

ggplot(df, aes(x, y)) +
  geom_point() +
  geom_line(data = specials, aes(x = x, y = max_y), color = "red", size = 1) # 自定义颜色、粗细增强高亮效果

关键逻辑说明

  • group_by(x):按照x的取值对数据集分组,将相同x的行归为一组
  • summarize(max_y = max(y)):对每组自动计算y的最大值,生成包含x和对应最大值的新数据框
  • 不管数据集规模多大,这个逻辑都能自动遍历所有x的取值,无需手动查找或输入最大值

如果需要高亮最大值点而非连线,可替换或新增geom_point层:

geom_point(data = specials, aes(x = x, y = max_y), color = "red", size = 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:42:34