Overall

Column

Sport and Events per year

Column

2016 Rio Olympic Summer Games

2014 Sochi Olympic Winter Games

2012 London Summer Games

2008 Beijing Summer Games

2004 Athens Summer Games

2000 Sydney Summer Games

Athletes

Column

Summer Olympic Games number of Athletes

Winter Olympic Games number of Athletes

Athletes Vs Winners

Column

Summer Olympic Games - GOLD

Winter Olympic Games - GOLD

Column

Summer Olympic Games - SILVER

Winter Olympic Games - SILVER

Column

Summer Olympic Games - BRONZE

Winter Olympic Games - BRONZE

Medals

Column

Summer Olympic Games Gold Medal Leader Board

Winter Olympic Games Gold Medal Leader Board

Column

2016 Rio Olympic Summer Leaderboard

2014 Sochi Olympic Winter Leaderboard

2012 London Olympic Summer Leaderboard

2008 Beijing Olympic Summer Leaderboard

2004 Athens Olympic Summer Leaderboard

Animated Medals

Novel

Column

Density Plot

Column

Boxplot Age

Wordcloud

Column

WordCloud

Column

Map

---
title: "Dashboard Debangsu"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    social: menu
    source_code: embed

---

```{r setup, include=FALSE}
#install.packages("treemapify")
#install.packages("gganimate")

library(flexdashboard)
library(tidyverse)
library(plotly)
library(treemapify)
library(gganimate)
library(gifski)
library(png)
data<-read.csv("athlete_events.csv") 
region<-read.csv("noc_regions.csv")
```
Overall {data-icon="fab fa-r-project"}
===================================== 


Column {data-width=500}
-----------------------------------------------------------------------

### Sport and Events per year

```{r}
#rmarkdown::render("C:\\Users\\Debuw\\OneDrive\\Desktop\\Sem6\\DV\\R Proj\\Demo\\usingR.Rmd")

# sport event numbers per year 

fig_dat1<-data %>% filter(Year!=1906) %>% 
  group_by(Year,Season) %>% 
  summarise(sports=n_distinct(Sport),Sport_events=n_distinct(Event))%>%
  mutate(Sport=Season, Event=Season)
  
fig_dat1 %>% ggplot(aes(x=Year,y=Sport_events)) + 
  geom_line(aes(color=Event)) +
  geom_point(aes(color=Event)) +
  geom_bar(aes(x=Year, y=sports*1.5, fill=Sport),stat = "identity") +
  scale_fill_manual(values=c("orange","darkturquoise")) +
  scale_colour_manual(values = c("orange","darkturquoise")) +
  facet_grid(Sport~., scale="free_y") +
  labs(x="Year ") +
  scale_x_continuous(breaks = seq(1890 , 2016, 12)) +
  scale_y_continuous(name = "Number of Events",
                     sec.axis = sec_axis(~./1.5, name = "Number of Sports"))

```

Column {.tabset data-width=500}
-------       
### 2016 Rio Olympic Summer Games

```{r}
fig_dat2<-data %>% filter(Year==2016 & Season=="Summer") %>% group_by(Sport) %>% summarise(Sport_events=n_distinct(Event))
fig_dat2 %>% ggplot(aes(area=Sport_events, fill=Sport, label=paste(Sport, Sport_events))) +
  geom_treemap() +
  geom_treemap_text(colour = "white",
                    place = "centre",
                    size = 12,
                    reflow = TRUE) +
  theme(legend.position = "none") +
  labs(title="Events number under 34 sports for 2016 Rio Summer Olympic Games")
```

### 2014 Sochi Olympic Winter Games

```{r}
fig_dat3<-data %>% filter(Year==2014 & Season=="Winter") %>% group_by(Sport) %>% summarise(Sport_events=n_distinct(Event))
fig_dat3 %>% ggplot(aes(area=Sport_events, fill=Sport, label=paste(Sport, Sport_events))) +
  geom_treemap() +
  geom_treemap_text(colour = "white",
                    place = "centre",
                    size = 12) +
  theme(legend.position = "none") +
  labs(title="Events number under 15 sports for 2014 Sochi Winter Olympic Games")
```

### 2012 London Summer Games

