首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将工具提示添加到ggsurv图中时出错

将工具提示添加到ggsurv图中时出错
EN

Stack Overflow用户
提问于 2017-04-28 05:50:33
回答 1查看 278关注 0票数 1

我正在尝试向ggsurvplot添加工具提示。我正在使用ggiraph来显示这个情节。我在下面添加了一个很小的例子来说明我想做的事情。如果我不在ggsurvplot中添加任何xlim,那么我的代码就会正常工作。以下是工作的代码:

代码语言:javascript
复制
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)添加到ggsurv图中,如下所示:

代码语言:javascript
复制
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

如何纠正此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 13:17:23

这是ggi相图的一个问题。添加一个xlim会触发裁剪,有些点将不会被绘制,但是工具提示变量没有被裁剪;我将尝试解决这个问题。

解决方法是在将数据发送到geom_point_interactive之前过滤它们:

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43672890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档