使用ggplot()在R中应用geom_text()的图表

时间:2018-02-15 04:19:29

标签: r ggplot2 charts geom-text

在学习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))

以下是图表。

enter image description here

现在我想将值(数字和百分比)添加到条形体中。

geom_text()会做。我搜索了一些参考文献并尝试了不同的组合,例如xxx的geom_text(x,y,label)。它们没有正确显示。

错误的代码:

geom_text(aes(as.factor(status), y = sex, label = sex))

我该怎么做?

1 个答案:

答案 0 :(得分:3)

我发现最简单地总结data之外的ggplot然后变得相对简单。

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))

enter image description here

ggplot(data2, aes(status, n, group = sex)) +
  geom_col(aes(fill = sex)) +
  geom_text(aes(label = n), position = position_stack(vjust = 0.5))

enter image description here