```{r}
fig_dat3<-data %>% filter(Year==2012 & Season=="Summer") %>% group_by(Sport) %>% summarise(Sport_events=n_distinct(Event))
fig_dat3 %>% ggplot(aes(area=Sport_events, fill=Sport, label=paste(Sport, Sport_events))) +
  geom_treemap() +
  geom_treemap_text(colour = "white",
                    place = "centre",
                    size = 12) +
  theme(legend.position = "none") +
  labs(title="Events number under 30 sports for 2012 London Summer Olympic Games")
```

### 2008 Beijing Summer Games

```{r}
fig_dat3<-data %>% filter(Year==2008 & Season=="Summer") %>% group_by(Sport) %>% summarise(Sport_events=n_distinct(Event))
fig_dat3 %>% ggplot(aes(area=Sport_events, fill=Sport, label=paste(Sport, Sport_events))) +
  geom_treemap() +
  geom_treemap_text(colour = "white",
                    place = "centre",
                    size = 12) +
  theme(legend.position = "none") +
  labs(title="Events number under 32 sports for 2008 Beijing Summer Olympic Games")
```

### 2004 Athens Summer Games

```{r}
fig_dat3<-data %>% filter(Year==2004 & Season=="Summer") %>% group_by(Sport) %>% summarise(Sport_events=n_distinct(Event))
fig_dat3 %>% ggplot(aes(area=Sport_events, fill=Sport, label=paste(Sport, Sport_events))) +
  geom_treemap() +
  geom_treemap_text(colour = "white",
                    place = "centre",
                    size = 12) +
  theme(legend.position = "none") +
  labs(title="Events number under 32 sports for 2004 Athens Summer Olympic Games")
```

### 2000 Sydney Summer Games

```{r}
fig_dat3<-data %>% filter(Year==2000 & Season=="Summer") %>% group_by(Sport) %>% summarise(Sport_events=n_distinct(Event))
fig_dat3 %>% ggplot(aes(area=Sport_events, fill=Sport, label=paste(Sport, Sport_events))) +
  geom_treemap() +
  geom_treemap_text(colour = "white",
                    place = "centre",
                    size = 12) +
  theme(legend.position = "none") +
  labs(title="Events number under 32 sports for 2000 Sydney Summer Olympic Games")
```

Athletes {data-icon="fa-swimmer"}
===================================== 

Column {.tabset data-width=500}
-------

### Summer Olympic Games number of Athletes
    
```{r}
# show the number of athlete
fig_dat4<-data %>% 
  filter(Season=="Summer" & Year!=1906) %>% 
  group_by(Year,Sex) %>% 
  summarise(Athletes=n_distinct(ID))
fig4<-fig_dat4 %>% ggplot(aes(x=Year,y=Athletes, fill=Sex)) + 
  geom_bar(stat="identity",position = "stack",color="black") +
  labs(x="Year", y="Number of Athletes Stacked") +
  scale_x_continuous(breaks = seq(1896 , 2016, 20))+
  scale_fill_manual(values = c("#c437bd", "#2656bd"))
ggplotly(fig4)
```

### Winter Olympic Games number of Athletes
    
```{r}
# show the number of athlete
fig_dat5<-data %>% 
  filter(Season=="Winter") %>% 
  group_by(Year,Sex) %>% 
  summarise(Athletes=n_distinct(ID))
fig5<-fig_dat5 %>% ggplot(aes(x=Year,y=Athletes, group=Sex, fill=Sex)) + 
  geom_bar(stat="identity",position = "stack",color="black") +
  labs(x="Year", y="Number of Athletes Stacked") +
  scale_x_continuous(breaks = seq(1896 , 2016, 20)) +
  scale_fill_manual(values = c("#c437bd", "#2656bd"))
ggplotly(fig5)
```

Athletes Vs Winners{data-icon="fa-trophy"}
===================================== 

Column {.tabset data-width=500}
-------       
### Summer Olympic Games - GOLD

