Bar chart of grouped data

Hi,
I have a dataset for monitoring teachers. I need to know how many teachers are taking different parts of the curriculum. So, the data has a variable, "participation" that shows whether the teacher is taking the class or not. The curriculum has 3 parts- circle time, language and numeracy. I need to get a bar chart where the X-axis will be weeks and Y-axis will be number of teachers who are taking the class.

library(tidyverse)

data<-tibble::tribble(
         ~mastertraid,               ~en_name,                                                     ~schoolid,                   ~teacherid, ~week_no,        ~block, ~participation,
  "Madhumathi Totagi",       "Sunitha Banner",                    "SCH092-GHPKGS BYAHATTI HUBLI-29090701420",     "Chandrakala S Devadiga",       2L, "circle_time",             0L,
  "Madhumathi Totagi",       "Sunitha Banner",                    "SCH092-GHPKGS BYAHATTI HUBLI-29090701420",     "Chandrakala S Devadiga",       2L,    "literacy",             1L,
  "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",           "Smt. S. V. Joshi",       2L, "circle_time",             0L,
  "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",           "Smt. S. V. Joshi",       2L,    "literacy",             1L,
  "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",           "Smt. S. V. Joshi",       2L,    "numeracy",             1L,
  "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",         "Smt. L. G. Tadasad",       2L, "circle_time",             0L,
         "Anil Joshi", "Netravathi Kattimani",  "SCH080-GLPS CHABBI PLOT NEKAR NAGAR HALE HUBLI-29090205101",        "Elizabeth Banikatti",       2L, "circle_time",             1L,
         "Anil Joshi", "Netravathi Kattimani",  "SCH080-GLPS CHABBI PLOT NEKAR NAGAR HALE HUBLI-29090205101",        "Elizabeth Banikatti",       2L,    "literacy",             0L,
         "Anil Joshi", "Netravathi Kattimani",  "SCH080-GLPS CHABBI PLOT NEKAR NAGAR HALE HUBLI-29090205101",        "Elizabeth Banikatti",       2L,    "numeracy",             1L,
         "Anil Joshi",        "Ashwini Patil",                              "SCH015-GHPS CHEBBI-29090201502",                 "B I Kittli",       2L, "circle_time",             1L,
         "Anil Joshi",        "Ashwini Patil",                              "SCH015-GHPS CHEBBI-29090201502",                 "B I Kittli",       2L,    "literacy",             0L,
         "Anil Joshi",        "Ashwini Patil",                              "SCH015-GHPS CHEBBI-29090201502",                 "B I Kittli",       2L,    "numeracy",             1L,
      "Nagma Hungund",   "Anjalidevi Dotikal",                         "SCH035-GHPS GAMANAGATTI-29090107002", "Veerangouda D Policegoudar",       2L,    "literacy",             1L,
      "Nagma Hungund",   "Anjalidevi Dotikal",                         "SCH035-GHPS GAMANAGATTI-29090107002", "Veerangouda D Policegoudar",       2L,    "numeracy",             1L,
      "Nagma Hungund",   "Anjalidevi Dotikal",                         "SCH035-GHPS GAMANAGATTI-29090107002",           "Sunita D Kamatar",       2L, "circle_time",             1L
  )


data %>%
  mutate(week_no=as.character(week_no)) %>% 
  group_by(mastertraid,en_name,schoolid,teacherid,week_no,block,participation) %>% 
  summarise(num=n()) %>% 
  ggplot(aes(week_no,num))+
  geom_bar(stat = "identity",width = .6)+
  labs(x="week",
       y="# of teachers")
#> `summarise()` has grouped output by 'mastertraid', 'en_name', 'schoolid', 'teacherid', 'week_no', 'block'. You can override using the `.groups` argument.


Created on 2022-09-29 by the reprex package (v2.0.1)

I think you want to do something like this

library(tidyverse)

data <-tibble::tribble(
    ~mastertraid,               ~en_name,                                                     ~schoolid,                   ~teacherid, ~week_no,        ~block, ~participation,
    "Madhumathi Totagi",       "Sunitha Banner",                    "SCH092-GHPKGS BYAHATTI HUBLI-29090701420",     "Chandrakala S Devadiga",       2L, "circle_time",             0L,
    "Madhumathi Totagi",       "Sunitha Banner",                    "SCH092-GHPKGS BYAHATTI HUBLI-29090701420",     "Chandrakala S Devadiga",       2L,    "literacy",             1L,
    "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",           "Smt. S. V. Joshi",       2L, "circle_time",             0L,
    "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",           "Smt. S. V. Joshi",       2L,    "literacy",             1L,
    "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",           "Smt. S. V. Joshi",       2L,    "numeracy",             1L,
    "Madhumathi Totagi",       "Sunitha Banner", "SCH012-KARNATAKA PUBLIC SCHOOL GMPS GOPANAKOPPA-29090606513",         "Smt. L. G. Tadasad",       2L, "circle_time",             0L,
    "Anil Joshi", "Netravathi Kattimani",  "SCH080-GLPS CHABBI PLOT NEKAR NAGAR HALE HUBLI-29090205101",        "Elizabeth Banikatti",       2L, "circle_time",             1L,
    "Anil Joshi", "Netravathi Kattimani",  "SCH080-GLPS CHABBI PLOT NEKAR NAGAR HALE HUBLI-29090205101",        "Elizabeth Banikatti",       2L,    "literacy",             0L,
    "Anil Joshi", "Netravathi Kattimani",  "SCH080-GLPS CHABBI PLOT NEKAR NAGAR HALE HUBLI-29090205101",        "Elizabeth Banikatti",       2L,    "numeracy",             1L,
    "Anil Joshi",        "Ashwini Patil",                              "SCH015-GHPS CHEBBI-29090201502",                 "B I Kittli",       2L, "circle_time",             1L,
    "Anil Joshi",        "Ashwini Patil",                              "SCH015-GHPS CHEBBI-29090201502",                 "B I Kittli",       2L,    "literacy",             0L,
    "Anil Joshi",        "Ashwini Patil",                              "SCH015-GHPS CHEBBI-29090201502",                 "B I Kittli",       2L,    "numeracy",             1L,
    "Nagma Hungund",   "Anjalidevi Dotikal",                         "SCH035-GHPS GAMANAGATTI-29090107002", "Veerangouda D Policegoudar",       2L,    "literacy",             1L,
    "Nagma Hungund",   "Anjalidevi Dotikal",                         "SCH035-GHPS GAMANAGATTI-29090107002", "Veerangouda D Policegoudar",       2L,    "numeracy",             1L,
    "Nagma Hungund",   "Anjalidevi Dotikal",                         "SCH035-GHPS GAMANAGATTI-29090107002",           "Sunita D Kamatar",       2L, "circle_time",             1L
)


data %>%
    filter(participation == 1) %>% 
    count(week_no, block, name = "num") %>% 
    ggplot(aes(as.factor(week_no), num, fill = block))+
    geom_col(width = .6, position = position_dodge())+
    labs(x = "week",
         y = "# of teachers")

Created on 2022-09-29 with reprex v2.0.2

"Note: Next time try to provide sample data that contains more than a single category for any grouping variable, like week_no in this case.

2 Likes

Thank you.. This was my requirement.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.