私はバープロットの凡例の非常に長いラベルを処理しようとしています(含まれている画像とそれを生成するために使用したコードを参照してください。複数(行)の行(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
長い文字列の自動ラッピングにstr_wrap
を使用するか、\n
(改行文字)を文字列に追加することでブレークをハードコードできます。凡例キーの間にスペースを追加するには、legend.key.height
テーマ要素を使用できます。組み込みのiris
データフレームの例を次に示します。
library(stringr)
library(tidyverse)
# Create long labels to be wrapped
iris$Species = paste(iris$Species,
"random text to make the labels much much longer than the original labels")
ggplot(iris, aes(Sepal.Length, Sepal.Width, colour=str_wrap(Species,20))) +
geom_point() +
labs(colour="Long title shortened\nwith wrapping") +
theme(legend.key.height=unit(2, "cm"))