library(tidyverse)
<- tidytuesdayR::tt_load(2023, week = 17)
tuesdata <- tuesdata$winners
winners <- tuesdata$london_marathon london_marathon
To cite Federica’s work, please use: Gazzelloni F., 2023 Data Visualization London Marathon
%>%count(Nationality) winners
%>%head london_marathon
%>%
london_marathonmutate(ymon=zoo::as.yearmon(Date),.after=Date)%>%
arrange(ymon)%>%
pivot_longer(cols=c(Starters,Finishers))%>%
select(ymon,name,value)%>%
ggplot(aes(x=ymon,y=value,group=name,color=name))+
geom_point()+
geom_smooth(method="lm",
linewidth=0.5,
se=F)
<- winners%>%
time count(Time)%>%
mutate(time=hms(Time))
library(hms)
<- winners%>%
df select(Year,Nationality,Time)%>%
mutate(time=lubridate::hms(Time)) %>%
group_by(Nationality)%>%
mutate(mean=mean(Time),
sd=sd(Time),
max=max(Time),
min=min(Time))%>%
filter(!is.na(sd))
df
# Create multiple plots using facet_wrap()
ggplot(df, aes(x = Year, y = time)) +
geom_point() +
geom_errorbar(aes(ymin = mean - sd, ymax = mean + sd), color = "grey80") +
scale_color_gradient(low = "blue", high = "red") +
geom_smooth(method = "lm") +
#scale_y_time()+
facet_wrap(~Nationality,scales = "free_y")+
theme(axis.text.y = element_blank())
%>%
london_marathonpivot_longer(cols=c(Applicants,Accepted))%>%
select(Year,name,value) %>%
ggplot(aes(x=Year,y=value,group=name,color=name))+
geom_point()+
geom_smooth(method="lm",
linewidth=0.5,
se=F)
%>%
london_marathonfilter(!Year==2020)%>%
select(Year,Applicants,Accepted)%>%
ggplot(aes(x=Year))+
geom_point(aes(y=Applicants))+
geom_point(aes(y=Accepted))+
geom_segment(aes(xend=Year,y=Accepted,yend=Applicants))
%>%
winnersgroup_by(Nationality)%>%
mutate(n=n())%>%
arrange(-n)%>%
filter(Nationality%in%c("United Kingdom","Ireland","Kenya"))%>%
ggplot(aes(x=Nationality,y=n))+
geom_point()
%>%
london_marathonfilter(!is.na(Raised))%>%
select(Year,Accepted,Raised)%>%
inner_join(winners%>%count(Year,Nationality),by="Year")%>%
arrange(Year)%>%
mutate(Nationality=as.factor(Nationality))%>%
filter(Nationality%in%c("Kenya","United Kingdom","United States"))
ggplot(aes(Accepted,Raised,group=Nationality,color=Nationality))+
geom_point()+
geom_line()
facet_wrap(~Nationality)
library(sysfonts)
::font_add_google("Chelsea Market","Chelsea Market")
sysfontslibrary(showtext)
::showtext_auto() showtext
%>%
london_marathonfilter(!is.na(Raised))%>%
select(Year,Accepted,Raised)%>%
inner_join(winners%>%count(Year,Nationality),by="Year")%>%
arrange(Year)%>%
mutate(Nationality=as.factor(Nationality))%>%
filter(Nationality%in%c("Kenya","United Kingdom","United States"))%>%
mutate(Accepted=scale(Accepted,
center = F, scale = TRUE),
Raised=scale(Raised,
center = F, scale = TRUE)
%>%
) # pivot_longer(cols = c("Accepted","Raised"))%>% #count(Year)
ggplot(aes(x=Year)
#group=name,
#color=name,fill=name)
+
)geom_point(aes(y=Accepted),
shape=21,stroke=0.5,
size=2,
color="white",
fill="#910C00",
key_glyph = draw_key_rect)+
geom_point(aes(y=Raised),
shape=21,stroke=0.5,
size=2,
fill="#00668F",
color="white",
key_glyph = draw_key_rect)+
geom_line(aes(y=Accepted,color="Accepted"),
linewidth=1,
key_glyph = draw_key_rect)+
geom_line(aes(y=Raised,color="Raised"),
linewidth=1,
key_glyph = draw_key_rect)+
geom_segment(aes(xend=Year,y=Accepted,yend=Raised),
color="grey80")+
facet_wrap(~Nationality) +
labs(title="Amount raised for charity based on acceptance",
subtitle="scaled by the standard deviations without centering",
caption="DataSource: #TidyTuesday Week 17 London Marathon\n#30DayChartChallenge Day 26 uncertanties: local change | DataViz: Federica Gazzelloni",
color="")+
scale_x_continuous(breaks = c(2007,2010,2014,2017))+
scale_colour_manual("",
breaks = c("Accepted", "Raised"),
values = c("#910C00", "#00668F")) +
guides(fill="none")+
::theme_stata(base_family = "Chelsea Market",
ggthemesscheme="s1rcolor")+
theme(text=element_text(size=30),
strip.background = element_rect(color="#910C00",fill="#910C00"),
plot.caption = element_text(hjust = 0.5, size=30, lineheight = 0.5),
plot.title = element_text(size=60),
plot.subtitle = element_text(size=40),
axis.title.y = element_blank())
::showtext_auto(enable = T)
showtextggsave("w17_LM.png",
dpi=320,
width = 7,height = 5,
bg="black")