r - 在 ggplot Stacked Barplot 中对齐文本
问题描述
如何使标签在每个栏的每个部分中垂直居中?
这是我的代码:
ggplot(data, aes(A, fill=reorder(Y, desc(Y)))) +
geom_bar(position='fill') +
#geom_text(aes(label=scales::percent(5*round((..count..)/sum(..count..),2))), stat='count', position='stack') +
geom_text(aes(label = scales::percent(15*(..count..)/sum(..count..)),
y= 15*((..count..)/sum(..count..))), stat="count",
vjust = 0) +
labs(x="A", y="Stacked Percentage", fill="Y") +
facet_wrap(~B, nrow=1) +
scale_y_continuous(labels = scales::percent)
这是输出:
这是我的数据示例:
A W I Y Y2 B
<fct> <fct> <fct> <fct> <fct> <fct>
1 A1 ELAQY4349B 4905 Weakly Yes Yes B1
2 A2 ELAQY4349B 4905 Weakly No No B1
3 A3 ELAQY4349B 4905 No No B1
4 A4 ELAQY4349B 4905 No No B1
5 A5 ELAQY4349B 4905 Yes Yes B1
6 A1 ELAQY4349B 3642 Yes Yes B1
7 A2 ELAQY4349B 3642 Weakly No No B1
8 A3 ELAQY4349B 3642 Weakly Yes Yes B1
9 A4 ELAQY4349B 3642 Weakly Yes Yes B1
10 A5 ELAQY4349B 3642 Yes Yes B1
解决方案
找到了。子geom_text
geom_text(aes(label = scales::percent(15*(..count..)/sum(..count..)),
y= 15*((..count..)/sum(..count..))), stat="count",
position = position_stack(vjust = 0.5)) +
推荐阅读
- raspberry-pi - Buildroot 和 Qemu
- haskell - Haskell 中 (^) 的奇怪行为
- python - 在paintevent中动态改变PyQt5中的QWidget
- javascript - 对列表的单击项做出反应
- python - Dask 在单核上的缓慢计算性能
- java - 如何在 Eclipse Milo 中正确使用多维数组?
- angular - Karma 4.4.1 和 Braces 3.0.2 给出了 Unexpected 令牌
- pdf - PDF文件无法在flutter中全屏打开
- http - 将标志设置为 golang 请求
- windows - 从文本文件中回显指定的行