library(tidyverse)
library(paletteer)
library(patchwork)
library(gt)
date_caption <- "20 janvier 2025"
source("tools/themes.R") # themes
df_antibes <- read_csv("posts/2025-01-17/data/results_antibes.csv")
df_cannes <- read_csv("posts/2025-01-17/data/results_cannes.csv")
df_nice <- read_csv("posts/2025-01-17/data/results_nice.csv")Introduction
Un score de qualité des métadonnées a été mis en place sur data.gouv.fr pour aider les utilisateurs à identifier les jeux de données de qualité et encourager les producteurs à améliorer leurs contributions. Les 7 critères de cet indicateur sont définis sur data.gouv.fr
Ce post propose une visualisation du score pour trois villes de la Côte d’Azur qui ont publié des données:
- Antibes
- Cannes
- Nice
Résultats
Antibes est en tête dans la qualité des données par rapport aux autres grandes villes du département des Alpes Maritimes (06), avec une qualité des métadonnées significativement supérieure.
Visualisation
Code
Import
Create dataframe
# quick approach for col chart
df <-
tibble(
antibes = mean(df_antibes$values),
cannes = mean(df_cannes$values),
nice = mean(df_nice$values)
)
df <-
pivot_longer(df,
cols = everything(),
names_to = "ville",
values_to = "mean_quality")
# other approach for violin plot
df_point_antibes <- df_antibes %>% mutate(ville = "Antibes")
df_point_cannes <- df_cannes %>% mutate(ville = "Cannes")
df_point_nice <- df_nice %>% mutate(ville = "Nice")
df_point <- bind_rows(df_point_antibes,
df_point_cannes,
df_point_nice)
df_matrix <-
df_point %>%
group_by(ville) %>%
summarise(quantité = n(), qualité= mean(values)) %>%
mutate(qualité = scales::percent(qualité))
gt(df_matrix)| ville | quantité | qualité |
|---|---|---|
| Antibes | 162 | 85% |
| Cannes | 138 | 52% |
| Nice | 278 | 28% |
Clean
# standardize cols names and variables
df <-
df %>%
mutate(across(c(ville, mean_quality), str_to_title)) %>%
mutate(mean_quality = as.numeric(mean_quality)) %>%
mutate(ville = as_factor(ville))
# adding useful cols
df <-
df %>%
mutate(taux = scales::percent(mean_quality))Plot
# col chart
plot_col <-
df %>%
ggplot(aes(x = ville, y = mean_quality))+
geom_col(aes(y = 1), alpha = 0.4) +
geom_col(aes(fill = mean_quality)) +
geom_text(aes(label = taux),
vjust = 2,
hjust = 0.4,
size = 8,
color = "black",
fontface = "bold",
family = setfont) + tt6
# violin plot
plot_violin <-
df_point %>%
ggplot(aes(x = ville, y = values, color = values)) +
geom_violin(color = NA, fill = "gray80")+
geom_jitter(alpha = 0.8, size = 2.5) +
scale_y_continuous(labels = scales::label_percent(), breaks = scales::breaks_extended(n = 6), limits = c(0,1)) +
tt9
# labels and colors
plot_col <-
plot_col +
scale_y_discrete(expand = c(0, 0)) + # force origin at 0
scale_fill_paletteer_c("ggthemes::Red-Green-Gold Diverging") +
labs(
title = "Antibes en tête dans la qualité des données",
subtitle = "Qualité des metadonnées publiées sur opendata.gouv.fr. moyenne en (%)",
caption = social_caption2)
plot_violin <-
plot_violin +
scale_color_paletteer_c("ggthemes::Red-Green-Gold Diverging") +
labs(
title = "Antibes en tête dans la qualité des données",
subtitle = "Qualité des metadonnées publiées sur opendata.gouv.fr (%) <br>Chaque point représente un jeu de données",
caption = social_caption2) Render
Source
data.gouv.fr 20 janvier 2025