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

如何去除ggplot2绘制生存分析图表时出现的多余异常线条

异常原因

多余线条来自代码里的两处写法错误:

  1. 全局ggplot()映射里写了colour=as.factor("Site"),这里传入的是字符串常量"Site",不是数据集中的Site列,相当于凭空生成了一个所有观测值都为"Site"的分组,对应图里多余的单色线条。
  2. geom_point()和geom_path()层里都设置了group=1,这个参数会强制把所有数据点归为同一组连线,无视colour对应的分组设置,导致不同研究位点的点被跨组错误连接。
    另外代码里反复用Survival$索引原数据集列,而不是调用已经构建好的my_df里的列,也会加剧ggplot的映射混乱。
最优修复方案

直接修正映射逻辑,移除错误参数即可,修正后代码如下:

my_df <- data.frame(
  x = Survival$time, 
  y = Survival$`% survival`, 
  group = Survival$Site
)

ggplot(my_df, aes(x = x, y = y, colour = group)) +
  geom_point() +
  geom_path(na.rm = TRUE) +
  scale_color_discrete(name = "Site") +
  xlab("Time in Months") +
  ylab("Percent Survival") +
  theme(axis.line = element_line(colour = "black", size = 0.24))

修改点说明:

  • 全局美学映射直接引用my_df中已经整理好的列,不再重复索引原Survival数据框,避免映射冲突
  • 删除全局映射里错误的字符串常量colour设置,不再生成多余的无效分组
  • 删除geom层里强制全局分组的group=1参数,ggplot会自动按不同Site分组绘制点和连线,不会出现跨组乱连的线条
  • 将geom_path里不规范的na.value="blank"替换为标准参数na.rm=TRUE,自动剔除缺失值不参与绘图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:36:34