在这种情况下,我如何正确使用label_wrap_gen?

问题描述 投票:0回答:1

我正在对不同程序的辍学率进行可视化。由于大多数名称都相当长,我想在我的面中把它们解析成多行。

我知道 可见我以前也是这样做的,但由于某些原因,在这种情况下,代码拒绝工作,这让人很恼火。但由于某些原因,在这种情况下,代码拒绝工作,这很令人气愤。

enter image description here

谁能告诉我,我做错了什么,如何解决?

我使用的是下面的代码。

df%>%
filter(ADMISSIONROUND_ID=="HT2019")%>%
ggplot(aes(x=factor(1), fill=status))+
geom_bar(width=1, position = position_fill())+
coord_polar("y")+
scale_y_continuous(labels = scales::percent)+
facet_wrap(~program, labeller = label_wrap_gen(width=10))+
ylab("andel studenter")+
xlab("")+
labs(fill="Status i början på programmet")

我的数据摘录

structure(list(program = c("Programmet_för_Socialpsykiatrisk_vård", 
"Programmet_för_Socialpsykiatrisk_vård", "Specialistsjuksköterska_Palliativ_vård_deltid", 
"Specialistsjuksköterska_DSK_Folkhälsa_deltid", "Programmet_för_Socialpsykiatrisk_vård", 
"Specialistsjuksköterska_Palliativ_vård_deltid", "Specialistsjuksköterska_DSK_Folkhälsa", 
"Programmet_för_Socialpsykiatrisk_vård", "Programmet_för_Socialpsykiatrisk_vård", 
"Sjuksköterskeprogrammet", "Specialistsjuksköterska_DSK_AIH_deltid", 
"Sjuksköterskeprogrammet", "Programmet_för_Socialpsykiatrisk_vård", 
"Programmet_för_Socialpsykiatrisk_vård", "Specialistsjuksköterska_DSK_Folkhälsa_deltid", 
"Sjuksköterskeprogrammet", "Specialistsjuksköterska_DSK_Folkhälsa_deltid", 
"Programmet_för_Socialpsykiatrisk_vård", "Specialistsjuksköterska_Palliativ_vård_deltid", 
"Specialistsjuksköterska_DSK_Folkhälsa", "Specialistsjuksköterska_Intensivvård_deltid", 
"Specialistsjuksköterska_DSK_AIH_deltid", "Programmet_för_Socialpsykiatrisk_vård", 
"Sjuksköterskeprogrammet", "Specialistsjuksköterska_Intensivvård", 
"Sjuksköterskeprogrammet", "Specialistsjuksköterska_DSK_Folkhälsa_deltid", 
"Sjuksköterskeprogrammet", "Programmet_för_Socialpsykiatrisk_vård", 
"Programmet_för_Socialpsykiatrisk_vård", "Specialistsjuksköterska_DSK_Folkhälsa_deltid", 
"Specialistsjuksköterska_Diabetes_deltid", "Specialistsjuksköterska_DSK_Folkhälsa_deltid", 
"Specialistsjuksköterska_Diabetes_deltid", "Sjuksköterskeprogrammet", 
"Sjuksköterskeprogrammet", "Programmet_för_Socialpsykiatrisk_vård", 
"Specialistsjuksköterska_DSK_Folkhälsa_deltid", "Sjuksköterskeprogrammet", 
"Specialistsjuksköterska_Intensivvård", "Sjuksköterskeprogrammet", 
"Sjuksköterskeprogrammet", "Specialistsjuksköterska_psykiatri_deltid", 
"Sjuksköterskeprogrammet", "Specialistsjuksköterska_psykiatri_deltid", 
"Sjuksköterskeprogrammet", "Sjuksköterskeprogrammet", "Specialistsjuksköterska_DSK_Folkhälsa_deltid", 
"Specialistsjuksköterska_DSK_Folkhälsa", "Sjuksköterskeprogrammet"
), status = c("återbud innan start", "påbörjat studier", "återbud innan start", 
"återbud innan start", "påbörjat studier", "påbörjat studier", 
"påbörjat studier", "påbörjat studier", "återbud innan start", 
"påbörjat studier", "tidigt avbrott?", "återbud innan start", 
"påbörjat studier", "påbörjat studier", "återbud innan start", 
"tidigt avbrott?", "påbörjat studier", "påbörjat studier", "påbörjat studier", 
"tidigt avbrott?", "påbörjat studier", "tidigt avbrott?", "påbörjat studier", 
"uteblivit", "påbörjat studier", "påbörjat studier", "återbud innan start", 
"påbörjat studier", "påbörjat studier", "uteblivit", "återbud innan start", 
"återbud innan start", "återbud innan start", "påbörjat studier", 
"påbörjat studier", "påbörjat studier", "tidigt avbrott?", "tidigt avbrott?", 
"uteblivit", "påbörjat studier", "påbörjat studier", "påbörjat studier", 
"tidigt avbrott?", "påbörjat studier", "tidigt avbrott?", "påbörjat studier", 
"återbud innan start", "återbud innan start", "påbörjat studier", 
"tidigt avbrott?"), ADMISSIONROUND_ID = structure(c(15L, 15L, 
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L), .Label = c("HT2005", 
"HT2006", "HT2007", "HT2008", "HT2009", "HT2010", "HT2011", "HT2012", 
"HT2013", "HT2014", "HT2015", "HT2016", "HT2017", "HT2018", "HT2019", 
"HT2020", "VIFYHT19", "VIFYHT20", "VT2006", "VT2007", "VT2008", 
"VT2009", "VT2010", "VT2011", "VT2012", "VT2013", "VT2014", "VT2015", 
"VT2016", "VT2017", "VT2018", "VT2019", "VT2020"), class = c("ordered", 
"factor"))), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-50L))
r ggplot2 label facet-wrap
1个回答
0
投票

这里有两个问题。首先,label_wrap_gen()函数需要有白格,以便知道在哪里解析文本。因为名字中没有白格,所以无法解析。其次,使用新的语法可能会更好。

facet_wrap(
    ~program, labeller = labeller(
      program = label_wrap_gen(width = 10)))

我最后写的这段代码实际上是有效的。

totdata%>%
  filter(ADMISSIONROUND_ID=="HT2019")%>%
  mutate(program=str_replace_all(program,"_"," "))%>%
  mutate(program=str_replace_all(program, "Specialistsjuksköterska", "specialistssk"))%>%
  mutate(program=str_replace_all(program, "Sjuksköterskeprogrammet", "SSK programmet"))%>%
  mutate(program=str_replace_all(program,"Socialpsykiatrisk","Soc-Psyk"))%>%
  ggplot(aes(x=factor(1), fill=status))+
  geom_bar(width=1, position = position_fill())+
  coord_polar("y")+
  scale_y_continuous(labels = scales::percent)+
  facet_wrap(
    ~program, labeller = labeller(
      program = label_wrap_gen(width = 10)))+
ylab("andel studenter")+
xlab("")+
labs(fill="Status i början på programmet")
© www.soinside.com 2019 - 2024. All rights reserved.