Столбчатая диаграмма в ggplot2 с использованием категориальной переменной в качестве заливки - PullRequest
0 голосов
/ 30 января 2019

Итак, я анализирую таблицу данных со студентами (удалено), их учебным годом (2020, 2021, 2022) и с тем, получили ли они интервью.Я хотел бы графически показать количество студентов в каждом учебном году, которые подали заявку и которые фактически прошли собеседование.

Я пытался закодировать это, но во многих моих попытках я получал ошибки, которые говорят мне, что, возможно, я не подхожу к этому правильно.

ДАННЫЕ:

app <- structure(list(Interview = c("Yes", "Yes", "Yes", "Yes", "Yes", 
"No", "Yes", "No", "No", "Yes", "No", "Yes", "No", "No", "Yes", 
"Yes", "Yes", "Yes", "Yes", "No"), Year = c(2021, 2021, 2020, 
2022, 2022, 2022, 2020, 2021, 2021, 2021, 2020, 2022, 2022, 2021, 
2022, 2020, 2022, 2022, 2020, 2020)), row.names = c(NA, -20L), class = 
c("tbl_df", 
"tbl", "data.frame"))

Iзатем использовал dplyr и ggplot, чтобы сгруппировать данные и построить соответственно библиотеку (dplyr) библиотеку (ggplot2) библиотеку (ggthemes) библиотеку (readxl)

 year_table <- app %>% 
   group_by(Year) %>% 
   summarize(number = n()) %>% 
   mutate(pct=number/sum(number)) %>% 
   arrange(desc(pct))
 year_table

 #interview candidates
 year_table_int <- app_int %>% 
   group_by(Year) %>% 
   summarize(number = n()) %>% 
   mutate(pct=number/sum(number)) %>% 
   arrange(desc(pct))
 year_table

 ggplot(data = year_table, mapping = aes(x = Year, y = number)) +
   geom_col(fill= "darkslategray3") + theme_economist() +
   ggtitle("Distribution of Applicants based on Class Year") +
   geom_text(data=year_table, aes(label=paste0(round(pct*100,1),"%"),
                                  y=number), size=4, vjust = -.5) +
   labs(y = "Number of Applicants")


 #Attempt 2
 a<- 1:200
 ggplot(year_table, aes(x=factor(Year), y=number)) +
   geom_bar(position="dodge", stat="identity",aes(fill=factor(Interview))) +
   coord_cartesian(ylim=c(50, 150)) + scale_y_continuous(breaks=a[a%%10==0]) +
   xlab("Year") + ylab("Number of Applicants") + 
 scale_fill_discrete(name="Interview?") +
   theme(axis.text.x = element_text(size=14))

В этот момент я запутался, но включил визуальныйотносительно того, как я хотел бы, чтобы это выглядело.Может быть, лучше использовать geom_bar ???Не знаю, независимо от того, хочу ли я показать год обучения по оси X, число (или число) в столбцах «почему» и «уклонение», указывающие как общее число кандидатов, так и число #, получивших интервью (интервью = да).

https://imgur.com/a/Lan6HiN

1 Ответ

0 голосов
/ 30 января 2019

Я уверен, что вы можете оформить сюжет самостоятельно.

ggplot(app, aes(x = Interview, fill = Interview)) +
    geom_bar() + 
    theme_economist() + 
    facet_wrap(~Year) +
    theme(legend.position="none")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...