我正在尝试向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)添加到ggsurv图中,如下所示:
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
如何纠正此错误?
发布于 2017-04-29 13:17:23
这是ggi相图的一个问题。添加一个xlim会触发裁剪,有些点将不会被绘制,但是工具提示变量没有被裁剪;我将尝试解决这个问题。
解决方法是在将数据发送到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)https://stackoverflow.com/questions/43672890
复制相似问题