ggiraph中geom_line_交互缺少工具提示

ggiraph中geom_line_交互缺少工具提示,r,ggplot2,tooltip,survival-analysis,ggiraph,R,Ggplot2,Tooltip,Survival Analysis,Ggiraph,我想在ggsurvplot中添加工具提示。我正在使用ggiraph显示绘图。由于ggiraph没有geom_step_interactive,因此我正在处理ggsurvplot的数据输出,以获得step函数值,并使用geom_line_interactive在我的ggsurvplot上覆盖一条线并添加工具提示。以下是正常工作的代码: library(ggiraph) library(survminer) library(survival) #Function to get the step

我想在
ggsurvplot
中添加工具提示。我正在使用
ggiraph
显示绘图。由于
ggiraph
没有
geom_step_interactive
,因此我正在处理
ggsurvplot
的数据输出,以获得step函数值,并使用
geom_line_interactive
在我的ggsurvplot上覆盖一条线并添加工具提示。以下是正常工作的代码:

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

  #Function to get the step function points
  step_func <- function(data, direction="hv", x , y) {
    direction <- match.arg(direction, c("hv", "vh"))
    data <- as.data.frame(data)[order(data[, x]), ]
    n <- nrow(data)

    if (n <= 1) {
      # Need at least one observation
      return(data[0, , drop = FALSE])
    }

    if (direction == "vh") {
      xs <- rep(1:n, each = 2)[-2*n]
      ys <- c(1, rep(2:n, each = 2))
    } else {
      ys <- rep(1:n, each = 2)[-2*n]
      xs <- c(1, rep(2:n, each = 2))
    }

    return(data.frame(
      x = data[,x][xs],
      y = data[,y][ys],
      data[xs, setdiff(names(data), c(x, y))]
    ))
  }



  fit<- survfit(Surv(time, status) ~ sex, data = lung )
  g <- ggsurvplot(fit, data = lung, risk.table = TRUE,
                  risk.table.pos= "out", risk.table.y.text = TRUE)

  dat1 <- plyr::ddply(g$plot$data, "strata", step_func, "hv", "time", "surv")
  dat1$tooltip <- paste0("Time:", dat1$x)
  gg<- g$plot+geom_line_interactive(data = dat1, aes(x= x, y=y, colour = strata, tooltip= tooltip ), size = .75)
  ggiraph(code = print(gg))
库(ggiraph)
图书馆(survminer)
图书馆(生存)
#函数获取阶跃函数点

step_func工具提示太长时,
geom_line\u interactive
工具提示消失。您可以截断结果中的值以保持其简短。以下工作:

dat1$tooltip <- paste0("Time:", dat1$x, " Surv:", round(dat1$y,2) )

dat1$工具提示谢谢。这太完美了!当您选择“geom\u line\u interactive”时,工具提示似乎存在某种问题
geom\u point\u interactive
似乎是完美的解决方案!谢谢顺便说一句,如果你能投赞成票,我将不胜感激(争取我的徽章和答题积分不算在内)