您可以在水平条之间放置标签吗?

E_H*_*E_H 2 r bar-chart ggplot2

我正在绘制一个水平堆叠条形图。我的金条的标签很长。有没有办法可以将它们放在相应的栏上方?否则,我的页面空间没有得到很好的利用,绘图会显示得很小。这是我的代码和情节:

\n

我想将“Zivildienst”和“Katastropenschutz”放在栏上方,而不是它们的左侧。

\n

我想将“Zivildienst”和“Katastropenschutz”放在栏上方,而不是它们的左侧。

\n
data3 <- data.frame(System=rep(c(\'Zivildienst\', \'Katastrophenschutz\'), each=5),\n                    Einstellung=rep(c(\'Sehr unwahrscheinich\',\'Eher unwahrscheinlich\',\'Weiss nicht\',\'Eher wahrscheinlich\',\'Sehr wahrscheinlich\'), times=2),\n                    Anzahl=c(131, 142, 283, 421, 981, 54, 140, 490, 418, 856))\nlevel_order <- c(\'Zivildienst\', \'Katastrophenschutz\') \n\n\n# Get the levels for "Einstellung" in the required order\ndata3$Einstellung = factor(data3$Einstellung, levels = c(\'Weiss nicht\',\'Sehr unwahrscheinich\',\'Eher unwahrscheinlich\',\'Eher wahrscheinlich\',\'Sehr wahrscheinlich\'))\ndata3 = arrange(data3, System, desc(Einstellung))\n\n# Calculate the percentages\ndata3 = ddply(data3, .(System), transform, percent = Anzahl/sum(Anzahl) * 100)\n\n# Format the labels and calculate their positions\ndata3 = ddply(data3, .(System), transform, pos = (cumsum(Anzahl) - 0.5 * Anzahl))\ndata3$label = paste0(sprintf("%.0f", data3$percent), "%")\n\ncbPalette <- c("#999999", "#2A7AD4", "#5C96D7", "#D3A253", "#D48F1D")\n\n# Plot\nggplot(data3, aes(x = factor(System), y = Anzahl, fill = Einstellung)) +\n  geom_bar(stat = "identity", width = .3) +\n  geom_text(aes(y = pos, label = label), size = 4) +\n  theme(panel.background = element_blank(),\n        panel.grid.major = element_blank(),\n        panel.grid.minor = element_blank(),\n        axis.title.y = element_blank(),\n        aspect.ratio = .3) +\n  scale_fill_manual(values=cbPalette)+\n  coord_flip()+\n  ggtitle("Werden Sie sich f\xc3\xbcr die Alternative entscheiden?", subtitle = "2000 M\xc3\xa4nner befragt") + labs(x = NULL)\n
Run Code Online (Sandbox Code Playgroud)\n

All*_*ron 5

您需要通过删除轴文本并添加自定义标签来完成此操作geom_text

\n
ggplot(data3, aes(x = factor(System), y = Anzahl, fill = Einstellung)) +\n  geom_bar(stat = "identity", width = .3) +\n  geom_text(aes(y = pos, label = label), size = 4) +\n  geom_text(aes(y = 0, label = System, x = factor(System)), size = 5,\n            hjust = 0, nudge_x = 0.3, check_overlap = TRUE) +\n  theme(panel.background = element_blank(),\n        panel.grid.major = element_blank(),\n        panel.grid.minor = element_blank(),\n        axis.title.y = element_blank(),\n        aspect.ratio = .3) +\n  scale_fill_manual(values=cbPalette)+\n  coord_flip()+\n  ggtitle("Werden Sie sich f\xc3\xbcr die Alternative entscheiden?", \n          subtitle = "2000 M\xc3\xa4nner befragt") + \n  labs(x = NULL) +\n  theme(axis.text.y = element_blank(),\n        axis.ticks.y = element_blank())\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n