Podcast ADV #6: Reprise de la 7e visualisation de Sara Leo

 

Qu’est-ce qu’on fait quand il y a beaucoup de données à visualiser sur un même graphique? Comment est-ce qu’on s’arrange pour que le message qu’on veut passer soit clair? Je vous présente ma démarche et mes réflexions sur le 7e exemple de l’article de Sara Leo. Vous trouverez les liens vers son article et les données dans mon article de blog en lien avec cet épisode.

Voici le graphique original de The Economist:

1*7GJIxnYsyFSGgQV537Ittg

 

Et voici mes essais:

1)rank fra

2)bar fra

3)dot fra

TyT2019|W16: Rang, histogramme ou autre??

Pour le #Tidytuesday de cette semaine, nous avons l’occasion de regarder des visualisations qui ont étés révisées par Sarah Leo de The Economist . Dans leur archives, elle a trouvé 7 exemples de graphiques qui avaient besion d’être revu.

CONTEXTE

Pour cette semaine, je me concentre sur son 7e exemple qui concerne la place des femmes dans le monde de la recherche avec publications.

La visualisation originale présente le pourcentage des femmes qui ont soumis des publications pour différents domaines (sciences de la santé, sciences physique, ingénérie, mathématique et sciences informatiques, inventeures) pour différents pays.

Le défi ici des d’essayer de présenter beaucoup de données dans un espace restreint.

Voici le graphique original à revoir:

OBJECTIFS

1) Explorer quelques visualisation pour voir ce qui se prête le mieux à ces données.

IMPORTER

brexit <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/brexit.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   date = col_character(),
FALSE   percent_responding_right = col_double(),
FALSE   percent_responding_wrong = col_double()
FALSE )
corbyn <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/corbyn.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   political_group = col_character(),
FALSE   avg_facebook_likes = col_double()
FALSE )
dogs <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/dogs.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   year = col_double(),
FALSE   avg_weight = col_double(),
FALSE   avg_neck = col_double()
FALSE )
eu_balance <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/eu_balance.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   country = col_character(),
FALSE   account_type = col_character(),
FALSE   year = col_double(),
FALSE   value = col_double()
FALSE )
pensions <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/pensions.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   country = col_character(),
FALSE   pop_65_percent = col_double(),
FALSE   gov_spend_percent_gdp = col_double()
FALSE )
trade <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/trade.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   year = col_double(),
FALSE   trade_deficit = col_double(),
FALSE   manufacture_employment = col_double()
FALSE )
women_research <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-04-16/women_research.csv")
FALSE Parsed with column specification:
FALSE cols(
FALSE   country = col_character(),
FALSE   field = col_character(),
FALSE   percent_women = col_double()
FALSE )

EXPLORER

glimpse(women_research)
## Observations: 60
## Variables: 3
## $ country       <chr> "Japan", "Chile", "United Kingdom", "United States…
## $ field         <chr> "Health sciences", "Health sciences", "Health scie…
## $ percent_women <dbl> 0.24, 0.43, 0.45, 0.46, 0.46, 0.47, 0.48, 0.48, 0.…
summary(women_research)
##    country             field           percent_women   
##  Length:60          Length:60          Min.   :0.0800  
##  Class :character   Class :character   1st Qu.:0.1900  
##  Mode  :character   Mode  :character   Median :0.2250  
##                                        Mean   :0.2617  
##                                        3rd Qu.:0.2825  
##                                        Max.   :0.5700
summary%
  group_by(field)%>%
  summarise(mean=mean(percent_women))

Les données ont déjà été travaillées ici, donc rien de ce qui est présenté dans cette table est inutilisé pour faire la visualisation. De plus, tout est déjà sous un format prêt à travailler. Par contre, pour la visualisation que j’ai en tête, il faut quand même travailler un peu pour préparer les données:

Pour regarder les données avec un graphique de rang:

PRÉPARER:

