Mandats des maires d’Antibes du XIXème siècle à nos jours

open data
antibes
Publié

20 janvier 2025

Objet
Durée des mandats des maires d’Antibes du XIXème siècle à nos jours

Introduction

Visualisation des données publiées sur data.gouv.fr par la ville d’Antibes Juan-Les-Pins “Maires d’Antibes depuis 1681 jusqu’aux élections de mars 2020 incluses.”

Résultats

Après Jean Baptiste-ROSTAN (1831-1865), le maire d’Antibes avec la plus grande longévité est Jean LEONETTI (1995-2026).

Visualisation

Code

Import

library(tidyverse)
library(janitor)
library(skimr)

date_caption <- "9 juin 2020"
source("tools/themes.R") # themes
# Idea : https://jrnold.github.io/priestley/articles/priestley.html

source <- read_csv2("posts/2025-01-20/data/antibes-maires-depuis1681.csv")
df <- source

Inspect

head(df)
tail(df)
glimpse(df)
skim(df)
summary(df)
str(df)
names(df)
colnames(df)
unique(df$MAIRE_NOM)
janitor:::tabyl(df$MAIRE_NOM)  %>% arrange(-percent)

Clean

df <- 
  df %>%
  select(3:9) %>%
  select(-6) %>%
  mutate_if(is.character, as.factor) %>%
  mutate(duree = df$FIN_MANDAT-df$DEBUT_MANDAT_ANNEE) %>%
  ungroup() %>%
  arrange(MAIRE_NOM) %>%
  arrange(DEBUT_MANDAT_ANNEE) %>%
  group_by(MAIRE_NOM, MAIRE_PRENOM) %>%
  mutate(id = cur_group_id()) %>% # group ids
  mutate(dureetot = cumsum(duree)) %>%
  mutate(dureetotmax = max(dureetot)) %>%
  unite(idnom, c(MAIRE_PRENOM,MAIRE_NOM,id), remove = FALSE) 

df <-
  df %>% 
  mutate(CONTEXTE_HISTORIQUE = str_to_title(CONTEXTE_HISTORIQUE))

#make col with unique names
df <- df %>%
  mutate(labelname = paste0(`MAIRE_PRENOM`, " ", `MAIRE_NOM`)) %>%
  group_by(labelname) %>%
  mutate(labelname = ifelse(row_number() == 1, labelname, NA_character_)) %>%
  ungroup()

  #check labelname are unique
print(df[c("idnom", "labelname")])
glimpse(df)
Rows: 110
Columns: 12
$ idnom               <chr> "Honoré_BERNARDY_8", "Antoine_REGNARD_49", "Honoré…
$ MAIRE_PRENOM        <fct> Honoré, Antoine, Honoré, non communiqué, Honoré, J…
$ MAIRE_NOM           <fct> BERNARDY, REGNARD, LEON, GUIRAUD, CARENCE, ARAZY, …
$ DEBUT_MANDAT_ANNEE  <dbl> 1681, 1701, 1702, 1704, 1705, 1706, 1711, 1712, 17…
$ FIN_MANDAT          <dbl> 1681, 1701, 1702, 1704, 1705, 1706, 1711, 1712, 17…
$ PROFESSION_MAIRE    <fct> "Avocat à la cour d'Aix", "Maître-apothicaire", "B…
$ CONTEXTE_HISTORIQUE <chr> "Grand Siecle", "Grand Siecle", "Grand Siecle", "G…
$ duree               <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ id                  <int> 8, 49, 36, 30, 12, 1, 36, 18, 16, 51, 17, 62, 6, 3…
$ dureetot            <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ dureetotmax         <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ labelname           <chr> "Honoré BERNARDY", "Antoine REGNARD", "Honoré LEON…

Analyze

#create CONTEXTE HISTORIQUE BOXES
df <-
df %>% 
  group_by(CONTEXTE_HISTORIQUE) %>%
  mutate(CONTEXTEmin = min(DEBUT_MANDAT_ANNEE),
         CONTEXTEmax = max(FIN_MANDAT)) %>%
  ungroup()

