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
- 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.
Pingback: ADV23_TRANSCRIPT - Connaitre et comprendre ses données | Johanie Fournier, agr.