rank%
  mutate(country=(ifelse(country=="United Kingdom", "UK", country)))%>%
  mutate(country=(ifelse(country=="United States", "US", country)))%>%
  mutate(field=(ifelse(field=="Computer science, maths", "Informatique, maths", field)))%>%
  mutate(field=(ifelse(field=="Engineering", "Ingénérie", field)))%>%
  mutate(field=(ifelse(field=="Health sciences", "Sciences de la santé", field)))%>%
  mutate(field=(ifelse(field=="Physical sciences", "Sciences physique", field)))%>%
  mutate(field=(ifelse(field=="Women inventores", "Inventeures", field)))%>%
  spread(country, percent_women)%>%
  arrange((`Australia`)) %>%
          mutate(`Australia`= c(1:5))%>%
  arrange((`Brazil`)) %>%
          mutate(`Brazil`= c(1:5))%>%
  arrange((`Canada`)) %>%
          mutate(`Canada`= c(1:5))%>%
  arrange((`Chile`)) %>%
          mutate(`Chile`= c(1:5))%>%
   arrange((`Denmark`)) %>%
          mutate(`Denmark`= c(1:5))%>%
     arrange((`EU28`)) %>%
          mutate(`EU28`= c(1:5))%>%
     arrange((`France`)) %>%
          mutate(`France`= c(1:5))%>%
     arrange((`Japan`)) %>%
          mutate(`Japan`= c(1:5))%>%
     arrange((`Mexico`)) %>%
          mutate(`Mexico`= c(1:5))%>%
     arrange((`Portugal`)) %>%
          mutate(`Portugal`= c(1:5))%>%
     arrange((`UK`)) %>%
          mutate(`UK`= c(1:5))%>%
     arrange((`US`)) %>%
          mutate(`US`= c(1:5))%>%
  gather(key=country, value=rang, -field) #changer la mise en page pour analyse

VISUALISER

#Graphique
gg<-ggplot(data=rank, aes(x=country, y=rang, group=field, color=field))
gg<-gg + geom_line(size=3)
gg<-gg + geom_point(size=5)
#Ajouter les étiquettes de données
gg% filter(country == "Australia"), aes(label = field, x = 0.8) , hjust = 1, size = 4)
gg<-gg + scale_color_manual(values = c("#E8EBE4", "#E8EBE4", "#FE9920", "#698F3F", "#E8EBE4"))
#ajuster les axes
#gg<-gg + scale_y_continuous(breaks=seq(1,7,1), limits = c(1, 7))
#gg<-gg + scale_x_discrete(breaks=seq(0, 12, 1),limits = c(0, 12))
gg<-gg + expand_limits(x =c(-2,16))
#modifier la légende
gg<-gg + theme(legend.position="none")
#modifier le thème
gg<-gg +theme(panel.border = element_blank(),
              panel.background = element_rect(fill = "#292E1E", colour = "#292E1E"),
              plot.background = element_rect(fill = "#292E1E", colour = "#292E1E"),
              panel.grid.major.y= element_blank(),
              panel.grid.major.x= element_blank(),
              panel.grid.minor = element_blank(),
              axis.line = element_blank(),
              axis.ticks.y = element_blank(),
              axis.ticks.x = element_blank())
#ajouter les titres
gg<-gg + labs(title= NULL,
              subtitle=NULL,
              y=NULL,
              x=NULL)
gg<-gg + theme(plot.title    = element_text(hjust=0,size=25, color="#E8EBE4"),
               plot.subtitle = element_text(hjust=0,size=18, color="#E8EBE4"),
               axis.title.y  = element_blank(),
               axis.title.x  = element_blank(),
               axis.text.y   = element_blank(),
               axis.text.x   = element_text(hjust=0.5, size=10, color="#E8EBE4"))
#Ajouter les étiquettes de données
gg<-gg + annotate(geom="text", x=12.3,y=5, label="Les sciences de la santé sont le\ndomaine de recherche ou les\nfemmes sont les plus présentes.\nEn moyenne 47% des publications\nsont faites par des femmes.", color="#698F3F", size=4, hjust=0,vjust=0.9)
gg<-gg + annotate(geom="text", x=12.3,y=3, label="L'ingénierie, l'informatique, les\nmathématiques et les sciences\nphysiques sont des domaines où\n23% des articles sont publiés par\nune femme.", color="#E8EBE4", size=4, hjust=0,vjust=0.5)
gg<-gg + annotate(geom="text", x=12.3,y=1, label="Inventeurs est le domaine le moins\nreprésenté par la femme. En\nmoyenne, seulement 15% des\narticles sont publiés par une femme.", color="#FE9920", size=4, hjust=0, vjust=0.1)

Voici ce que ça donne:

Pour regarder les données avec un histogramme:

PRÉPARER:

