ggplot:Y轴作为特定值的计数

时间:2018-06-08 16:23:07

标签: r ggplot2

我正在尝试创建一个条形图,显示我的员工已完成的培训课程数量。为此,我有一个名为iud的数据框,其中每一行都是他们开始采用的独特课程:

  name percent
  <chr>   <dbl>
1 Nardo   41.7 
2 Nardo    0   
3 Nardo    4.59
4 Nardo  100
...

我正在尝试使用ggplot来创建一个条形图,其中y轴是percent等于100的实例数的计数。(所以对于上面的数据,Nardo&s; bar会在1)。我目前正在使用这个:

cpu <- ggplot(iud, aes(name)) + 
  geom_bar(data=subset(iud,percent=="100"), stat = "count") +
  scale_y_continuous(breaks = seq(0,15,1))

图表看起来是正确的,但它不包括percent的计数等于0的栏(已开始但未完成课程的员工未包含在图表中)。

我是否有更好的方法来确保所有员工都有图表 - 包括y轴值为0的那些?

1 个答案:

答案 0 :(得分:1)

我认为预处理数据最容易,首先计算100%的数量。

library(tidyverse)

df %>% group_by(name) %>% 
  summarise(n = sum(percent == 100)) %>% 
  ggplot(aes(x = name, y = n)) +
  geom_col()

#data
library(readr)
df <- read_delim("name percent
Nardo 41.7
Nardo 0
Nardo 4.59
Nardo 100
Ardi 45", delim = " ")