Измените метки оси в ggplot2, пока строится подгонка glm - PullRequest
0 голосов
/ 21 января 2019

У меня следующая проблема: Данные, которые у меня есть, выглядят так:

NO              Income_before_taxes Income_aftere_taxes educationLevel
1:               27757               27313              1
2:               40147               38148              2
3:               52240               47880              3
4:               63061               57027              4
5:               92409               78738              5
6:              132985              106661              6

Я хотел бы подготовить пример соответствия Income_aftere_taxes ~ educationLevel.

Я делаю это с помощью следующего кода:

ggbox <- ggplot(data = fullDataSet, aes(x = educationLevel, y = Income_aftere_taxes))
ggbox <- ggbox + geom_point()
ggbox <- ggbox + geom_smooth(method = "glm")

Результат выглядит так: enter image description here Однако, если я хочу изменить метки оси X на «c» («ниже, чем старшая школа», «старшая школа», «колледж», «ассоциированная степень», «бакалавр», «магистр и доктор философии»), это не работает. Чтобы установить метки с помощью scale_x_descrete, мне нужно преобразовать входной сигнал оси «EducationLevel» в факторы. Это, однако, разрушает подгонку glm.

Итак, чтобы подвести итог, я могу либо составить график подгонки glm, либо изменить метки оси x. Но мне нужны оба варианта одновременно на одном сюжете. Есть ли способ достичь этого?

1 Ответ

0 голосов
/ 21 января 2019

Попробуйте это: Метки, показанные здесь, являются репрезентативными. Предполагается, что уровень образования остается в виде числового вектора, а не фактора или символа. Здесь мы создаем вектор символов для наших меток.

mylabels<-c("High School","No High School","Some College","No College",
                                 "College","PhD","Postdoc")

Затем мы используем его на нашей оси X. [-7] - для поддержания длины меток вопроса. Вы можете изменить метки по своему желанию.

library(dplyr)
library(ggplot2)    
df %>% 
      ggplot(aes(x = educationLevel, y = Income_aftere_taxes))+geom_point()+
      geom_smooth(method="glm")+
      scale_x_continuous(breaks=c(1,2,3,4,5,6),labels=mylabels[-7])
...