```{r}
sub_data1<-data %>% filter(Medal=='Gold' & Year!=1906) %>% 
  group_by(Year,Season, NOC) %>% 
  summarise(Gold_Medal_count=n_distinct(Event)) 
sub_data2<-data %>% filter(Year!=1906) %>% 
  group_by(Year,Season, NOC) %>% 
  summarise(athletes_count=n_distinct(ID))
fig_dat6<-merge(sub_data2,sub_data1, by=c("Year","Season","NOC"))
fig_dat6  %>% filter(Season=="Summer") %>% 
  ggplot(aes(x=athletes_count, y=Gold_Medal_count)) + 
  geom_point() +
  labs(x="Number of athletes", y="Number of gold medal") + 
  facet_wrap(Year~.)
```

### Winter Olympic Games - GOLD

```{r}
fig_dat6  %>% filter(Season=="Winter") %>% 
  ggplot(aes(x=athletes_count, y=Gold_Medal_count)) + 
  geom_point() +
  labs(x="Number of athletes", y="Number of gold medal") + 
  facet_wrap(Year~.)
```

Column {.tabset data-width=500}
-------       
### Summer Olympic Games - SILVER

```{r}
sub_data1<-data %>% filter(Medal=='Silver' & Year!=1906) %>% 
  group_by(Year,Season, NOC) %>% 
  summarise(Silver_Medal_count=n_distinct(Event)) 
sub_data2<-data %>% filter(Year!=1906) %>% 
  group_by(Year,Season, NOC) %>% 
  summarise(athletes_count=n_distinct(ID))
fig_dat6<-merge(sub_data2,sub_data1, by=c("Year","Season","NOC"))
fig_dat6  %>% filter(Season=="Summer") %>% 
  ggplot(aes(x=athletes_count, y=Silver_Medal_count)) + 
  geom_point() +
  labs(x="Number of athletes", y="Number of silver medal") + 
  facet_wrap(Year~.)
```

### Winter Olympic Games - SILVER

```{r}
fig_dat6  %>% filter(Season=="Winter") %>% 
  ggplot(aes(x=athletes_count, y=Silver_Medal_count)) + 
  geom_point() +
  labs(x="Number of athletes", y="Number of silver medal") + 
  facet_wrap(Year~.)
```

Column {.tabset data-width=500}
-------       
### Summer Olympic Games - BRONZE

```{r}
sub_data1<-data %>% filter(Medal=='Bronze' & Year!=1906) %>% 
  group_by(Year,Season, NOC) %>% 
  summarise(Bronze_Medal_count=n_distinct(Event)) 
sub_data2<-data %>% filter(Year!=1906) %>% 
  group_by(Year,Season, NOC) %>% 
  summarise(athletes_count=n_distinct(ID))
fig_dat6<-merge(sub_data2,sub_data1, by=c("Year","Season","NOC"))
fig_dat6  %>% filter(Season=="Summer") %>% 
  ggplot(aes(x=athletes_count, y=Bronze_Medal_count)) + 
  geom_point() +
  labs(x="Number of athletes", y="Number of bronze medal") + 
  facet_wrap(Year~.)
```

### Winter Olympic Games - BRONZE

```{r}
fig_dat6  %>% filter(Season=="Winter") %>% 
  ggplot(aes(x=athletes_count, y=Bronze_Medal_count)) + 
  geom_point() +
  labs(x="Number of athletes", y="Number of bronze medal") + 
  facet_wrap(Year~.)
```

Medals {data-icon="fa-medal"}
===================================== 

Column {.tabset data-width=500}
-------

### Summer Olympic Games Gold Medal Leader Board
```{r}
# show the country with most gold Medal for each Summer Olympic Games
fig_dat6<-data %>% filter(Medal=='Gold') %>% 
  filter(Season=="Summer" & Year!=1906) %>%
  group_by(Year,NOC) %>% 
  summarise(Gold_Medal_count=n_distinct(Event)) %>% 
  top_n(1, Gold_Medal_count) %>% arrange(desc(Gold_Medal_count)) %>%
  merge(region,by="NOC")
fig_dat6 %>% ggplot(aes(x=factor(Year), y=Gold_Medal_count, fill=region)) + 
  geom_bar(stat='identity',position =   position_dodge()) + 
  geom_text(aes(x=factor(Year), y=Gold_Medal_count/2,label=NOC),size=2, position =position_dodge(width=1)) +
  geom_text(aes(x=factor(Year), y=Gold_Medal_count*1.05,label=Gold_Medal_count),size=2, position =position_dodge(width=1)) +
  coord_flip() +
  labs(x="Year",y="Gold Medals")
```

### Winter Olympic Games Gold Medal Leader Board
```{r}
# show the country with most gold Medal for each Summer Olympic Games
fig_dat7<-data %>% filter(Medal=='Gold') %>% 
  filter(Season=="Winter") %>%
  group_by(Year,NOC) %>% 
  summarise(Gold_Medal_count=n_distinct(Event)) %>% 
  top_n(1, Gold_Medal_count) %>% arrange(desc(Gold_Medal_count)) %>%
  merge(region,by="NOC")
fig_dat7 %>% ggplot(aes(x=factor(Year), y=Gold_Medal_count, fill=region)) + 
  geom_bar(stat='identity',position =   position_dodge()) + 
  geom_text(aes(x=factor(Year), y=Gold_Medal_count/2,label=NOC),size=2, position =position_dodge(width=1)) +
  geom_text(aes(x=factor(Year), y=Gold_Medal_count*1.05,label=Gold_Medal_count),size=2, position =position_dodge(width=1)) +
  coord_flip() +
  labs(x="Year",y="Gold Medals")
```

Column {.tabset data-width=500}
-------

### 2016 Rio Olympic Summer Leaderboard
```{r}
fig_dat8<-data %>% filter(Year==2016 & Season=="Summer" & Medal!="NA") %>% 
  group_by(NOC,Medal) %>% 
  summarise(Medal_count=n_distinct(Event)) %>%
  mutate(total_medal=sum(Medal_count)) %>%
  spread(Medal, Medal_count) %>% 
  arrange(desc(Gold),desc(total_medal)) %>%
  head(10) %>%
  ungroup() %>%
  mutate(gold_rank=1:10) %>%
  gather("Medal","count",-c(NOC,gold_rank,total_medal)) %>%
  mutate(Medal=factor(Medal, levels=c("Gold","Silver","Bronze"))) %>%
  merge(region,by="NOC")
fig_dat8 %>% ggplot(aes(x= reorder(region,-gold_rank),y=count, fill=Medal)) +
  geom_bar(stat = "identity", position = position_stack(reverse = T)) +
  scale_fill_manual(values=c("#FFCC33","#D7D7D7","#CC6600"))+
  labs(x="", y="") +
  coord_flip() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank()) 
  
```

### 2014 Sochi Olympic Winter Leaderboard
```{r}
fig_dat9<-data %>% filter(Year==2014 & Season=="Winter" & Medal!="NA") %>% 
  group_by(NOC,Medal) %>% 
  summarise(Medal_count=n_distinct(Event)) %>%
  mutate(total_medal=sum(Medal_count)) %>%
  spread(Medal, Medal_count) %>% 
  arrange(desc(Gold),desc(total_medal)) %>%
  head(10) %>%
  ungroup() %>%
  mutate(gold_rank=1:10) %>%
  gather("Medal","count",-c(NOC,gold_rank,total_medal)) %>%
  mutate(Medal=factor(Medal, levels=c("Gold","Silver","Bronze"))) %>%
  merge(region,by="NOC")
fig_dat9 %>% ggplot(aes(x= reorder(region,-gold_rank),y=count, fill=Medal)) +
  geom_bar(stat = "identity", position = position_stack(reverse = T)) +
  scale_fill_manual(values=c("#FFCC33","#D7D7D7","#CC6600"))+
  labs(x="", y="") +
  coord_flip() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank())
  
```

### 2012 London Olympic Summer Leaderboard
```{r}
fig_dat9<-data %>% filter(Year==2012 & Season=="Summer" & Medal!="NA") %>% 
  group_by(NOC,Medal) %>% 
  summarise(Medal_count=n_distinct(Event)) %>%
  mutate(total_medal=sum(Medal_count)) %>%
  spread(Medal, Medal_count) %>% 
  arrange(desc(Gold),desc(total_medal)) %>%
  head(10) %>%
  ungroup() %>%
  mutate(gold_rank=1:10) %>%
  gather("Medal","count",-c(NOC,gold_rank,total_medal)) %>%
  mutate(Medal=factor(Medal, levels=c("Gold","Silver","Bronze"))) %>%
  merge(region,by="NOC")
fig_dat9 %>% ggplot(aes(x= reorder(region,-gold_rank),y=count, fill=Medal)) +
  geom_bar(stat = "identity", position = position_stack(reverse = T)) +
  scale_fill_manual(values=c("#FFCC33","#D7D7D7","#CC6600"))+
  labs(x="", y="") +
  coord_flip() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank())
  
```

### 2008 Beijing Olympic Summer Leaderboard
```{r}
fig_dat9<-data %>% filter(Year==2008 & Season=="Summer" & Medal!="NA") %>% 
  group_by(NOC,Medal) %>% 
  summarise(Medal_count=n_distinct(Event)) %>%
  mutate(total_medal=sum(Medal_count)) %>%
  spread(Medal, Medal_count) %>% 
  arrange(desc(Gold),desc(total_medal)) %>%
  head(10) %>%
  ungroup() %>%
  mutate(gold_rank=1:10) %>%
  gather("Medal","count",-c(NOC,gold_rank,total_medal)) %>%
  mutate(Medal=factor(Medal, levels=c("Gold","Silver","Bronze"))) %>%
  merge(region,by="NOC")
fig_dat9 %>% ggplot(aes(x= reorder(region,-gold_rank),y=count, fill=Medal)) +
  geom_bar(stat = "identity", position = position_stack(reverse = T)) +
  scale_fill_manual(values=c("#FFCC33","#D7D7D7","#CC6600"))+
  labs(x="", y="") +
  coord_flip() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank())
  
```

### 2004 Athens Olympic Summer Leaderboard

```{r}
fig_dat9<-data %>% filter(Year==2004 & Season=="Summer" & Medal!="NA") %>% 
  group_by(NOC,Medal) %>% 
  summarise(Medal_count=n_distinct(Event)) %>%
  mutate(total_medal=sum(Medal_count)) %>%
  spread(Medal, Medal_count) %>% 
  arrange(desc(Gold),desc(total_medal)) %>%
  head(10) %>%
  ungroup() %>%
  mutate(gold_rank=1:10) %>%
  gather("Medal","count",-c(NOC,gold_rank,total_medal)) %>%
  mutate(Medal=factor(Medal, levels=c("Gold","Silver","Bronze"))) %>%
  merge(region,by="NOC")
fig_dat9 %>% ggplot(aes(x= reorder(region,-gold_rank),y=count, fill=Medal)) +
  geom_bar(stat = "identity", position = position_stack(reverse = T)) +
  scale_fill_manual(values=c("#FFCC33","#D7D7D7","#CC6600"))+
  labs(x="", y="") +
  coord_flip() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank())
  
```

Animated Medals {data-icon="fa-medal"}
===================================== 

```{r}
medalCounts <- data %>% filter(!is.na(Medal))%>% 
  group_by(NOC, Medal, Event, Games, Year) %>%
  summarize(isMedal=1)
medalCounts <-  medalCounts %>% 
  group_by(NOC, Medal, Year) %>%
  summarize(Count= sum(isMedal))
medalCounts <- left_join(medalCounts, region, by= "NOC" )
medalCounts <- medalCounts %>% 
  mutate (Team = region)
medalCounts <- medalCounts %>% select( Medal, Team, Count, Year)
levelsTeam <- medalCounts %>%
  group_by(Team) %>%
  summarize(Total=sum(Count)) %>%
  arrange(desc(Total)) %>%
  select(Team) %>%
  slice(10:1)
medalCounts$Team <- factor(medalCounts$Team, levels=levelsTeam$Team)
medalCounts <- medalCounts %>% filter(Team != "NA")
plotMedalsAnim<- ggplot(medalCounts, aes(x=Team, y=Count, fill=Medal)) +
  labs(x = "Nations", y = "Count", 
       title='Top 10 - Comparison over time, nations with the most medals', 
       subtitle = 'Olympic Games from 1896 to 2016 - Year: {frame_time}')  +
  transition_time(Year)+
  geom_col() +
  coord_flip() +
  scale_fill_manual(values=c("#CC6600","#FFCC33","#D7D7D7"))

animate(plotMedalsAnim,fps=2)


```


Novel {data-icon="fa-exclamation"}
===================================== 


Column {data-width=500}
-------

### Density Plot

```{r}
ggplot(data, aes(x=Age, fill=Sex))+
  geom_density(alpha=0.4)+
  labs(x = "Age", title = "Age Distribution of Olympians - Gender and Awards")+
  theme_minimal()+
  facet_wrap(~Medal)
```


Column {data-width=500}
-------

### Boxplot Age

```{r}

plotbox <- plot_ly(data, x = ~Age, type="box", color = I("black"), name = 'All athletes') %>%
  add_trace(name="Athletics (m)",data=filter(data[data$Sport %in% "Athletics",],Sex=="M"),color=I("purple"),fillcolor="red") %>%
  add_trace(name="Athletics (f)",data=filter(data[data$Sport %in% "Athletics",],Sex=="F"),color=I("green"),fillcolor="red") %>%
  add_trace(name="Cycling (m)",data=filter(data[data$Sport %in% "Cycling",],Sex=="M"),color=I("purple"),fillcolor="orange") %>%
  add_trace(name="Cycling (f)",data=filter(data[data$Sport %in% "Cycling",],Sex=="F"),color=I("green"),fillcolor="orange") %>%
  add_trace(name="Fencing (m)",data=filter(data[data$Sport %in% "Fencing",],Sex=="M"),color=I("purple"),fillcolor="cyan") %>%
  add_trace(name="Fencing (f)",data=filter(data[data$Sport %in% "Fencing",],Sex=="F"),color=I("green"),fillcolor="cyan") %>%
  add_trace(name="Gymnastics (m)",data=filter(data[data$Sport %in% "Gymnastics",],Sex=="M"),color=I("purple"),fillcolor="blue") %>%
  add_trace(name="Gymnastics (f)",data=filter(data[data$Sport %in% "Gymnastics",],Sex=="F"),color=I("green"),fillcolor="blue") %>%
  add_trace(name="Swimming (m)",data=filter(data[data$Sport %in% "Swimming",],Sex=="M"),color=I("purple"),fillcolor="grey") %>%
  add_trace(name="Swimming (f)",data=filter(data[data$Sport %in% "Swimming",],Sex=="F"),color=I("green"),fillcolor="grey")
plotbox

```

Wordcloud {data-icon="fa-cloud"}
===================================== 

Column {data-width=500}
-------

### WordCloud
```{r}
library("wordcloud")
team_ordering <- data %>% 
  select(Team) %>% 
  count(Team, sort = TRUE) %>% 
  group_by(Team) %>%
  with(wordcloud(Team, n, max.words = 30, colors = brewer.pal(20, "Set1")))
```

Column {data-width=500}
-------
```{r}


```

Map {data-icon="fa-map-location-dot"}
===================================== 

```{r}
medalCounts <- data %>% filter(!is.na(Medal))%>% 
  group_by(NOC, Medal, Event, Games) %>%
  summarize(isMedal=1)
medalCounts <-  medalCounts %>% 
  group_by(NOC, Medal) %>%
  summarize(Count= sum(isMedal))
medalCounts <- left_join(medalCounts, region, by= "NOC" ) %>% 
  select(region, NOC, Medal, Count)
medalCounts <- medalCounts %>%
  group_by(region) %>%
  summarize(Total=sum(Count))
data_regions <- medalCounts %>% 
  left_join(region,by="region") %>%
  filter(!is.na(region))
earth <- map_data("world")
earth <- left_join(earth, data_regions, by="region")
# PLOT MAP
plotMapMedals <- ggplot(earth, aes(x = long, y = lat, group = group)) +
  geom_polygon(aes(fill = Total, label= region)) +
  labs(x = "", y = "", 
       title="Map of nations - Most medals won", 
       subtitle = "") +
  guides(fill=guide_colourbar(title="medals")) +
  scale_fill_gradient(low="white",high="gold3")
plotMapMedals
ggplotly(plotMapMedals)
```