ggplot中条形图上的分类值计数?

时间:2016-12-13 19:15:42

标签: r ggplot2

这里有一个R新手,所以请原谅我,如果这最终成为一个令人尴尬的简单修复。我正在寻找一种方法让我的条形图显示ggplot2中的分类值计数。

我已经汇总了一些组成的样本数据:

@extends('layouts.' . $admin_theme . '.admin.admin')

使用以下代码绘制它:

ID  Age SizeOfTumor RemovalSurgery
1   <30 Small   No
2   <30 Large   Yes
3   <30 Large   No
4   <30 Small   No
5   <30 Small   No
6   <30 Large   Yes
7   30-60   Large   No
8   30-60   Large   Yes
9   30-60   Large   Yes
10  30-60   Small   Yes
11  30-60   Small   Yes
12  30-60   Small   No
13  30-60   Large   No
14  30-60   Small   No
15  >60 Large   Yes
16  >60 Large   Yes
17  >60 Large   Yes
18  >60 Small   Yes
19  >60 Small   No
20  >60 Large   Yes

哪个搅拌出来   a pretty standard barchart

我想做的是能够将每个分类变量的数字添加到图表中,同时保留百分比。

  • 我查了几个类似的问题,尝试了几种geom_text代码而没有运气。
  • 我认为差异可能在于我没有y作为自己的列,只有作为填充的计数。

任何建议都将不胜感激。我宁愿不必进入photoshop并手动输入所有标签。

1 个答案:

答案 0 :(得分:4)

在这种情况下,我建议您自己进行总结,而不是让ggplot为您完成。

library(ggplot2)
library(scales)
library(dplyr)

plot_data <- df %>% 
  count(SizeOfTumor, Age, RemovalSurgery) %>% 
  group_by(Age, SizeOfTumor) %>% 
  mutate(percent = n/sum(n))


ggplot(plot_data, aes(x = SizeOfTumor, y = percent, fill = RemovalSurgery)) + 
  geom_col(position = "fill") + 
  geom_label(aes(label = percent(percent)), position = "fill", color = "white", vjust = 1, show.legend = FALSE) +
  scale_y_continuous(labels = percent) +
  facet_grid(~Age)

enter image description here

我还在geom_label包中添加了percent scales的y_axis和文字格式。