Facet_grid avec des points et des lignes

Cette semaine le #Tidytuesday nous fait découvrir les meilleurs restaurants offrant de la pizza à New York. Pour montrer quels sont les meilleurs restaurants, j’ai utilisé facet_grid pour présenter les votes pour chacune des catégories. En créant une ligne horizontale pour chaque restaurant et en plaçant les résultats des votes à l’intérieur de cercles, je suis arrivée à créer une visuel qui montre le pointage des 6 meilleurs endroit pour manger de la pizza à New York.



CONTEXTE

Les données de cette semaine sont une gracieuseté de Jared Lander. Les données de Jared proviennent des meilleurs restaurants de pizza de New York, avec une enquête sur une échelle de 5 points  (l’échelle Likert), soit: excellent, bonne, moyenne, mauvaise, plus jamais.



OBJECTIFS

  1. Montrer les résultats des votes et identifier visuellement quels sont les restaurants de New York qui font les meilleures pizza.



IMPORTER

pizza_jared <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-10-01/pizza_jared.csv")
FALSE Parsed with column specification:  
FALSE cols(  FALSE   polla_qid = col_double(),  
FALSE   answer = col_character(),  
FALSE   votes = col_double(),  
FALSE   pollq_id = col_double(),  
FALSE   question = col_character(),  
FALSE   place = col_character(),  
FALSE   time = col_double(),  
FALSE   total_votes = col_double(),  
FALSE   percent = col_double()  
FALSE )



EXPLORER

summary(pizza_jared)
##    polla_qid        answer              votes           pollq_id      
##  Min.   : 2.00   Length:375         Min.   : 0.000   Min.   : 2.00    
##  1st Qu.:21.00   Class :character   1st Qu.: 0.000   1st Qu.:21.00    
##  Median :40.00   Mode  :character   Median : 2.000   Median :40.00    
##  Mean   :39.93                      Mean   : 2.832   Mean   :39.93    
##  3rd Qu.:59.00                      3rd Qu.: 4.000   3rd Qu.:59.00    
##  Max.   :77.00                      Max.   :26.000   Max.   :77.00    
##                                                                       ##    question            place                time            total_votes     
##  Length:375         Length:375         Min.   :1.344e+09   Min.   : 0.00    
##  Class :character   Class :character   1st Qu.:1.395e+09   1st Qu.: 7.00    
##  Mode  :character   Mode  :character   Median :1.467e+09   Median :12.00    
##                                        Mean   :1.459e+09   Mean   :14.16    
##                                        3rd Qu.:1.519e+09   3rd Qu.:19.00    
##                                        Max.   :1.569e+09   Max.   :67.00    
##                                                                             
##     percent        
##  Min.   :0.0000    
##  1st Qu.:0.0000    
##  Median :0.1667    
##  Mean   :0.2000    
##  3rd Qu.:0.3333    
##  Max.   :1.0000    
##  NA's   :5
votes<-pizza_jared %>%
     select('votes') %>%
     inspect_num()
show_plot(votes)

votes<-pizza_jared %>%
     filter(answer=="Excellent") %>%
     select('percent') %>%
     inspect_num()   
show_plot(votes)

Le plus gros défi ici consiste à déterminer quels sont les restautants offrant les meilleurs pizza. Il est possible d’approcher cette question sous différents angles, mais j’ai choisi de me concentrer sur le nombre de vote de la catégorie “Excellent” pour identifier les meilleurs restaurant. Très peu de restautant se sont vu attribuer plus de 50% de leur votes dans la catégorie “Excellent”, c’est donc à mon avis bon signe pour identifier où se font les meilleures pizza.



PRÉPARER

#Définir la liste des meilleurs restautants: ceux qui ont plus de 6 votes excellent    
excellent<-pizza_jared %>%
       filter(answer=="Excellent" & percent>=0.5) %>%
       select('place') %>%
       distinct()      

pizza_jared_top<-pizza_jared %>%
     right_join(excellent, by="place") %>%
     group_by(place, answer) %>%
     summarise(votes_corr=mean(votes))    

pizza_jared_top$answer <-factor(pizza_jared_top$answer, levels = c("Excellent", "Good", "Average", "Poor", "Never Again"))  

pizza_jared_top$place <-factor(pizza_jared_top$place, levels = c( "Prince Street Pizza",  "Patsy's", "Naples 45", "Tappo","Little Italy Pizza", "Fiore's"))    

#En français
pizza_jared_top<-pizza_jared_top %>%
     mutate(answer=case_when(answer == 'Excellent' ~ "Excellent",
                             answer == 'Good' ~ "Bon",
                             answer == 'Average' ~ "Moyen",
                             answer == 'Poor' ~ "Mauvais",
                             answer == 'Never Again' ~ "Plus Jamais"))    

pizza_jared_top$answer <-factor(pizza_jared_top$answer, levels = c("Excellent", "Bon", "Moyen", "Mauvais", "Plus Jamais"))



VISUALISER

#Graphique  
gg<-ggplot(pizza_jared_top, aes(x=votes_corr, y=place, color=answer))  
gg<-gg + geom_point(size=11, alpha=0.9)  
gg<-gg + facet_grid(. ~ answer)  
gg<-gg + scale_color_brewer(palette="Set1")  
#retier la légende  
gg<-gg + theme(legend.position = "none")  
#ajuster les axes  
gg<-gg + scale_x_continuous(breaks=seq(0,10,2), limits=c(-2, 12))  
#Ajouter les étiquettes de données   
gg<-gg + geom_text(data=pizza_jared_top, aes(x=votes_corr, y=place, label=(round(pizza_jared_top$votes_corr,0))), color="#5D5D5D", size=5.5, vjust=0.5, hjust=0.5, family="Tw Cen MT", fontface="bold")  
#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=1, linetype = "solid", color="#A9A9A9"),
                      panel.grid.minor = element_blank(),
                      axis.line.x = element_blank(),
                      axis.line.y = element_blank(),
                      axis.ticks = element_blank(),
                       strip.background =element_blank())    
#ajouter les titres  
gg<-gg + labs(title="Comment est la pizza?",
              subtitle = "\nTop 6 des meilleurs restaurants servant de la pizza à New York selon le sondage réalisé par Jared Lander\n",
              x=" ", 
              y=" ", 
              caption="\nSOURCE: Jared Lander   |  DESIGN: Johanie Fournier, agr.")  
gg<-gg + theme(  plot.title    = element_blank(),
                   plot.subtitle = element_blank(),
                   plot.caption  = element_text(size=8, hjust=1,vjust=0.5, family="Tw Cen MT", color="#5D5D5D"),
                   axis.title.y  = element_blank(),
                   axis.title.x  = element_blank(),
                   axis.text.y   = element_text(size=18, hjust=1,vjust=0.5, family="Tw Cen MT", color="#5D5D5D"),
                    axis.text.x   = element_blank(),
                    strip.text = element_text(size=18, hjust=0.5,vjust=0.5, family="Tw Cen MT", color="#5D5D5D"))

Voici ce que ça donne:





CONCLUSION

Finalement, le graphique montre bien quels sont les restaurants offrant la meilleure pizza à New York en se concentrant sur les 6 meilleurs.



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 “Facet_grid avec des points et des lignes

  1. Pingback: ADV21_TRANSCRIPT - Qu’est-ce qui rend un visuel élégant? | 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.