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

ggplot绘制随Spell.Length变化的连续中位数与百分位曲线求助

问题原因

你当前使用crossbar作为stat_summary的几何对象,该对象会为每个Spell.Length取值生成独立的横向中位数短杠,不会自动连接成连续曲线,同时你也没有配置百分位区间的绘制逻辑,所以百分位绘制失败。

修正后代码
library(ggplot2)

# 绘制散点+连续中位数线+25%/75%分位区间
ggplot(df,aes(x=Spell.Length,y=Growth.Rate)) +
  geom_point(alpha = 0.3) + # 调低散点透明度避免重叠遮挡
  # 绘制25%~75%分位填充区间
  stat_summary(
    fun.min = function(y) quantile(y, 0.25),
    fun.max = function(y) quantile(y, 0.75),
    geom = "ribbon", 
    fill = "grey",
    alpha = 0.2
  ) +
  # 绘制连续中位数曲线
  stat_summary(
    fun = median,
    geom = "line", 
    colour = "red",
    linewidth = 1,
    group = 1 # 如果你的Spell.Length是分类变量而非连续数值,必须保留这行
  )
可选调整说明
  • 如果你需要其他分位区间,修改quantile的第二个参数即可,比如要10%/90%分位就改成0.1和0.9
  • alpha参数控制透明度,你可以根据实际显示效果调整数值
  • 如果Spell.Length是连续数值型变量,可以删除group = 1配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:42:04