Изменение порядка условных обозначений, построенных с использованием ggsurv для кривых Каплана Мейера

#r #graph #legend #survival-analysis #legend-properties

Вопрос:

Я построил кривые Каплана Мейера для своих данных, которые относятся к 6 различным методам лечения, а именно:

  1. 100Low
  2. 30Low
  3. 15Low
  4. 100High
  5. 30High
  6. 15High

Я хочу, чтобы моя легенда была в той последовательности, о которой я упоминал выше, однако, когда я строю, она дает мне легенду, прикрепленную на изображении.введите описание изображения здесь

Код, который я использую, выглядит следующим образом. Может ли кто-нибудь помочь мне с тем, как я могу изменить порядок таблицы легенд?

     #Kaplan-Meier curves to plot the result
ru <- survfit(Surv(Tf,fat==1) ~ Treatments, data = fat)

uu <- ggsurv(ru, CI = "def", plot.cens = TRUE, surv.col = c(1,1,2,2,3,3),
             cens.col = 1, lty.est = c(1,1,1,5,5,5), size.est = 1.05, cens.shape = 12, cens.size = 3,
             back.white = FALSE, xlab = "Time (seconds)", ylab = "Ratio of fish remaining", main = "Kaplan-Meier Curves")

uu1 <- uu   theme_gray(base_size=13)   theme(legend.position = "right")   theme(legend.title = element_text(face = "bold"))  
          theme(plot.title = element_text(face = "bold"))   theme(axis.title = element_text(size = 15, face = "bold"))  
  theme(axis.ticks = element_line(size = 1))    scale_x_continuous(breaks = scales::pretty_breaks(n = 10))  
  scale_y_continuous(breaks = scales::pretty_breaks(n = 10))   theme(axis.text = element_text(size = 14))  
  theme(legend.text = element_text(size = 12))

windows()
(uu1)
 

Здесь «Tf» — это время в моих данных, которое находится в фрейме данных «fat».

Заранее большое вам спасибо.

Ответ №1:

Вам нужно изменить порядок Treatments перед вашей моделью, вот tidyverse подход:

 library(tidyverse)

treat_order <- c("100Low","30Low","15Low","100High","30High","15High")

fat <-
    fat %>% 
    mutate(Treatments = fct_relevel(Treatments,treat_order))