将geom_line和其他ggplot对象添加到autoplot.survfit

sea*_*507 2 r ggplot2

我正在尝试向survMisc生成的生存图添加额外的行,但是我无法使其正常工作-问题是最后一行。

data(kidney, package="KMsurv")
s1 <- survfit(Surv(time, delta) ~ type, data=kidney)
p1<-autoplot(s1, type="fill", survLineSize=2)
d1=data.frame(x=seq(0,20,10),y=seq(0,1,.5))
p1$plot+geom_line(data=d1,aes_string(x='x',y='y'))
Run Code Online (Sandbox Code Playgroud)

eval(expr,envir,enclos)中的错误:找不到对象“ st”

我正在使用ggplot 1.01版和survMisc 0.4.6

Gre*_*gor 5

问题在于,geom_line()默认情况下,您添加的图层会继承所有先前的美学贴图-但是您的新数据框并没有包含所有被映射的列。它很容易修复,您只需要停止继承即可:

p1$plot +
    geom_line(data = d1,
              mapping = aes_string(x='x', y='y'),
              inherit.aes = F)
Run Code Online (Sandbox Code Playgroud)