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

使用ggplot2与geom_line绘制折线图报错求助

问题描述

运行ggplot2代码时出现如下报错:

In geom_line(stat = "summary", fun.y = mean) :
Ignoring unknown parameters: fun.y

原代码:

ggplot(aes(x = age, y = friend_count), data = pf) +
  coord_cartesian(xlim = c(13,90)) +
  geom_point(alpha = 0.05,
             position = position_jitter(h = 0),
             color = 'orange') +
  coord_trans(y = "sqrt") +
  geom_line(stat = 'summary', fun.y = mean) +
  geom_line(stat = 'summary', fun.y = quantile, fun.args = list(probs = .1)) +
  geom_line(stat = 'summary', fun.y = quantile, fun.args = list(probs = .9))

同时RStudio的linter对list()中的probs参数存在异议。

解决方案
  • 从ggplot2 3.0.0版本开始,fun.y参数已被废弃,替换为fun参数。所有用到fun.y的地方直接改成fun即可解决报错。
  • 针对linter的异议,改用stat_summary()结合geom="line"的写法,这是ggplot2更推荐的语法,既能让参数结构更清晰,也能解决linter的提示问题。

修改后的完整代码:

ggplot(aes(x = age, y = friend_count), data = pf) +
  coord_cartesian(xlim = c(13,90)) +
  geom_point(alpha = 0.05,
             position = position_jitter(h = 0),
             color = 'orange') +
  coord_trans(y = "sqrt") +
  stat_summary(geom = "line", fun = mean) +
  stat_summary(geom = "line", fun = quantile, fun.args = list(probs = 0.1)) +
  stat_summary(geom = "line", fun = quantile, fun.args = list(probs = 0.9))

补充:如果坚持保留geom_line(stat='summary')的写法,仅替换fun.y为fun也能解决报错,但stat_summary()的写法更符合ggplot2的语法设计逻辑,可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:22:16