ggplot2 箱线图 分面顺序修改

分面顺序问题的解决
有张图


library('ggplot2')
ggplot(data = Salaries,aes(x = rank,y = salary,fill = sex))+
  geom_boxplot()+
  facet_wrap(~rank,nrow = 1,scales = 'free_x')+
  scale_x_discrete(breaks = cc,
                   labels = c('Assistant\nProfessor',
                              'Associate\nProfessor',
                              'Full\nProfessor'))+
  scale_y_continuous(breaks = c(50000,10000,150000,200000),
                     labels = c('$50K','$100K','$150K','$200K'))+
  labs(title = 'Faculty Salary by Rank Sex',y = '',x = '')+
  theme(legend.position = c(.1,.8),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black"))+
  scale_fill_npg()
image.png

默认分面的顺序是按照字母的顺序进行的,从A到Z,
但是有时候我们不想这样,如图要是我们想 fullprofessor 在前,这个时候就有问题了,难为了我好久,自己的数据并非如此,但是遇到的确实这个问题。就百思不得其解,一个一个试,发现只要分面设置好了,无论x轴的横坐标顺序如何变化,只要分面一加上,就立马唧唧。
试了好多后,发现是最初的梦想有问题——可能是是我给的就有问题,没顺序,他就默认是字母顺序了—把分面的参数因子顺序改一下就好了


dat =Salaries  ##自带数据改不了,只能重新赋值一下了。
dat$rank = factor(dat$rank,levels = c('Prof','AssocProf','AsstProf'))
ggplot(dat,aes(x = rank,y = salary,fill = sex))+
  geom_boxplot()+
  facet_wrap(~rank,nrow = 1,scales = 'free_x')+
  scale_x_discrete(breaks = cc,
                   labels = c('Assistant\nProfessor',
                              'Associate\nProfessor',
                              'Full\nProfessor'))+
  scale_y_continuous(breaks = c(50000,10000,150000,200000),
                     labels = c('$50K','$100K','$150K','$200K'))+
  labs(title = 'Faculty Salary by Rank Sex',y = '',x = '')+
  theme(legend.position = c(.2,.8),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black"))+
  scale_fill_npg()
image.png

结果还可以,顺利解决!技能加一!

你可能感兴趣的:(ggplot2 箱线图 分面顺序修改)