#create CONTEXTE HISTORIQUE bins
df<-
  df %>%
  mutate(phase = cut(DEBUT_MANDAT_ANNEE,
                     breaks = c(1680,1800,1900,2020,2026),
                     labels = c("XVII-XVIIIeme", "XIXeme", "XXeme", "XXIeme"))) %>%
  filter(DEBUT_MANDAT_ANNEE > 1808)

Plot

timeline <- 
df %>%
  mutate(phase = fct_rev(phase)) %>%  # Reverse the order of facets
  ggplot(aes(
    x = DEBUT_MANDAT_ANNEE, 
    y = reorder(idnom, DEBUT_MANDAT_ANNEE), 
    )) +
  geom_segment(aes(xend = FIN_MANDAT, 
                   yend = idnom,
                   color = reorder(CONTEXTE_HISTORIQUE, FIN_MANDAT) 
                   ),  
               linewidth = 6, lineend = "round"
               ) +
  geom_text(
              aes(label = labelname),
              size = 4.5, 
              hjust = 0.05,
              nudge_y = 0.4, 
              family = setfont,
              color = "gray20"
  ) +
  geom_text(data = df %>%
                    filter(df$dureetotmax >= 9) %>%
                    group_by(idnom) %>%
                    summarise(dureetotmax = max(dureetotmax),
                              DEBUT_MANDAT_ANNEE = min(DEBUT_MANDAT_ANNEE)),
            aes(
              x = DEBUT_MANDAT_ANNEE,
              y = reorder(idnom, DEBUT_MANDAT_ANNEE), 
              label = paste0(dureetotmax, " ans")
              ),
            size = 4,
            hjust = 0.1,
            vjust = 2.1,
            nudge_y = 0.4,
            family = setfont,
            color = "white",
            fontface = "bold"
            ) +
  annotate(
    "label",
    x = -Inf,  # Position at the far left of the plot
    y = Inf,   # Position at the top of the plot
    label = "  
    
  Jean LEONETTI est maire d'Antibes depuis 1995, 
  et totalisera 31 années de mandats d'ici 2026.
  Il est aussi député des Alpes-Maritimes et
  président de la communauté d'agglomération 
  de Sophia Antipolis depuis 2002.
  L'élu détient le record de longévité après 
  Jean-Baptiste ROSTAN, qui a servi 34 ans 
  entre 1831 et 1865.",
    hjust = 0,  
    vjust = 1, 
    family = setfont,
    fontface = "bold",
    size = 4.5, 
    color = "gray30",  
    fill = "#FAE5C6",
    label.size = 0   # Removes the border around the label
  ) +
  annotate(
    "curve",
    x = 1928,   
    xend = 1990,     
    y = max(as.numeric(factor(df$idnom)))-0.5,  
    yend = max(as.numeric(factor(df$idnom))+0.1),    
    curvature = -0.2,              
    arrow = arrow(length = unit(0.02, "npc"), type = "open"),
    colour = "gray30",            
    size = 1.2                   
  ) +
  labs(title = "Jean Leonetti : record de longévité à la mairie d'Antibes",
       subtitle = "Mandats des maires d'Antibes du XIXème siècle à nos jours",
       caption = social_caption2,
       color ="Contexte historique") +
  scale_color_manual(values = custom_palette) +
  scale_fill_manual(values = custom_palette) +
  tt.maires +
  guides(color = guide_legend(reverse = TRUE)) +
  scale_x_continuous(
    limits = c(min(df$DEBUT_MANDAT_ANNEE)-1, max(df$FIN_MANDAT) + 1), # Add space
    expand = expansion(mult = 0.1)                      # Add 10% space on both sides
  )

Render

timeline

Source

Maires de la Ville d’Antibes, disponible sur data.gouv.fr. Mise à jour du 9 juin 2020

Retour au sommet