-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_correlation_plot.R
30 lines (26 loc) · 1.41 KB
/
create_correlation_plot.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## making the correlation image
library(tidyverse)
library(viridis)
# reading in data
student_data <- read_csv("studentdata.csv")
cors <- cor(student_data[, c("final_grade_per", "problems_correct_per", "problems_tried_per", "quartiles_finished_per")])
cors[upper.tri(cors, diag = TRUE)] <- NA
cors <- data.frame(cors)
cors <- cors %>%
rownames_to_column(var = "var1") %>%
pivot_longer(-var1, names_to = "var2", values_to = "cors") %>%
na.omit(.) %>%
mutate(cor_breaks = cut(cors, breaks = seq(-1, 1, length.out = 11), include.lowest = T)) %>%
as_tibble(.)
ggplot(cors, mapping = aes(x = var1, y = var2, fill = cor_breaks)) +
geom_tile() +
scale_fill_viridis(name = "Correlation", discrete = TRUE, drop = FALSE) +
scale_x_discrete(breaks = c("problems_correct_per", "problems_tried_per", "quartiles_finished_per"),
labels = c("PCP", "PTP", "QFP")) +
scale_y_discrete(breaks = c("final_grade_per", "problems_correct_per", "problems_tried_per"),
labels = c("FGP", "PCP", "PTP")) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1, size = 20, face = "bold"),
axis.text.y = element_text(size = 20, face = "bold"),
axis.title = element_blank(),
legend.text = element_text(size = 20, face = "bold"),
legend.title = element_text(size = 20, face = "bold"))