Visualiser l’évolution


Cette semaine, le #Tidytuesday nous fait redécouvrir la célèbre base de données mtcars. On a accès à la base de données complète qui contient énormément de données. Donc, pour simplifier un peu les choses j’ai choisi de visualiser la performance de litres au 100 km des véhicules Ford comparativement à la moyenne des autres fabricant de véhicules.



CONTEXTE

Les données de cette semaine proviennent de l’EPA.

Le dictionnaire de données complet est disponible sur fueleconomy.gov.

Il s’agit essentiellement d’un ensemble de données beaucoup plus volumineux et actualisé couvrant mtcars, l’ensemble de données que nous connaissons tous un peu trop bien!



OBJECTIFS

  1. Visualiser l’évolution des performances (litres au 100 km) des véhicules Ford comparativement à la moyenne des autres fabricants de véhicules.



IMPORTER

big_epa_cars <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-10-15/big_epa_cars.csv")
FALSE Parsed with column specification:  
FALSE cols(  FALSE   .default = col_double(),  
FALSE   drive = col_character(),  
FALSE   eng_dscr = col_character(),  
FALSE   fuelType = col_character(),  
FALSE   fuelType1 = col_character(),  
FALSE   make = col_character(),  
FALSE   model = col_character(),  
FALSE   mpgData = col_character(),  
FALSE   phevBlended = col_logical(),  
FALSE   trany = col_character(),  
FALSE   VClass = col_character(),  
FALSE   guzzler = col_logical(),  
FALSE   trans_dscr = col_character(),  
FALSE   tCharger = col_logical(),  
FALSE   sCharger = col_character(),  
FALSE   atvType = col_character(),  
FALSE   fuelType2 = col_logical(),  
FALSE   rangeA = col_logical(),  
FALSE   evMotor = col_logical(),  
FALSE   mfrCode = col_logical(),  
FALSE   c240Dscr = col_logical()  
FALSE   # ... with 4 more columns  
FALSE 
)



EXPLORER

La base de données est immense et, pour pouvoir travailler les données, il faut prendre le temps de bien comprendre comment sont organisées les données. Pour pouvoir visualiser les performances, il faut compiler les MPG et les convertir en litres au 100 km.



PRÉPARER

top_20<-big_epa_cars %>%
     group_by(make) %>%
     summarise(count=n()) %>%
     top_n(20) %>%
     arrange(desc(count))
#type de carburant  
type<-big_epa_cars %>%
     select(fuelType) %>%
     unique()    

data<-big_epa_cars %>%
     left_join(top_20) %>%
     filter(cityA08==0, highwayA08==0, fuelType==c("Regular","Premium","Diesel","Midgrade")) %>%
     mutate(categorie=NA) %>%
     mutate(categorie=ifelse(VClass=="Compact Cars", "Voitures", categorie)) %>%
     mutate(categorie=ifelse(VClass=="Large Cars", "Voitures", categorie)) %>%
     mutate(categorie=ifelse(VClass=="Midsize Cars", "Voitures", categorie)) %>%
     mutate(categorie=ifelse(VClass=="Standard Pickup Trucks 2WD", "Camionnettes", categorie)) %>%
     mutate(categorie=ifelse(VClass=="Standard Pickup Trucks 4WD", "Camionnettes", categorie)) %>%
     filter(!is.na(categorie)) %>%
     mutate(mpg = highway08 * .45 + city08 * .55) %>%
     mutate(l100=235.22/mpg) %>%
     select(make, model,year, mpg, l100, VClass, categorie, fuelType) %>%
     filter(year<=2019, year>=2000)
mean_all<-data %>%
     group_by(year, categorie) %>%
     summarise(moy_l100=mean(l100), ecart=sd(l100))
      model_ford<-data %>%
     filter(make=="Ford") %>% 
     group_by(year,categorie) %>%
     summarise(moy_l100=mean(l100),
               count=n())  %>%
     filter(year<=2019, year>=2000)



VISUALISER

#Graphique  
gg<-ggplot()  
gg <- gg + geom_jitter(data=data, aes(x=year, y=l100),size=1, color="#8597A0", size=2.5, alpha = 0.25, width = 0.20)  
gg <- gg + geom_point(data=mean_all, aes(x=year, y=moy_l100),fill="#6D7C83",color="#6D7C83", shape=21, size=3, stroke=1)  
gg <- gg + geom_errorbar(data=mean_all, aes(x=year, ymax = moy_l100 + ecart, ymin = moy_l100 - ecart), color = "#6D7C83", width=.2)  
gg <- gg + geom_line(data=model_ford, aes(x=year, y=moy_l100),color="#003379", size=1.5)  gg<-gg + facet_wrap(categorie~., dir = "v")  
gg<-gg + annotate("rect",xmin=2014-0.5, xmax=2016+0.5,                ymin=-Inf, ymax=Inf,fill="#003379", alpha=0.2)  
#ajuster les axes  
gg<-gg + scale_y_continuous(breaks=seq(5,20,5), limits=c(5, 20))  
gg<-gg + scale_y_reverse()  gg<-gg + scale_x_continuous(breaks=seq(2000,2020,5), limits=c(1999, 2020), expand=c(0,0.2))    
#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_line(size=0.3, linetype="dashed",color="#A9A9A9"),
                      panel.grid.minor = element_blank(),
                      axis.line.x = element_line(size=0.5, color="#A9A9A9"),
                      axis.line.y =element_blank(),
                      axis.ticks.x = element_line(size=0.5, color="#A9A9A9"),
                       axis.ticks.y = element_blank(),
                       strip.background =element_blank())  
#ajouter les titres  
gg<-gg + labs(title="<span style='color:#003379'>**FORD**</span> est en train de perdre son avance!",
                subtitle = "\nEn 2015, Ford avait réussi à concevoir des véhicules qui avaient de meilleures consommations d'essence (litres au 100 km) que la moyenne des autres\nmarques de véhicules. Cet avantage n'est pas aussi marqué dans les 3 dernières années. Seulement les résultats des véhicules à essence sont montrés.\n",
                x=" ",
                y="Consommation d'essence (Litres au 100 km)",
                 caption="\nSOURCE: www.fueleconomy.gov   |  DESIGN: Johanie Fournier, agr.")  
gg<-gg + theme(  plot.title    =  element_markdown(lineheight = 1.1,size=31, hjust=0,vjust=0.5, face="bold", color="#404040"),
                   plot.subtitle = element_text(size=14, hjust=0,family="Tw Cen MT", color="#8B8B8B"),
                   plot.caption  = element_text(size=10, hjust=1,vjust=0.5, family="Tw Cen MT", color="#8B8B8B"),
                   axis.title.y  = element_text(size=12, hjust=1,vjust=0.5, family="Tw Cen MT", color="#8B8B8B", angle=90),
                   axis.title.x  = element_blank(),
                   axis.text.y   = element_text(size=12, hjust=0.5,vjust=0.5, family="Tw Cen MT", color="#8B8B8B"),
                    axis.text.x   = element_text(size=12, hjust=0.5,vjust=0.5, family="Tw Cen MT", color="#8B8B8B"),
                   strip.text = element_text(size=12, hjust=0,vjust=1, family="Tw Cen MT", color="#8B8B8B"))

Voici ce que ça donne:





CONCLUSION

Finalement, le graphique de cette semaine nous montre bien comment on évolué les voitures et les camionettes Ford, mais aussi l’évolution de la moyenne des autres fabricants de voitures. 

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

Une réflexion sur “Visualiser l’évolution

  1. Pingback: ADV23_TRANSCRIPT - Connaitre et comprendre ses données | Johanie Fournier, agr.

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.