bar%
  mutate(country=(ifelse(country=="United Kingdom", "UK", country)))%>%
  mutate(country=(ifelse(country=="United States", "US", country)))%>%
  mutate(field=(ifelse(field=="Computer science, maths", "Informatique, maths", field)))%>%
  mutate(field=(ifelse(field=="Engineering", "Ingénérie", field)))%>%
  mutate(field=(ifelse(field=="Health sciences", "Sciences de la santé", field)))%>%
  mutate(field=(ifelse(field=="Physical sciences", "Sciences physique", field)))%>%
  mutate(field=(ifelse(field=="Women inventores", "Inventeures", field)))

VISUALISER

#Graphique
gg<-ggplot(data=bar, aes(x=country, y=percent_women, group=field, fill=field))
gg<-gg + geom_bar(stat="identity", width = 0.65)
gg<-gg + scale_fill_manual(values = c("#E8EBE4", "#E8EBE4", "#FE9920", "#698F3F", "#E8EBE4"))
gg<-gg +geom_hline(data = bar, aes(yintercept = 0),color="#E8EBE4", size=1.5)
gg<-gg + facet_wrap((factor(field,levels=c("Sciences de la santé","Ingénérie","Informatique, maths","Sciences physique", "Inventeures")) ~ .), ncol=1)
gg<-gg + theme(strip.text.x = element_text(size=12, face="bold", hjust=0, color="#E8EBE4"),
         strip.background = element_rect(colour="#292E1E", fill="#292E1E"))
#ajuster les axes
gg<-gg + scale_y_continuous(labels = function(x) paste0(x*100, "%"), limits =c(0, 1))
#modifier la légende
gg<-gg + theme(legend.position="none")
#modifier le thème
gg<-gg +theme(panel.border = element_blank(),
              panel.background = element_rect(fill = "#292E1E", colour = "#292E1E"),
              plot.background = element_rect(fill = "#292E1E", colour = "#292E1E"),
              panel.grid.major.y= element_blank(),
              panel.grid.major.x= element_blank(),
              panel.grid.minor = element_blank(),
              axis.line.x = element_blank(),
              axis.line.y = element_line(linetype = "solid", size=1, color="#E8EBE4"),
              axis.ticks.y = element_line(linetype = "solid", size=0.3, color="#E8EBE4"),
              axis.ticks.x = element_blank())
#ajouter les titres
gg<-gg + labs(title= NULL,
              subtitle=NULL,
              y="Pourcentage des articles publiés qui l'on été par des femmes",
              x=NULL)
gg<-gg + theme(plot.title    = element_text(hjust=0,size=25, color="#E8EBE4"),
               plot.subtitle = element_text(hjust=0,size=18, color="#E8EBE4"),
               axis.title.y  = element_text(hjust=0.5, size=10, color="#E8EBE4", angle=90),
               axis.title.x  = element_blank(),
               axis.text.y   = element_text(hjust=0.5, size=10, color="#E8EBE4"),
               axis.text.x   = element_text(hjust=0.5, size=10, color="#E8EBE4"))

Voici ce que ça donne:

Pour regarder les données avec un graphique de points:

PRÉPARER:

bar%
  mutate(country=(ifelse(country=="United Kingdom", "UK", country)))%>%
  mutate(country=(ifelse(country=="United States", "US", country)))%>%
  mutate(field=(ifelse(field=="Computer science, maths", "Informatique, maths", field)))%>%
  mutate(field=(ifelse(field=="Engineering", "Ingénérie", field)))%>%
  mutate(field=(ifelse(field=="Health sciences", "Sciences de la santé", field)))%>%
  mutate(field=(ifelse(field=="Physical sciences", "Sciences physique", field)))%>%
  mutate(field=(ifelse(field=="Women inventores", "Inventeures", field)))%>%
  mutate(gap=0.5-percent_women)

VISUALISER

