library(tidyverse)
library(paletteer)
library(patchwork)
library(gt)
<- "20 janvier 2025"
date_caption source("tools/themes.R") # themes
<- read_csv("posts/2025-01-17/data/results_antibes.csv")
df_antibes <- read_csv("posts/2025-01-17/data/results_cannes.csv")
df_cannes <- read_csv("posts/2025-01-17/data/results_nice.csv") df_nice
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_antibes %>% mutate(ville = "Antibes")
df_point_antibes <- df_cannes %>% mutate(ville = "Cannes")
df_point_cannes <- df_nice %>% mutate(ville = "Nice")
df_point_nice
<- bind_rows(df_point_antibes,
df_point
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