代码之家  ›  专栏  ›  技术社区  ›  Kamil

如何使用ggsurvifit包更改风险表中的标签名称?

  •  1
  • Kamil  · 技术社区  · 1 年前

    是否可以编辑风险表标签?

    我正在尝试将风险表标签(“男性”、“女性”)更改为其他标签。

    library(tidyverse)
    library(ggsurvfit)
    
    p <- 
      survfit2(Surv(time, status) ~ sex, data = df_lung) %>%
      ggsurvfit(linewidth = 1) + 
      scale_ggsurvfit() + 
      add_risktable(
        risktable_stats = c("n.risk")) +
      theme_classic() +
      scale_color_manual(values = c('blue', 'magenta'),
                         labels = c('My label', 'My other label')) +
      scale_fill_manual(values = c('blue', 'magenta'),
                        labels = c('My label', 'My other label'))
    
    
    p
    
    
    

    enter image description here

    如果我使用scale_color_manual和scale_fill_manual,ggplot图例显示更改后的标签,但表显示输出标签。里面的风险表怎么样?

    1 回复  |  直到 1 年前
        1
  •  1
  •   Daniel D. Sjoberg    1 年前

    最简单的方法是在调用之前简单地更改数据帧中的标签 survfit2() 。但您也可以添加任何 ggplot2() 的函数 add_risktable(theme) 论点以下两者的示例!

    library(ggsurvfit)
    #> Loading required package: ggplot2
    library(tidyverse)
    packageVersion("ggsurvfit")
    #> [1] '1.0.0'
    
    # it's easiest to change the label in the data before
    p <- 
      survfit2(
        Surv(time, status) ~ sex, 
        data = df_lung |> mutate(sex = case_match(sex, "Male" ~ 'My label', "Female" ~ 'My other label'))
      ) %>%
      ggsurvfit(linewidth = 1) + 
      scale_ggsurvfit() + 
      add_risktable(
        risktable_stats = c("n.risk")
      ) +
      theme_classic() +
      scale_color_manual(values = c('blue', 'magenta')) +
      scale_fill_manual(values = c('blue', 'magenta'))
    p
    

    
    # you can also modify the labels directly using ggplot functions 
    # in the theme argument of add_risktable()
    p <- survfit2(Surv(time, status) ~ sex, data = df_lung) %>%
      ggsurvfit(linewidth = 1) + 
      scale_ggsurvfit() + 
      add_risktable(
        risktable_stats = c("n.risk"),
        theme = 
          list(
            theme_risktable_default(),
            scale_y_discrete(label = c('My other label', 'My label'))
          )
      ) +
      theme_classic() +
      scale_color_manual(values = c('blue', 'magenta'),
                         labels = c('My label', 'My other label')) +
      scale_fill_manual(values = c('blue', 'magenta'),
                        labels = c('My label', 'My other label'))
    p
    

    创建于2024-01-15 reprex v2.0.2

    推荐文章