#Graphique
gg<-ggplot(data=bar, aes(x=country, y=gap, group=field, color=factor(field, levels=c("Sciences de la santé","Informatique, maths","Ingénérie","Sciences physique","Inventeures"))))
gg<-gg + geom_point(size=5)
gg<-gg + scale_color_manual(values = c("#698F3F", "#E8EBE4", "#E8EBE4", "#E8EBE4", "#FE9920"))
gg<-gg + geom_hline(yintercept = 0, color="#E8EBE4", size=1, linetype="dotted")
gg<-gg + coord_flip()
#ajuster les axes
#gg<-gg + scale_y_continuous(labels = function(x) paste0(x*100, "%"), limits =c(0, 1))
#modifier la légende
gg<-gg + theme(legend.position="top",
        legend.title = element_blank(),
        legend.background = element_blank(),
        legend.key=element_blank(),
        legend.spacing.x = unit(0.5, 'cm'),
        legend.text= element_text(hjust =0.5,size= 12, colour = "#A9A9A9"))
gg<-gg + guides(fill = guide_legend(nrow = 1, reverse = TRUE))
#modifier le thème
gg<-gg +theme(panel.border = element_blank(),
              panel.background = element_rect(fill = "#292E1E", colour = "#292E1E"),
              plot.background = element_rect(fill = "#292E1E", colour = "#292E1E"),
              panel.grid.major.y= element_blank(),
              panel.grid.major.x= element_blank(),
              panel.grid.minor = element_blank(),
              axis.line.x = element_line(linetype = "solid", size=1, color="#E8EBE4"),
              axis.line.y = element_line(linetype = "solid", size=1, color="#E8EBE4"),
              axis.ticks.y = element_line(linetype = "solid", size=0.3, color="#E8EBE4"),
              axis.ticks.x = element_line(linetype = "solid", size=0.3, color="#E8EBE4"))
#ajouter les titres
gg<-gg + labs(title= NULL,
              subtitle=NULL,
              y="L'équart de l'équité de publication",
              x=NULL)
gg<-gg + theme(plot.title    = element_text(hjust=0,size=25, color="#E8EBE4"),
               plot.subtitle = element_text(hjust=0,size=18, color="#E8EBE4"),
               axis.title.y  = element_text(hjust=0.5, size=10, color="#E8EBE4", angle=90),
               axis.title.x  = element_text(hjust=0.5, size=10, color="#E8EBE4"),
               axis.text.y   = element_text(hjust=0.5, size=10, color="#E8EBE4"),
               axis.text.x   = element_text(hjust=0.5, size=10, color="#E8EBE4"))

Voici ce que ça donne:

Podcast ADV#3: Quand la date nous permet d’explorer les données

L’année, le mois, le jour de la semaine, les heures de la journée. Venez découvrir comment on peut partir d’un ensemble de donnée qui a quelques défaut pour se faire une idée de l’impact que ces défauts peuvent avoir sur la conclusion de l’analyse. en explorant différentes visualisation dans le temps.

Voici l’article de blog en lien avec cet épisode.

graphique 5a final FRA

MakeoverMonday | 2019W13: Dépenses de consommation par génération

Cette semaine, nous avons eu l’occasion de regarder les dépenses des différentes générations pour les résidents des États-Unis durant la dernière année.

Voici le graphique original et l’article:

Ce qui fonctionne:

  • Titre bien utilisé
    • Légende présente et claire et ordonnées dans le même ordre que les barres.
  • Étiquette des données présentes
  • Le design est bien pensé: compilation pour voir les porportions du total (100%)
  • La source des données est indentifée
  • Les générations sont ordonnées par age

Ce qui peut être amélioré:

  • Il y a beaucoup de couleur, ça a pour effet de surcharger le graphique.
  • Aucune explication sur les données n’est présentée sur le graphique.
  • Comme il y a beaucoup de catégories c’est difficile de les comparées entre elles: la catégorie général est allignée sur l’axe de x, on voit donc rapidement que c’est les traditionnalistes qui dépenses le plus, pour le autres catégories, il faut travailler plus fort puisqu’ils ne sont pas alignées.
  • La grille est non nécessaire.
  • Les données peuvent être arroudies.

 

Sur quoi je me suis concentrée:

  • Créer un visuel pour lequels on voit clairement la différence entre les Millénials et les autres générations.
  • Ajouter des explications pour comparer les Millénials aux autres générations.
  • Garder ça clair et simple!

Voici mon graphique:

 

MakeoverMonday | 2019W11: Transferts immobiliers à Philadelphie

Cette semaine, nous avons eu l’occasion de regarder les transactions immobilières de Philadelphie.

Voici le graphique original et l’article:

