【问题标题】:Error while adding tooltip to ggsurvplot using ggsurvplot使用 ggsurvplot 向 ggsurvplot 添加工具提示时出错
【发布时间】:2017-04-28 05:50:33
【问题描述】:

我正在尝试将工具提示添加到 ggsurvplot。我正在使用ggiraph 来显示情节。我在下面添加了一个我正在尝试做的最小示例。如果我不在ggsurvplot 中添加任何 xlim,我的代码似乎可以工作。以下是有效的代码:

library(survminer)
library(survival)
library(ggiraph)

fit<- survfit(Surv(time, status) ~ sex, data = lung )
g <- ggsurvplot(fit, data = lung)   
tooltip <- paste0("Time:", g$plot$data$time, "<br/>", "Survival Prob:", g$plot$data$surv)
x <- g$plot+geom_point_interactive(aes(tooltip = tooltip))
ggiraph(print(x), zoom_max = 5)

现在我想限制 x 轴的值,所以我将参数 xlim = c(0, 800) 添加到 ggsurvplot 中,如下所示:

library(survminer)
library(survival)
library(ggiraph)

fit<- survfit(Surv(time, status) ~ sex, data = lung )
g <- ggsurvplot(fit, data = lung, xlim = c(0,800))  
tooltip <- paste0("Time:", g$plot$data$time, "<br/>", "Survival Prob:", g$plot$data$surv)
x <- g$plot+geom_point_interactive(aes(tooltip = tooltip))
ggiraph(print(x), zoom_max = 5)

这给了我以下错误:

Error: length(ids) == length(str) is not TRUE

我该如何解决这个错误?

【问题讨论】:

    标签: r ggplot2 tooltip survival-analysis ggiraph


    【解决方案1】:

    这是 ggiraph 的问题。添加xlim是触发clipping,有些点不会被绘制,但是tooltip变量没有clipped;我会尝试解决这个问题。

    解决方法是在将数据发送到 geom_point_interactive 之前对其进行过滤:

    library(survminer)
    library(survival)
    library(ggiraph)
    
    
    fit<- survfit(Surv(time, status) ~ sex, data = lung )
    g <- ggsurvplot(fit, data = lung, xlim = c(0,800))  
    
    data_ <- g$plot$data
    data_ <- base::transform(data_, tooltip = sprintf("Time: %.0f<br/>Survival Prob: %.3f", time, surv) )
    data_ <- data_[data_$time < 800, ]
    
    x <- g$plot + geom_point_interactive(data = data_, aes(time, surv, tooltip = tooltip))
    ggiraph(print(x), zoom_max = 5)
    

    【讨论】:

    • 感谢您提供令人惊叹的包裹和答案。在将数据发送到 ggplot 之前过滤数据的问题在于它会扰乱我的生存分析。有没有其他方法可以解决它,也许是在情节生成之后?
    • @SBista 我在ggsurvplot() 调用后进行了过滤。
    猜你喜欢
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2021-04-08
    • 2011-10-30
    • 2019-02-19
    • 2020-08-16
    相关资源
    最近更新 更多