R ggplot 如何生成堆叠柱状图加文本
时间: 2023-07-16 22:11:30 浏览: 46
使用 `ggplot2` 包可以很方便地生成堆叠柱状图,并且可以在柱子上添加文本,以下是一个例子:
假设我们有如下数据集 `df`:
```
group sub_group value
1 A a 3
2 A b 5
3 A c 2
4 B a 6
5 B b 3
6 B c 1
```
我们要生成的堆叠柱状图如下:
```
library(ggplot2)
ggplot(df, aes(x = group, y = value, fill = sub_group)) +
geom_col(position = "stack") +
geom_text(aes(label = value), position = position_stack(vjust = 0.5)) +
theme_classic()
```
解释一下代码:
- `ggplot(df, aes(x = group, y = value, fill = sub_group))`:设置 x 轴为 `group`,y 轴为 `value`,并且按 `sub_group` 分组着色。
- `geom_col(position = "stack")`:生成堆叠柱状图。
- `geom_text(aes(label = value), position = position_stack(vjust = 0.5))`:在每个柱子上添加文本,文本内容为 `value` 列的值,位置为柱子中间。
- `theme_classic()`:设置经典主题风格。
输出的图形如下所示:
![堆叠柱状图](https://img-blog.csdnimg.cn/20211116160529658.png)