knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.height = 5, fig.width = 8, message = FALSE, warning = FALSE )
Cette vignette vous montre la réalisation de quelques types de graphiques à l'aide de gouvdown
. Les données présentées sont issues des fichiers de l'état civil sur les mariages de 1998 à 2018, mis à disposition par l'Insee sur son site (https://www.insee.fr/fr/statistiques?taille=100&debut=0&theme=4&categorie=3&collection=4). Elles ont été compilées et mises en cohérence.
library(gouvdown) library(tidyverse) library(sf)
On charge les données, composées d'un croisement année / département / état matrimonial antérieur recodé. On importe aussi un fond de carte départemental.
file_data <- system.file("extdata", "df_mariages_etat_dep_an.rds", package = "gouvdown") file_geo <- system.file("extdata", "shp_dep", "FR_DEP_DOM_IDF.shp", package = "gouvdown") df_mariages_etat_dep_an <- read_rds(file_data) shp_dep <- st_read(file_geo)
Ce fichier permet de réaliser un diagramme en barres du nombre de mariages par an au niveau national. Pour plus de visibilité, on choisit de colorer les barres en rouge à l'aide des codes couleurs présents dans la fonction gouv_colors()
. L'utilisation de theme_gouv()
permet simplement d'apposer l'identité graphique.
À noter qu'il faut que les polices Marianne et Spectral soient installées.
df_mariages_etat_dep_an %>% group_by(amar) %>% summarise(n = sum(n)) %>% ggplot(aes(x = amar, y = n)) + geom_col(fill = gouv_colors("rouge_marianne"), color = "black") + scale_x_continuous(name = "Année", breaks = seq(1998, 2018, 2)) + scale_y_continuous( name = "Nombre de mariages", breaks = seq(0, 350000, 50000), labels = scales::label_number(big.mark = " ") ) + labs(title = "Nombre de mariages par an", caption = "Source : Insee, fichiers d'état civil") + theme_gouv()
De façon similaire, on peut réaliser un graphique en ligne sur des évolutions du nombre de mariages par type d'état matrimonial. On utilise ici scale_color_gouv_discrete()
en précisant la palette à utiliser pour avoir les bonnes couleurs.
plot_etamat_type <- df_mariages_etat_dep_an %>% group_by(amar, etamat_type) %>% summarise(n = sum(n)) %>% ggplot(aes(x = amar, y = n, color = str_wrap(etamat_type, 15))) + geom_line(size = 1.1) + scale_x_continuous(name = "Année", breaks = seq(1998, 2018, 2)) + scale_y_continuous( name = "Nombre de mariages", breaks = seq(0, 350000, 50000), labels = scales::label_number(big.mark = " ") ) + scale_color_gouv_discrete(name = "", palette = "pal_gouv_qual2") + labs(title = "Nombre de mariages par an", subtitle = "En fonction de l'état matrimonial des mariés", caption = "Source : Insee, fichiers d'état civil") + theme_gouv() plot_etamat_type
Pour un usage des graphiques hors publication (usage seul ou dans une présentation par exemple), on peut choisir d'y apposer la Marianne. La fonction add_plot_header()
permet de le faire simplement.
plot_etamat_type %>% add_plot_header(gglogo("marianne"), ratio = 8)
Ainsi, décliner un graphique national sur son territoire pour un service régional de l'État devient très simple. Il suffit de filtrer les données en entrée, et de changer le logo.
plot_etamat_type <- df_mariages_etat_dep_an %>% filter(depmar %in% c('44','49','53','72','85')) %>% group_by(amar, etamat_type) %>% summarise(n = sum(n)) %>% ggplot(aes(x = amar, y = n, color = str_wrap(etamat_type, 15))) + geom_line(size = 1.1) + scale_x_continuous(name = "Année", breaks = seq(1998, 2018, 2)) + scale_y_continuous( name = "Nombre de mariages", breaks = seq(0, 350000, 50000), labels = scales::label_number(big.mark = " ") ) + scale_color_gouv_discrete(name = "", palette = "pal_gouv_qual2") + labs(title = "Nombre de mariages par an en région", subtitle = "En fonction de l'état matrimonial des mariés", caption = "Source : Insee, fichiers d'état civil") + theme_gouv() plot_etamat_type %>% add_plot_header(gglogo("prefecture_r52"), ratio = 20)
Pour les cartes, on préférera l'utilisation de theme_gouv_map()
qui est plus adapté.
shp_dep %>% left_join(( df_mariages_etat_dep_an %>% filter(amar == 2018) %>% group_by(depmar) %>% summarise(n = sum(n)) ), by = c("INSEE_DEP" = "depmar") ) %>% ggplot(aes(fill = n)) + geom_sf() + scale_fill_gouv_continuous(name = "", palette = "pal_gouv_g", reverse = TRUE, breaks = seq(0, 10000, 2000), labels = scales::label_number(big.mark = " ")) + labs(title = "Nombre de mariages", subtitle = "Par département en 2018", caption = "Source : Insee, fichiers d'état civil") + theme_gouv_map()
Il est bien sûr aussi possible de réaliser des cartes en facettes.
shp_dep %>% left_join(( df_mariages_etat_dep_an %>% filter(amar %in% seq(1998, 2018, 4)) %>% group_by(amar, depmar) %>% mutate(part = n / sum(n)) %>% filter(etamat_type == "Deux célibataires") ), by = c("INSEE_DEP" = "depmar") ) %>% ggplot(aes(fill = part)) + geom_sf() + scale_fill_gouv_continuous( name = "", palette = "pal_gouv_f", reverse = TRUE, breaks = seq(0, 1, 0.05), labels = scales::label_percent(accuracy = 1) ) + facet_wrap(vars(amar), nrow = 2) + labs(title = "Part des mariages de deux célibataires", subtitle = "Évolution par département", caption = "Source : Insee, fichiers d'état civil") + theme_gouv_map()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.