Как изменить текст легенды в ggplot2

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть вопрос о том, как изменить текст легенды, я попробовал несколько ответов с этого сайта, и ни один из них не сработал. Вот пример кода:

 counts <- c(18,17,15,20,10,20,25,13,12)
time <- c(1, 1.3, 1.11, 1, 1, 1, 1, 1.3, 1.1)
sex <- c("m","f","m","f","m","f","m","f","m")
print(myDF <- data.frame(sex, counts, time))

ggplot(myDF, aes(counts, time, color=sex))  
  geom_point(size = 3) geom_smooth(method="lm", se=F)  
  ggtitle("Long-Term Gain in Speech Rate") 
  xlab("Baseline Speech Rate")  
  ylab("Mean Speech Rate Gain") 
  theme(legend.position = "bottom")
  

Результатом является:
введите описание изображения здесь
В качестве некоторых ответов предлагалось использовать scale_fill_manual() или scale_fill_discrete(). Я пробовал эти решения, но ни одно из них не изменило текст легенды, например, приведенный ниже код:

 counts <- c(18,17,15,20,10,20,25,13,12)
    time <- c(1, 1.3, 1.11, 1, 1, 1, 1, 1.3, 1.1)
    sex <- c("m","f","m","f","m","f","m","f","m")
    print(myDF <- data.frame(sex, counts, time))
    
    ggplot(myDF, aes(counts, time, color=sex))  
      geom_point(size = 3) geom_smooth(method="lm", se=F)  
      ggtitle("Long-Term Gain in Speech Rate") 
      xlab("Baseline Speech Rate")  
      ylab("Mean Speech Rate Gain") 
      theme(legend.position = "bottom") 
      scale_fill_discrete("", labels=c('women', 'men'))
  

Есть предложения?

Комментарии:

1. Вы используете color эстетику, поэтому вам следует использовать scale_color_discrete

2. Большое спасибо. Я попробовал, и это сработало!!

Ответ №1:

Вы используете scale_fill_discrete , в то время как вы должны использовать scale_colour_discrete … Это должно сработать:

 counts <- c(18,17,15,20,10,20,25,13,12)
time <- c(1, 1.3, 1.11, 1, 1, 1, 1, 1.3, 1.1)
sex <- c("m","f","m","f","m","f","m","f","m")
print(myDF <- data.frame(sex, counts, time))

ggplot(myDF, aes(counts, time, colour = sex))  
  geom_point(size = 3)  
  geom_smooth(method = "lm", se = FALSE)  
  ggtitle("Long-Term Gain in Speech Rate")  
  xlab("Baseline Speech Rate")  
  ylab("Mean Speech Rate Gain") 
  theme(legend.title = element_blank(),
        legend.position = "bottom")  
  scale_colour_discrete(labels = c('Women', 'Men'))
  

Вот результат:

введите описание изображения здесь

Комментарии:

1. Большое спасибо. Это сработало, и я узнал кое-что новое из этого вопроса и ответов.

2. Удачи @JiangXu!