R中的堆积条形图

时间:2018-04-13 01:11:57

标签: r ggplot2

我有一个看起来像这样的数据集

enter image description here

我想绘制一个堆积的条形图,其中X为会话,Y为缺席,呈现堆叠在另一个之上。如何在ggplot()

中的R中执行此操作

1 个答案:

答案 0 :(得分:1)

请查看如何提出有关SO的问题以及如何提供数据/示例。如果我们准备好了所有信息,那么人们可以更轻松地帮助您。

数据

我使用你的一些数据制作了一张表:

library(tidyverse)

df <- tribble(~absent, ~present, ~total, ~session,
        15,8,3,'s1',
        12,11,23,'s2',
        12,10,23,'s4',
        14,9,23,'s5',
        18,5,23,'s6',
        17,6,23,'s7')

聚会

在制作图表方面,首先您需要调用gather来整理数据,以便将当前/不存在的变量传递给fill中的ggplot方法。< / p>

gather(df, key, value, -total, -session)

这样可以安排您的数据:

   total session key     value
   <dbl> <chr>   <chr>   <dbl>
 1    3. s1      absent    15.
 2   23. s2      absent    12.
 3   23. s4      absent    12.
 4   23. s5      absent    14.
 5   23. s6      absent    18.
 6   23. s7      absent    17.
 7    3. s1      present    8.
 8   23. s2      present   11.
 9   23. s4      present   10.
10   23. s5      present    9.
11   23. s6      present    5.
12   23. s7      present    6.

绘图

然后,您可以致电ggplot创建一个包含以下内容的柱形图:

  ggplot(df, aes(x = session, y = value)) +
  geom_col(aes(fill = key))

enter image description here