E_H*_*E_H 2 r bar-chart ggplot2
我正在绘制一个水平堆叠条形图。我的金条的标签很长。有没有办法可以将它们放在相应的栏上方?否则,我的页面空间没有得到很好的利用,绘图会显示得很小。这是我的代码和情节:
\n\n我想将“Zivildienst”和“Katastropenschutz”放在栏上方,而不是它们的左侧。
\ndata3 <- 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)\nRun Code Online (Sandbox Code Playgroud)\n
您需要通过删除轴文本并添加自定义标签来完成此操作geom_text
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())\nRun Code Online (Sandbox Code Playgroud)\n\n
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |