Créer un arbre!

Cette semaine le #Tidytuesday nous fait découvrir les visites dans les Parcs Nationaux des États-Unis. Pour visualiser les régions qui sont les plus et les moins fréquentés, j’ai choisi de créer un arbre.



CONTEXTE

Les données sont disponibles sur le site de data.world. Il y a aussi un article de FiveThrityEight, paru en 2016, qui a couvert ces données et présente plusieurs visualisations de données qui valent la peine d’être vue.

Le nombre total de visites de loisirs dans tous les sites NPS a dépassé les 300 millions en 2015, soit une augmentation incroyable de 14 millions par rapport à 2014. Outre les parcs nationaux, les sites NPS incluent des lieux historiques nationaux, des monuments nationaux, des rives et des lacs nationaux, etc.



OBJECTIFS

  1. Créer un visuel qui montre clairement quels sont les régions les plus fréquentés et les régions les moins fréquentés.



IMPORTER

park_visits <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-09-17/national_parks.csv")
FALSE Parsed with column specification:  
FALSE cols(  
FALSE   year = col_character(),  
FALSE   gnis_id = col_character(),  
FALSE   geometry = col_character(),  
FALSE   metadata = col_character(),  
FALSE   number_of_records = col_double(),  
FALSE   parkname = col_character(),  
FALSE   region = col_character(),  
FALSE   state = col_character(),  
FALSE   unit_code = col_character(),  
FALSE   unit_name = col_character(),  
FALSE   unit_type = col_character(),  
FALSE   visitors = col_double()  
FALSE 
)



EXPLORER

summary(park_visits)
##      year             gnis_id            geometry          
##  Length:21560       Length:21560       Length:21560        
##  Class :character   Class :character   Class :character    
##  Mode  :character   Mode  :character   Mode  :character   
##                                                            
##                                                            
##                                                            
##                                                            
##    metadata         number_of_records   parkname          
##  Length:21560       Min.   :1         Length:21560        
##  Class :character   1st Qu.:1         Class :character    
##  Mode  :character   Median :1         Mode  :character    
##                     Mean   :1                             
##                     3rd Qu.:1                             
##                     Max.   :1                             
##                                                           
##     region             state            unit_code          
##  Length:21560       Length:21560       Length:21560        
##  Class :character   Class :character   Class :character    
##  Mode  :character   Mode  :character   Mode  :character    
##                                                            
##                                                            
##                                                            
##                                                            
##   unit_name          unit_type            visitors          
##  Length:21560       Length:21560       Min.   :        0    
##  Class :character   Class :character   1st Qu.:    39125    
##  Mode  :character   Mode  :character   Median :   155219    
##                                        Mean   :  1277105    
##                                        3rd Qu.:   608144    
##                                        Max.   :871922828    
##                                        NA's   :4
regions<-park_visits %>%
     select('region') %>%
     inspect_cat() %>%
     show_plot()
## Warning: `cols` is now required.  
## Please use `cols = c(data)`
year<-park_visits %>%
     select('year') %>%
     inspect_cat()     
#de 1905 à 2016 avec une valeur 'Total' à retirer  
#C'est surement ce qui fosse la catégorie des données

Toutes les informations nécessaire sont déjà dans la base de donnée mais, pour arriver à faire le visuel que j’ai en tête, il faudra nettoyer les données. Les années sont stockées sous forme de caractère parce qu’il y a une valeur ‘Total’ dans la base de données. Pour pouvoir utiliser les régions, il faudra aussi trouver la signification des abréviations.



PRÉPARER

park<-park_visits %>%
     select(year, region, visitors) %>%
     filter(!year %in% 'Total') %>%
     mutate(year=as.numeric(year)) %>%
     mutate(region = case_when(region == 'IM' ~ "Intermountain",
                          region == 'NE'  ~ "Northeast",
                          region == 'SE'  ~ "Southeast",
                          region == 'PW'  ~ "Pacific West",
                          region == 'MW'  ~ "Midwest",
                          region == 'NC'  ~ "National Capital",
                          region == 'AK'  ~ "Alaska")) %>%
     filter(!is.na(region)) %>%
     group_by(region, year) %>%
     summarise(somme=sum(visitors))
     mean_year<-park %>%
     group_by(year) %>%
     summarise(moyenne=mean(somme)) %>%
     ungroup()    

data<-park %>%
     left_join(mean_year, by="year") %>%
     mutate(diff=somme-moyenne) %>%
     select(year, region, diff) %>%
     ungroup()%>%
     mutate(region=as.factor(region)) %>%
     mutate(diff=diff/1000000)    

data_m<-data %>%
     filter(region %in% c("Pacific West", "Alaska"))



VISUALISER

#Graphique  
gg<-ggplot(data, aes(x=year, y=diff, group=region))  
gg<-gg + geom_point(size=3.5,color="#ACC6AB")  
gg<-gg + geom_line(size=1.5,color="#C3BDB5")  
gg<-gg + geom_point(data=data_m, size=3.5,color="#8EB18C")  
gg<-gg + geom_line(data=data_m, size=1.5,color="#5B5144")  
gg<-gg + geom_hline(yintercept=0, linetype="dashed", color="#A9A9A9")  
#ajuster les axes  
gg<-gg + scale_y_continuous(breaks=seq(-40,40,10), limits=c(-40, 40))  
gg<-gg + coord_flip()  
#modifier le thème  
gg <- gg +  theme(panel.border = element_blank(),
                      panel.background = element_blank(),
                      plot.background = element_blank(),
                      panel.grid.major.x= element_blank(),
                      panel.grid.major.y= element_blank(),
                      panel.grid.minor = element_blank(),
                      axis.line.x = element_line(size=1, color="#A9A9A9"),
                      axis.line.y = element_blank(),
                      axis.ticks = element_blank())    
#ajouter les titres  
gg<-gg + labs(title="Parcs Nationaux des États-Unis: Alaska ou Pacific West?",
                subtitle = "\nLes visites dans les Parcs Nationaux des États-Unis ont explosées entre 1904 et 2016. Au fil du temps, on peut constater que les parcs\nde la région de l'Alaska sont de moins en moins fréquentés et les parcs de la région du Pacific West sont de plus en plus fréquentés.\n",
                x=" ",
                y="Différence du nombre de visite par rapport à la moyenne de l'année (x1 000 000)",
                caption="\nSOURCE:  data.world  |  DESIGN: Johanie Fournier, agr.")  
gg<-gg + theme(  plot.title    = element_text(size=38, hjust=0,vjust=0.5, family="Tw Cen MT", color="black"),
                   plot.subtitle    = element_text(size=16, hjust=0,vjust=0.5, family="Tw Cen MT", color="#A9A9A9"),
                   plot.caption =  element_text(size=12, hjust=1,vjust=0.5, family="Tw Cen MT", color="#A9A9A9"),
                   axis.title.y  = element_blank(),
                   axis.title.x  = element_text(size=14, hjust=0,vjust=0.5, family="Tw Cen MT", color="#A9A9A9"),
                   axis.text.x   = element_text(size=14, hjust=0.5,vjust=0.5, family="Tw Cen MT", color="#A9A9A9"),
                    axis.text.y   = element_blank())  
#étiquette  
gg <- gg +  geom_text(aes(x = 2005, y = -40),label = "Région\nAlaska", size = 5, family = "Tw Cen MT",  color="#A9A9A9", hjust=0.5, fontface="bold")  
gg <- gg +  geom_text(aes(x = 2005, y = 27),label = "Région\nPacific West", size = 5, family = "Tw Cen MT",  color="#A9A9A9", hjust=0.5, fontface="bold")

Voici ce que ça donne:





CONCLUSION

Ce graphique est plus artistique que ce que je fais d’habitude, mais la avec la forme des courbes je n’ai pas pu faire autrement que d’aller dans ce sens. Le graphique montre quand même que le nombre de visite dans les parcs de la région de l’Alaska sont de moins en moins fréquentés et les parcs de la région du Pacific West sont de plus en plus fréquentés.



Alors, tu veux en savoir plus sur ma démarche? Un épisode de podcast sera bientôt disponible dans lequel je t’explique toute la réflexion et les concepts de data visualisation qui ont menés à la création de cette viz.

Publicités

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.