Ce qui fonctionne:

  • Sous format Dashboard interractif: le lecteur curieux peut se promener dans l’application pour tirer ses propres conclusions sur les données présentées.
  • Couleurs et thème bien utilisées
  • Axes présents

Ce qui peut être amélioré:

  • Les titres sont peu accrocheurs et les sous-titres sont peu informatifs
  • Quel est l’élément principal qu’on droit retenir de la visualisation?
  • Le format Dashboard interractif ne convient pas à tous. Seulement les lecteurs curieux vont prendre la peine de pousser leur analyses plus loin pour utiliser les fonctions interractives. Les lecteurs paresseux, comme moi, vont seulement se trouver submerger d’information et ne pas pousser plus loin leur analyse des graphiques. On court alors le risque de ne pas avoir leur attention pour faire passer notre message.

Sur quoi je me suis concentrée:

  • Le graphique original se concente beaucoup sur le nombre et le type de transactions. Sans toutefois faire ressortir de message clair.
  • À mon avis, le nombre de documents par type de transaction aurait avantage à être présenté plus clairement. Je vais donc me concentrer à présenter l’évolution dans le temps du nombre de transaction par type de documents.
  • Garder ça clair et simple!

Voici mon graphique:

rang final FRA

 

TidyTuesday | 2019W8: Doctorants des Universités Américaines

Pour ma quatrième participation au #TidyTuesday, nous avons accès au nombre de doctorants des Universités américaines. Les données brutes sont disponibles sur le site de l’SED. J’ai choisi de me concentrer sur l’évolution du nombre de doctorant par champ d’étude.

IMPORTER

usa<- read_excel("sed17-sr-tab012.xlsx",
                    sheet="Table 12",
                    range="A4:O59", #conserver seulement les données pertinentes
                    col_names = TRUE, #identifier la première ligne comme nom de colonne
                    col_types = NULL)

EXPLORER

glimpse(usa)
## Observations: 55
## Variables: 15
## $ `Field of study` <chr> NA, "All fields", "Life sciences", "Agricultu...
## $ `1987.0`         <chr> "Number", "32365.0", "5783.0", "1144.0", "383...
## $ X__1             <chr> "Percent", "100.0", "17.9", "3.5", "11.9", "2...
## $ `1992.0`         <chr> "Number", "38886.0", "7172.0", "1261.0", "479...
## $ X__2             <chr> "Percent", "100.0", "18.4", "3.2", "12.3", "2...
## $ `1997.0`         <chr> "Number", "42539.0", "8421.0", "1212.0", "578...
## $ X__3             <chr> "Percent", "100.0", "19.8", "2.8", "13.6", "3...
## $ `2002.0`         <chr> "Number", "40031.0", "8478.0", "1129.0", "569...
## $ X__4             <chr> "Percent", "100.0", "21.2", "2.8", "14.2", "4...
## $ `2007.0`         <chr> "Number", "48132.0", "10702.0", "1321.0", "72...
## $ X__5             <chr> "Percent", "100.0", "22.2", "2.7", "15.0", "4...
## $ `2012.0`         <chr> "Number", "50944.0", "11964.0", "1255.0", "83...
## $ X__6             <chr> "Percent", "100.0", "23.5", "2.5", "16.3", "4...
## $ `2017.0`         <chr> "Number", "54664.0", "12592.0", "1606.0", "84...
## $ X__7             <chr> "Percent", "100.0", "23.0", "2.9", "15.5", "4...

Nous disposons donc de 7 années de données, entre 1987 et 2017, pour lesquels les 8 grands sujets d’étude sont disponibles. Ancune donnée ne sera manquante lorsque le ménage sera fait dans les données.

PRÉPARER

usa_dr%
  rename(study="Field of study")%>% #corriger les noms de colonnes
  select(study, `1987.0`, `1992.0`, `1997.0`, `2002.0`, `2007.0`, `2012.0`, `2017.0`)%>%
  filter(!is.na(study), !study=="All fields")%>% #retirer les lignes vides et la somme
  mutate(study=ifelse(study=="Othera", "Others", study))%>%
  filter(study %in% c("Life sciences", "Physical sciences and earth sciences",
                      "Mathematics and computer sciences", "Psychology and social sciences", "Engineering",
                      "Education", "Humanities and arts", "Others"))%>% # conserver les grandes catégories
  mutate(study=trimws(study, which ="both"))%>% #retirer les espaces blancs avant et après
