加载R包
library(tidyverse)
library(camcorder)
gg_record(dir = "tidytuesday-temp", device = "png", width = 8, height = 8, units = "in", dpi = 320)
导入数据
team_results <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2024/2024-03-26/team-results.csv') %>%
janitor::clean_names()
数据预处理
f1 <- "Graphik"
f1b <- "Graphik Compact"
f2 <- "Produkt"
f2b <- "Produkt Medium"
pal <- MetBrewer::met.brewer("Homer2")
tr <- team_results %>%
mutate(
f4percent = parse_number(f4percent),
champpercent = parse_number(champpercent)
)
画图
ggplot(tr, aes(pake, pase, label = str_wrap(team, 12))) +
geom_vline(xintercept = 0) +
geom_hline(yintercept = 0) +
geom_abline(linetype = "dotted") +
geom_point(aes(size = champpercent, color = f4percent), alpha = 0.7) +
shadowtext::geom_shadowtext(data = . %>% filter(champpercent > 33), nudge_y = -0.5, family = f1b, color = "black", bg.color = "white", size = 4.5, lineheight = 0.9) +
scale_color_stepsn(colors = pal) +
scale_size_area(max_size = 10) +
coord_fixed() +
guides(
size = guide_legend(reverse = TRUE, override.aes = list(color = pal[4])),
color = guide_colorsteps(show.limits = TRUE)
) +
labs(
x = "Performance Against KenPom Expectation (PAKE)",
y = "Performance Against Seed Expectation (PASE)",
color = "Likelihood of getting to\nat least 1 Final Four",
size = "Likelihood of winning\nat least 1 Championship",
title = "NCAA Men's March Madness: Performance vs. Expectations",
subtitle = "Data for 236 teams, from 2008 to 2024. The 2020 tournament was canceled due to Covid-19",
caption = "Source: Nishaan Amin · Graphic: Georgios Karamanis"
) +
theme_minimal(base_family = f1) +
theme(
legend.position = c(0.72, 0.13),
legend.title = element_text(hjust = 1, margin = margin(0, 0, 10, 0)),
legend.box = "horizontal",
legend.key.width = unit(0.8, "line"),
plot.background = element_rect(fill = "grey99", color = NA),
plot.title = element_text(face = "bold"),
plot.margin = margin(10, 10, 10, 10))
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/97b16be3bbac4c67bd32c12c135c9cc1.png)