Есть ли способ обернуть заголовки сюжета в ggarrange?

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

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

Как видите, названия сюжетов обрезаются. Это можно обойти?

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

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"))

person Magnus    schedule 01.04.2020    source источник


Ответы (1)


Вы можете добавить 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)}

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

person caldwellst    schedule 01.04.2020
comment
@calldwellst Это говорит мне, что «plot.title.position» не является допустимым именем элемента темы? - person Magnus; 01.04.2020
comment
Возможно, вам потребуется обновить вашу ggplot2 установку. - person caldwellst; 01.04.2020