ymax计数值

时间:2019-05-08 12:02:26

标签: r ggplot2

我正在尝试构建geom_linerange图,其中ymax是出现在我的数据中的非数值的计数。 x轴需要显示数据中可用的类别,而y轴是它们在数据中出现多少次的计数。与geom_bar相似,但我需要垂直线来代替bar。

数据是一行一行的数据集,在一个列中显示员工,在另一列中显示他们所属的类别。

ggplot(myData, aes(x = Category)) +
  geom_linerange(aes(ymin = 0, ymax = ???))

如果我修复ymax = 1000并添加stat = "count",以上方法就可以工作,但是我很难使它与ymax =个值计数一起工作。请帮忙。

3 个答案:

答案 0 :(得分:0)

首先汇总您的数据可能是最简单/最清晰的-包含计数列。

以下是使用mtcars数据集的示例:

   mtcars %>% group_by(cyl) %>%
         summarise(n = n()) %>%
        ggplot( aes(x = as.factor(cyl))) +
      geom_linerange(aes(ymin = 0, ymax = n))

答案 1 :(得分:0)

您可以在数据集中添加1并使用stat_summary()

df <-
  mpg %>% 
  mutate(n = 1)

ggplot(df, aes(x = factor(cyl), y = n)) +
  stat_summary(geom = "linerange", ymin = 0, fun.ymax = "sum")

enter image description here

答案 2 :(得分:0)

谢谢。 mutate(n = 1)和stat_summary选项有效。