使用 ggplot() 在 R 中应用 geom_text() 的图表
Charts using ggplot() to apply geom_text() in R
在学习用R绘制图表时,我使用的是澳大利亚艾滋病生存数据。
为了显示生存中的性别,我用这些代码绘制了 2 个图表:
data <- read.csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/MASS/Aids2.csv")
ggplot(data) +
geom_bar(aes(sex, fill = as.factor(status)), position = "fill") +
scale_y_continuous(labels = scales::percent)
ggplot(data) +
geom_bar(aes(as.factor(status), fill = sex))
这是图表。
现在我想将值(数字和百分比)添加到条体中。
geom_text()就行了。我用谷歌搜索了一些参考资料,并尝试了 geom_text(x,y,标签)的不同组合,例如 xxx。它们未正确显示。
错误代码:
geom_text(aes(as.factor(status), y = sex, label = sex))
我该怎么做?
我发现总结ggplot
之外的data
最简单,然后就变得相对简单了。
library(tidyverse)
data2 <- data %>%
group_by(sex, status) %>%
summarise (n = n()) %>%
mutate(percent = n / sum(n) * 100)
ggplot(data2, aes(sex, percent, group = status)) +
geom_col(aes(fill = status)) +
geom_text(aes(label = round(percent,1)), position = position_stack(vjust =
0.5))
ggplot(data2, aes(status, n, group = sex)) +
geom_col(aes(fill = sex)) +
geom_text(aes(label = n), position = position_stack(vjust = 0.5))
在学习用R绘制图表时,我使用的是澳大利亚艾滋病生存数据。
为了显示生存中的性别,我用这些代码绘制了 2 个图表:
data <- read.csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/MASS/Aids2.csv")
ggplot(data) +
geom_bar(aes(sex, fill = as.factor(status)), position = "fill") +
scale_y_continuous(labels = scales::percent)
ggplot(data) +
geom_bar(aes(as.factor(status), fill = sex))
这是图表。
现在我想将值(数字和百分比)添加到条体中。
geom_text()就行了。我用谷歌搜索了一些参考资料,并尝试了 geom_text(x,y,标签)的不同组合,例如 xxx。它们未正确显示。
错误代码:
geom_text(aes(as.factor(status), y = sex, label = sex))
我该怎么做?
我发现总结ggplot
之外的data
最简单,然后就变得相对简单了。
library(tidyverse)
data2 <- data %>%
group_by(sex, status) %>%
summarise (n = n()) %>%
mutate(percent = n / sum(n) * 100)
ggplot(data2, aes(sex, percent, group = status)) +
geom_col(aes(fill = status)) +
geom_text(aes(label = round(percent,1)), position = position_stack(vjust =
0.5))
ggplot(data2, aes(status, n, group = sex)) +
geom_col(aes(fill = sex)) +
geom_text(aes(label = n), position = position_stack(vjust = 0.5))