mutate(`1987.0`= as.numeric(`1987.0`), `1992.0`=as.numeric(`1992.0`), `1997.0`=as.numeric(`1997.0`), `2002.0`=as.numeric(`2002.0`), `2007.0`=as.numeric(`2007.0`), `2012.0`=as.numeric(`2012.0`), `2017.0`=as.numeric(`2017.0`))
#ajouter les rangs par années
usa_rank%
arrange((`1987.0`)) %>%
mutate("1987"= 1:nrow(usa_dr))%>%
arrange((`1992.0`)) %>%
mutate("1992" = 1:nrow(usa_dr))%>%
arrange((`1997.0`)) %>%
mutate("1997" = 1:nrow(usa_dr))%>%
arrange((`2002.0`)) %>%
mutate("2002" = 1:nrow(usa_dr))%>%
arrange((`2007.0`)) %>%
mutate("2007" = 1:nrow(usa_dr))%>%
arrange((`2012.0`)) %>%
mutate("2012" = 1:nrow(usa_dr))%>%
arrange((`2017.0`)) %>%
mutate("2017" = 1:nrow(usa_dr))%>%
  select(study, "1987", "1992", "1997", "2002", "2007","2012","2017")%>%
  gather(key=annee, value=rang, -study)%>% #changer la mise en page pour analyse
  mutate(annee=as.numeric(annee)) #changer le format des années à numérique

VISUALISER

#Graphique
gg<-ggplot(data=usa_rank, aes(x=annee, y=rang, group=study, color=study))
gg<-gg + geom_line(size=2)
gg<-gg + geom_point(size=4)
gg<-gg + scale_color_manual(values = c("#A9A9A9", "#A9A9A9", "#A9A9A9", "#A44A3F", "#A9A9A9", "#A9A9A9", "#A9A9A9", "#A9A9A9"))
gg<-gg +  geom_point(color = "#FFFFFF", alpha = .8, size = 1)
#Ajouter les étiquettes de données
gg% filter(annee == 2017), aes(label = study, x = 2017.5) , hjust = 0, color = "#888888", size = 4)
gg% filter(annee == 1987), aes(label = study, x = 1986.5) , hjust = 1, color = "#888888", size = 4)
#ajuster les axes
gg<-gg + scale_y_continuous(breaks=seq(1,8,1), limits = c(1, 8))
gg<-gg + scale_x_continuous(breaks=seq(1987, 2017, 5),limits = c(1977, 2027))
#modifier la légende
gg<-gg + theme(legend.position="none")
#modifier le thème
gg<-gg +theme(panel.border = element_blank(),
              panel.background = element_rect(fill = "#FFFFFF", colour = "#FFFFFF"),
              plot.background = element_rect(fill = "#FFFFFF", colour = "#FFFFFF"),
              panel.grid.major.y= element_blank(),
              panel.grid.major.x= element_blank(),
              panel.grid.minor = element_blank(),
              axis.line = element_blank(),
              axis.ticks.y = element_blank(),
              axis.ticks.x = element_blank())
#ajouter les titres
gg<-gg + labs(title= "Doctorants Américains: classement des domaines d'études de 1987 à 2017",
              subtitle="Les sciences de la vie est le domaine d'étude préféré des 10 dernières années",
              y=NULL,
              x=NULL)
gg<-gg + theme(plot.title    = element_text(hjust=0,size=25, color="#8B8B8B"),
               plot.subtitle = element_text(hjust=0,size=18, color="#8B8B8B"),
               axis.title.y  = element_blank(),
               axis.title.x  = element_blank(),
               axis.text.y   = element_blank(),
               axis.text.x   = element_text(hjust=0.5, size=10, color="#8B8B8B"))

Pour visualiser l'évolution du nombre d'étudiants aux différents sujets d'étude, j'ai choisi présenter les comparaisons sous forme de rang. Donc, pour chaque année, le sujet avec le moins d'étudiant a le rang 1 et celui avec le plus d'étudiant a le rang 8. En mettant les années côte à côte, on voit l'évolution du classement pour chaque sujet dans le temps. Les siences de la vie est le domaine d'étude avec la plus grande variation dans le temps: avant 2002, il se situait dans les sujets les moins populaires et depuis 2007 c'est le sujet avec le plus d'étudiant. Voici ce que ça donne:

rank fra final