Есть ли способ обернуть названия сюжетов в ggarrange? - PullRequest
1 голос
/ 01 апреля 2020

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

enter image description here

Как видите, заголовки сюжета усекаются. Есть ли способ обойти это?

Я использую следующий код:

antal_hemvist_program<-function(x){totdata%>%filter(program==x)%>%ggplot(aes(x=fct_rev(fct_infreq(NYA_REGION))))+
geom_bar()+
theme(axis.title.y = element_blank(), axis.text.x=element_text(size=5))+ylab("Antal")+
coord_flip()+ggtitle(x)}

hv_n_program<-lapply(unique(totdata$program),antal_hemvist_program)

ggarrange(plotlist=hv_n_program)

Небольшая выдержка из данных:

structure(list(program = c("IPPE", "Ekonom", "IPPE", "Magister_FEK", 
"Systemvetenskap", "Magister_FIN", "Ekonom", "Webmaster", "Maklarekonom", 
"Maklarekonom", "IPPE", "Animation", "Magister_FEK", "Maklarekonom", 
"IPPE", "IPPE", "IPPE", "IPPE", "Webmaster", "Systemvetenskap", 
"Digitala_Medier", "Maklarekonom", "Magister_FEK", "Digitala_Medier", 
"Ekonom", "IPPE", "Systemvetenskap", "Maklarekonom", "Systemvetenskap", 
"IPPE", "Animation", "Maklarekonom", "IPPE", "Systemvetenskap", 
"Personalekonomi", "Ekonom", "Personalekonomi", "Webmaster", 
"Ekonom", "IPPE", "IPPE", "IPPE", "Personalekonomi", "Systemvetenskap", 
"Personalekonomi", "Animation", "Digitala_Medier", "IPPE", "Ekonom", 
"Maklarekonom"), NYA_REGION = structure(c(3L, 3L, 3L, 4L, 4L, 
9L, 3L, 2L, 9L, 4L, 9L, 2L, 9L, 4L, 4L, 7L, 4L, 7L, 3L, 7L, 9L, 
3L, 3L, 3L, 3L, 8L, 9L, 4L, 3L, 3L, 3L, 3L, 2L, 3L, 2L, 4L, 7L, 
1L, 3L, 1L, 3L, 2L, 2L, 7L, 3L, 8L, 7L, 1L, 5L, 8L), .Label = c("UTANFÖR SVERIGE", 
"ÖVRIGA LANDET", "STORGÖTEBORG", "oklart", "SÖDRA BOHUSLÄN", 
"UDDEVALLA", "VÄSTERGÖTLAND", "VÄNERSBORG", "TROLLHÄTTAN", "NORRA BOHUSLÄN", 
"DALSLAND"), class = c("ordered", "factor"))), row.names = c(NA, 
-50L), class = c("tbl_df", "tbl", "data.frame"))

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете добавить plot.title.position = 'plot' к вашему вызову темы, что позволит выровнять заголовки и субтитры по всему сюжету, а не по панелям заголовков.

antal_hemvist_program <- function(x {
  totdata %>%
  filter(program==x) %>%
  ggplot(aes(x=fct_rev(fct_infreq(NYA_REGION)))) +
    geom_bar() +
    theme(axis.title.y = element_blank(), 
          axis.text.x=element_text(size=5),
          plot.title.position = 'plot') +
    ylab("Antal")+
    coord_flip()+ggtitle(x)}

enter image description here

...