我正在绘制一个水平堆叠条形图.我wine 吧的标签很长.有没有办法把它们放在相应的条上?否则,我的页面上的空间没有得到很好的利用,绘图将显示得非常小.以下是我的代码和绘图:
I'd like to put "Zivildienst" and "Katastrophenschutz" above the bars, not to the left of them.
data3 <- data.frame(System=rep(c('Zivildienst', 'Katastrophenschutz'), each=5),
Einstellung=rep(c('Sehr unwahrscheinich','Eher unwahrscheinlich','Weiss nicht','Eher wahrscheinlich','Sehr wahrscheinlich'), times=2),
Anzahl=c(131, 142, 283, 421, 981, 54, 140, 490, 418, 856))
level_order <- c('Zivildienst', 'Katastrophenschutz')
# Get the levels for "Einstellung" in the required order
data3$Einstellung = factor(data3$Einstellung, levels = c('Weiss nicht','Sehr unwahrscheinich','Eher unwahrscheinlich','Eher wahrscheinlich','Sehr wahrscheinlich'))
data3 = arrange(data3, System, desc(Einstellung))
# Calculate the percentages
data3 = ddply(data3, .(System), transform, percent = Anzahl/sum(Anzahl) * 100)
# Format the labels and calculate their positions
data3 = ddply(data3, .(System), transform, pos = (cumsum(Anzahl) - 0.5 * Anzahl))
data3$label = paste0(sprintf("%.0f", data3$percent), "%")
cbPalette <- c("#999999", "#2A7AD4", "#5C96D7", "#D3A253", "#D48F1D")
# Plot
ggplot(data3, aes(x = factor(System), y = Anzahl, fill = Einstellung)) +
geom_bar(stat = "identity", width = .3) +
geom_text(aes(y = pos, label = label), size = 4) +
theme(panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.title.y = element_blank(),
aspect.ratio = .3) +
scale_fill_manual(values=cbPalette)+
coord_flip()+
ggtitle("Werden Sie sich für die Alternative entscheiden?", subtitle = "2000 Männer befragt") + labs(x = NULL)