我正在尝试处理条形图中传说中的非常长标签(请参见包含的图片和我用于生成它的代码)。我需要将它们分解为多个(2或3行)行,否则整张图片会变得太宽。需要一些帮助。实际上,我还怀疑我的代码不够简洁,但至少它可以工作(但请随意更改)
glimpse(df)
Observations: 301
Variables: 3
$ V12n <int> 1, 4, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1...
$ V12 <fctr> De verwijzer neemt contact op om na te gaa...
$ METING.f <fctr> Meting 0, Meting 0, Meting 0, Meting 0, Me...
p = ggplot(df, aes(x = V12n, fill = V12)) +
geom_bar(aes(y = (..count..)/tapply(..count..,..PANEL..,sum)
[..PANEL..])) +
scale_y_continuous(labels = scales::percent) +
geom_text(aes(y = ((..count..)/sum(..count..)),
label = scales::percent((..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])),
stat = "count", vjust = -0.25) +
facet_grid(.~ METING.f) +
labs(title = " ",
x = "Vraag 12",
y = "Percentage") +
theme(axis.text.x = element_blank(),
axis.ticks.x=element_blank()) +
scale_fill_manual(values = c("greenyellow", "green4", "darkorange1", "red"),
name = "Zijn er afspraken gemaakt over het overdragen van de verantwoordelijkheid naar de volgende zorgverlener?\n")
p
library(stringr)
加载stringr
包。然后,在ggplot代码中,输入fill=str_wrap(V12, width=20)
(根据需要调整宽度)。在scale_fill_manual
中,您也可以在name
上使用str_wrap
,或者只需在字符串中任何需要换行的位置放置\n
即可。 - eipi10fill = ...
但现在我只需要在图例标签之间增加一些垂直空间(文本在一个标签到下一个标签之间垂直重叠)。 - Benjamin Telkamp