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
相关产品推荐
相关产品推荐

