1 Objectifs

Ce script présente l’analyse réalisée autour de la question du genre des maires des communes nouvelles.

Les résultats ont été synthétisés dans l’article suivant :

[Références article The Conversation].

Les données utilisées sont disponibles sur l’archive suivante :

https://www.nakala.fr/10.34847/nkl.80ff4vp7

Ce travail s’inscrit dans le cadre d’une étude plus générale sur les communes nouvelles :

https://cv.hal.science/gabriel-bideau

2 Préparation des données

2.1 Import de la base DAC

La base DAC (Données Agrégées des Communes) est utilisée pour distinguer les communes fusionnantes des autres communes françaises. Référence sur la construction de cette base : https://journals.openedition.org/cybergeo/39387

La base DAC utilisée ici est celle mise à jour avec les communes créées au 1er janvier 2024.

# Import des données générales et socio-économiques 
load("data/refdata.Rdata")
# load("Archives/data_prep 2011-2023(01)/data/refdata.Rdata")

On observe les fusions au cours du temps pour déterminer quelles années il est le plus adapté d’étudier.

On choisit de s’intéresser aux communes ayant fusionné au plus tard le 1er janvier 2019 et après 2014. Ces données concernent la très grande majorité des communes nouvelles créées dernièrement en France et permettent de bien avoir une comparaison avant/après.

# On ne veut analyser que les communes ayant fusionné avant le 1er janvier 2020 (pour retirer celles pour lesquelles la comparaison avant/après n'a pas de sens).

df2011$FusDate <- as.Date(df2011$FusDate, tryFormats = "%Y-%m-%d")
# table(df2011$FusDate)
df2011$FusDateAnnee <- cut(df2011$FusDate,
                              breaks = as.Date(c("2011-1-1", "2012-1-2", "2013-1-2", "2014-1-2", "2015-1-2", "2016-1-2", "2017-1-2","2018-1-2", "2019-1-2", "2020-1-2", "2021-1-2", "2022-1-2", "2023-1-2", "2024-1-2")), 
                        labels = c("2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")) # NB : On intègre le 1er janvier d'une année n à l'année précédente n-1
table(df2011$FusDateAnnee)
## 
## 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 
##    2   29    2   37 1082  658   91  600    6    5   19   18   22
df2011$FusDateAnnee_effectivite <- cut(df2011$FusDate,
                        breaks = as.Date(c("2011-1-1", "2012-1-1", "2013-1-1", "2014-1-1", "2015-1-1", "2016-1-1", "2017-1-1","2018-1-1", "2019-1-1", "2020-1-1", "2021-1-1", "2022-1-1", "2023-1-1", "2024-1-1")),
                        labels = c("2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")) # Si on utilise l'année (1er janvier laissé dans l'année concernée)
table(df2011$FusDateAnnee_effectivite)
## 
## 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 
##    0    2   31    0   46 1170  564   90  604    0    5   19   18
# On modifie l'indication de communes nouvelles dans les tableaux df2011 et df_new pour ne prendre en compte que les communes ayant fusionné au plus tard au 1er janvier 2019 (ce qui concerne la très grande partie des communes nouvelles).

df2011$COM_NOUV_ancien <- df2011$COM_NOUV
table(df2011$COM_NOUV_ancien)
## 
##   NON   OUI 
## 33637  2571
df2011$COM_NOUV <- ifelse(as.Date(df2011$FusDate, tryFormats = "%Y-%m-%d") < as.Date("2019-1-2") &
                            as.Date(df2011$FusDate, tryFormats = "%Y-%m-%d") > as.Date("2014-1-1"), "OUI", "NON")

df2011$COM_NOUV[is.na(df2011$COM_NOUV)] <- "NON"
table(df2011$COM_NOUV)
## 
##   NON   OUI 
## 33740  2468
df_new$COM_NOUV_ancien <- df_new$COM_NOUV
table(df_new$COM_NOUV_ancien)
## 
##   NON   OUI 
## 33635   804
# table(df_new$FusDate)
df_new$COM_NOUV <- ifelse(as.Date(df_new$FusDate, tryFormats = "%Y-%m-%d") < as.Date("2019-1-2") &
                            as.Date(df_new$FusDate, tryFormats = "%Y-%m-%d") > as.Date("2014-1-1"), "OUI", "NON")
# df_new$COM_NOUV <- ifelse(as.Date(df_new$FusDate, tryFormats = "%Y-%m-%d") < as.Date("2019-1-2"), "OUI", "NON")
df_new$COM_NOUV[is.na(df_new$COM_NOUV)] <- "NON"
table(df_new$COM_NOUV)
## 
##   NON   OUI 
## 33675   764

2.2 Source des données sur les maires à différentes dates

On souhaite travailler sur les données avant la majorité des fusions. On utilise donc les plus anciennes données disponibles, celles de 2014. Source pour les élus en 2014 : https://www.data.gouv.fr/fr/datasets/liste-des-maires-au-17-juin-2014/

On veut, ensuite, travailler sur les données indiquant les maires après une large partie des fusions mais avant le renouvellement des conseils municipaux. La date de 2019 est donc choisie car une grande partie des fusions de communes ont eu lieu mais les élections municipales de 2020 n’ont pas encore renouvelé les conseils municipaux. Source pour les élus en 2019 :

Les données ne sont plus disponibles sur le site data.gouv.fr, en revanche elles sont disponibles sur la page d’une réutalisation par Maxime Launois ici https://mlaunois.github.io/rapport-les-elus-nationaux .

Source pour les élus en 2022 : https://www.data.gouv.fr/fr/datasets/repertoire-national-des-elus-1/

Source pour les élus en 2024 : https://www.data.gouv.fr/fr/datasets/r/2876a346-d50c-4911-934e-19ee07b0e503

3 Étude du genre des maires

3.1 En 2014

# download.file("https://www.data.gouv.fr/fr/datasets/r/4f71a09d-78fd-4fe4-8396-34765be70788", "data-raw/elections/maires_2014_06_17.xlsx")
# Téléchargement effectué le 6 mars 2023
elus_2014 <- read_xlsx( "data-raw/elections/maires_2014_06_17.xlsx", skip = 1)

# On rajoute des zéros (0) aux variables département et numéro de commune pour créer un identifiant CODGEO
elus_2014$`Code Insee de la commune` <- str_pad(elus_2014$`Code Insee de la commune`, 3, pad = "0") # Si besoin de rajouter des zéros (s'ils ne sont pas présents dans la table)
elus_2014$`Code du département (Maire)` <- str_pad(elus_2014$`Code du département (Maire)`, 2, pad = "0")
elus_2014$CODGEO <- paste0(elus_2014$`Code du département (Maire)`, elus_2014$`Code Insee de la commune`)

# On fusionne avec df2011
elus_2014 <- merge (df2011 [, c("CODGEO", "COM_NOUV", "ChefLieu")], elus_2014, by = "CODGEO", all.x = TRUE, all.y = FALSE)


# Si on veut utiliser le champs date de naissance
# Possible de passer en format date
#elus_2014$`Date de naissance` <- as.Date(elus_2014$`Date de naissance`, tryFormats = "%Y-%m-%d")

elus_2014$Date_simpl <- substr(elus_2014$`Date de naissance`, start = 1, stop = 4)
# class(elus_2014$Date_simpl)
elus_2014$Date_simpl <- as.numeric(elus_2014$Date_simpl)
seuils <- quantile(elus_2014$Date_simpl, probs=seq(0, 1, 0.25), na.rm = TRUE)
elus_2014$Date_quantiles <- cut(elus_2014$Date_simpl, breaks = seuils)
# On modifie l'intitulé des variables pour en simplifier la manipulation (on enlève les espaces)
elus_2014$Sexe <- elus_2014$`Code sexe`
elus_2014$Profession <- elus_2014$`Libellé de la profession`
couleurs <- c("#2b83ba", "red4")

liste_criteres <- c("Sexe", "Profession", "Date_quantiles")
elus_2014CN <- subset (elus_2014, elus_2014$COM_NOUV == "OUI")
elus_2014CN$ChefLieu <- paste0("ChefLieuCN_", elus_2014CN$ChefLieu)
critere <- liste_criteres[1]

# for (critere in liste_criteres) { # Pour ceux qui souhaiteraient étudier de multiples critères
  print(paste0("VARIABLE ÉTUDIÉE : ", critere))
## [1] "VARIABLE ÉTUDIÉE : Sexe"
  tabcont <- table(elus_2014$COM_NOUV, elus_2014[, critere])
tabcont
##      
##           F     M
##   NON  5430 28183
##   OUI   377  2084
# round(100*prop.table(tabcont,margin=1),1) # Pourcentages, le total se fait par lignes
# round(100*prop.table(tabcont,margin=),1) # Pourcentages, le total se fait sur l'ensemble de la population
print(round(100*prop.table(tabcont,margin=2),1)) # Pourcentages, le total se fait par colonnes
##      
##          F    M
##   NON 93.5 93.1
##   OUI  6.5  6.9
test<-chisq.test(tabcont)
print(test)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tabcont
## X-squared = 1.1241, df = 1, p-value = 0.289
tab <- round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = Var2, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.2, 0.85)) +
  scale_x_discrete("Sexe renseigné") +
  # scale_x_discrete(critere) + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Communes inchangées", "Communes fusionnantes"), values = couleurs) +
  labs(fill = NULL)

print ("Graphique ci-dessus : le genre des maires en 2014 en fonction du statut de commune fusionnante ou non.")
## [1] "Graphique ci-dessus : le genre des maires en 2014 en fonction du statut de commune fusionnante ou non."
# Le genre des élus en fonction de la situation de chef-lieu
tabcont <- table(elus_2014CN$ChefLieu, elus_2014CN[, critere])
tabcont
##               
##                   F    M
##   ChefLieuCN_N  303 1401
##   ChefLieuCN_O   74  683
# round(100*prop.table(tabcont,margin=1),1) # Pourcentages, le total se fait par lignes
# round(100*prop.table(tabcont,margin=),1) # Pourcentages, le total se fait sur l'ensemble de la population
print(round(100*prop.table(tabcont,margin=2),1)) # Pourcentages, le total se fait par colonnes
##               
##                   F    M
##   ChefLieuCN_N 80.4 67.2
##   ChefLieuCN_O 19.6 32.8
test<-chisq.test(tabcont)
print(test)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tabcont
## X-squared = 25.286, df = 1, p-value = 4.942e-07
tab <- round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = Var2, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.2, 0.85)) +
  scale_x_discrete("Sexe renseigné") +
  # scale_x_discrete(critere) + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Commune ne devenant pas chef-lieu", "Commune devenant chef-lieu"), values = c("red", "darkred")) +
  labs(fill = NULL)

print ("Graphique ci-dessus : le genre des maires en 2014 en fonction du statut de la commune fusionnante : devenant chef-lieu ou non")
## [1] "Graphique ci-dessus : le genre des maires en 2014 en fonction du statut de la commune fusionnante : devenant chef-lieu ou non"
# }

Deux conclusions sur le genre :

  1. Le genre n’est pas une variable répartie de manière très différente entre les communes qui fusionnent et les autres : un peu moins de femmes mais pas forcément significatif d’un point de vue statistique.

  2. En revanche, très clairement, les femmes sont moins souvent maires des communes qui deviennent chef-lieu. Relation significative.

NB : Sur l’âge, visiblement pas beaucoup d’incidence. Sur la profession, travail pas encore assez approfondi, toute personne intéressée peut évidemment réutiliser les bouts de codes présentés ici, dans le cadre d’une licence CC-BY-NC.

3.2 En 2019

# Téléchargement effectué le 10 mai 2024
elus_2019<- read.table("data-raw/elections/maires_2019_reutilisation.txt", skip = 1, sep = "\t", fill = TRUE, encoding = "latin1", quote = "\"", head = TRUE, check.names = FALSE)

# colnames(elus_2019) <- elus_2019[1,]
# elus_2019 <- elus_2019[-1,]
colnames(elus_2019)
##  [1] "Code du département (Maire)"     "Libellé de département (Maires)"
##  [3] "Code Insee de la commune"        "Libellé de la commune"          
##  [5] "Nom de l'élu"                    "Prénom de l'élu"                
##  [7] "Code sexe"                       "Date de naissance"              
##  [9] "Code profession"                 "Libellé de la profession"       
## [11] "Date de début du mandat"         "Date de début de la fonction"
elus_2019$CODGEO_new <- elus_2019$`Code de la commune`

# On crée un CODGEO
elus_2019$CODE_COM <- str_pad(elus_2019$`Code Insee de la commune`, 3, pad = "0")
elus_2019$CODGEO_new <- paste0(elus_2019$`Code du département (Maire)`, elus_2019$CODE_COM)

elus_2019 <- merge (df_new [, c("CODGEO_new", "COM_NOUV", "FusDateAnnee")], elus_2019, by = "CODGEO_new", all.x = TRUE, all.y = FALSE)

## Code utilisé lorsque les données étaient sélectionnées spécifiquement ici (désormais sélection plus haut)
# On crée un tableau pour ne s'intéresser qu'aux communes nouvelles créées avant le 1er janvier 2019, c'est-à-dire où la décision (FusDateAnnee) a été prise avant 2019
# elus_2019_CN <- subset(elus_2019, elus_2019$COM_NOUV == "OUI"
#                            & elus_2019$FusDateAnnee < "2019")
# On veut que seules les communes ayant fusionné avant 2019 soient considérées comme des communes nouvelles
# elus_2019$COM_NOUV_av_2019 <- ifelse(elus_2019$FusDateAnnee < "2019", "OUI", "NON")
# table(elus_2019$COM_NOUV_av_2019)
# elus_2019$COM_NOUV_av_2019 <- ifelse(is.na(elus_2019$COM_NOUV_av_2019), "NON", elus_2019$COM_NOUV_av_2019)
# table(elus_2019$COM_NOUV_av_2019)
# Le genre des élus en fonction du fait de participer à une commune nouvelle ou non
# tabcont <- table(elus_2019$COM_NOUV_av_2019, elus_2019$`Code sexe`)

tabcont <- table(elus_2019$COM_NOUV, elus_2019$`Code sexe`)


tabcont
##      
##           F     M
##   NON  5700 27846
##   OUI    79   676
# round(100*prop.table(tabcont,margin=1),1) # Pourcentages, le total se fait par lignes
# round(100*prop.table(tabcont,margin=),1) # Pourcentages, le total se fait sur l'ensemble de la population
round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
##      
##          F    M
##   NON 98.6 97.6
##   OUI  1.4  2.4
test<-chisq.test(tabcont)
test
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tabcont
## X-squared = 21.997, df = 1, p-value = 2.73e-06
tab <- round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = Var2, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.2, 0.85)) +
  scale_x_discrete("Sexe renseigné") +
  # scale_x_discrete(critere) + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Communes inchangées", "Communes nouvelles"), values = couleurs) +
  labs(fill = NULL)

print ("Graphique ci-dessus : le genre des maires en 2019 en fonction du statut de commune nouvelle ou non")
## [1] "Graphique ci-dessus : le genre des maires en 2019 en fonction du statut de commune nouvelle ou non"

3.3 En 2022

# download.file("https://www.data.gouv.fr/fr/datasets/r/2876a346-d50c-4911-934e-19ee07b0e503", "data-raw/elections/maires_2022.csv")
# Téléchargement effectué le 6 mars 2023
elus_2022<- read_delim("data-raw/elections/maires_2022.csv", delim = "\t", escape_double = FALSE, trim_ws = TRUE, show_col_types = FALSE)

elus_2022$CODGEO_new <- elus_2022$`Code de la commune`

elus_2022 <- merge (df_new [, c("CODGEO_new", "COM_NOUV")], elus_2022, by = "CODGEO_new", all.x = TRUE, all.y = FALSE)

# Le genre des élus en fonction du fait de participer à une commune nouvelle ou non
tabcont <- table(elus_2022$COM_NOUV, elus_2022$`Code sexe`)
tabcont
##      
##           F     M
##   NON  6881 26647
##   OUI   125   636
# round(100*prop.table(tabcont,margin=1),1) # Pourcentages, le total se fait par lignes
# round(100*prop.table(tabcont,margin=),1) # Pourcentages, le total se fait sur l'ensemble de la population
round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
##      
##          F    M
##   NON 98.2 97.7
##   OUI  1.8  2.3
test<-chisq.test(tabcont)
test
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tabcont
## X-squared = 7.4342, df = 1, p-value = 0.006399
tab <- round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = Var2, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.2, 0.85)) +
  scale_x_discrete("Sexe renseigné") +
  # scale_x_discrete(critere) + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Communes inchangées", "Communes nouvelles"), values = couleurs) +
  labs(fill = NULL)

print ("Graphique ci-dessus : le genre des maires en 2022 en fonction du statut de commune nouvelle ou non")
## [1] "Graphique ci-dessus : le genre des maires en 2022 en fonction du statut de commune nouvelle ou non"

En 2022, les femmes sont encore moins présentes comme maires des communes nouvelles que comme maires des autres communes, mais avec un différentiel moins important qu’en 2019 : les électeurs sont moins sexistes que les conseils municipaux après fusion.

3.4 En 2024

En 2024, les quelques évolutions vont plutôt dans le sens d’une amélioration de la place des femmes.

On peut éventuellement lier la plus faible présence de la place des femmes dans les communes nouvelles à la sous-représentation des femmes dans les mairies au-delà de 500 habitants, les communes nouvelles étant en moyenne plus peuplées que les autres communes françaises.

# download.file("https://www.data.gouv.fr/fr/datasets/r/2876a346-d50c-4911-934e-19ee07b0e503", "data-raw/elections/maires_2024.csv")
# Téléchargement effectué le 10 mai 2024
elus_2024<- read_delim("data-raw/elections/maires_2024.csv", delim = ";", escape_double = FALSE, trim_ws = TRUE, show_col_types = FALSE)
colnames(elus_2024)
##  [1] "Code du département"                            
##  [2] "Libellé du département"                         
##  [3] "Code de la collectivité à statut particulier"   
##  [4] "Libellé de la collectivité à statut particulier"
##  [5] "Code de la commune"                             
##  [6] "Libellé de la commune"                          
##  [7] "Nom de l'élu"                                   
##  [8] "Prénom de l'élu"                                
##  [9] "Code sexe"                                      
## [10] "Date de naissance"                              
## [11] "Code de la catégorie socio-professionnelle"     
## [12] "Libellé de la catégorie socio-professionnelle"  
## [13] "Date de début du mandat"                        
## [14] "Date de début de la fonction"
elus_2024$`Code de la commune` <- str_pad(elus_2024$`Code de la commune`, 5, pad = "0")
elus_2024$`Code du département` <- str_pad(elus_2024$`Code du département`, 2, pad = "0")

elus_2024$CODGEO_new <- elus_2024$`Code de la commune`

elus_2024 <- merge (df_new [, c("CODGEO_new", "COM_NOUV", "P09_POP")], elus_2024, by = "CODGEO_new", all.x = TRUE, all.y = FALSE)
table(is.na(elus_2024$`Code sexe`))
## 
## FALSE  TRUE 
## 34317   141
# Le genre des élus en fonction du fait de participer à une commune nouvelle ou non
tabcont <- table(elus_2024$COM_NOUV, elus_2024$`Code sexe`)
tabcont
##      
##           F     M
##   NON  7036 26520
##   OUI   134   627
# round(100*prop.table(tabcont,margin=1),1) # Pourcentages, le total se fait par lignes
# round(100*prop.table(tabcont,margin=),1) # Pourcentages, le total se fait sur l'ensemble de la population
round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
##      
##          F    M
##   NON 98.1 97.7
##   OUI  1.9  2.3
test<-chisq.test(tabcont)
test
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tabcont
## X-squared = 4.8801, df = 1, p-value = 0.02717
tab <- round(100*prop.table(tabcont,margin=2),1) # Pourcentages, le total se fait par colonnes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = Var2, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.2, 0.85)) +
  scale_x_discrete("Sexe renseigné") +
  # scale_x_discrete(critere) + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Communes inchangées", "Communes nouvelles"), values = couleurs) +
  labs(fill = NULL)

print ("Graphique ci-dessus : le genre des maires en 2024 en fonction du statut de commune nouvelle ou non")
## [1] "Graphique ci-dessus : le genre des maires en 2024 en fonction du statut de commune nouvelle ou non"
# On regarde en fonction de la population
PopCom <- elus_2024$P09_POP
PopCom <- cut(PopCom, breaks = c(-1,200,500,1000, 5000, 10000, 2230000))
levels(PopCom)<-c("moins de 200 habitants", "200-500 habitants", "500-1000 habitants", "1000-5000 habitants", "5000-10000 habitants", "plus de 10000 habitants")
levels(PopCom)<-c("moins de 200", "200-500", "500-1000", "1000-5000", "5000-10000", "plus de 10000")
table (PopCom)
## PopCom
##  moins de 200       200-500      500-1000     1000-5000    5000-10000 
##          8753          9700          6605          7411          1084 
## plus de 10000 
##           904
tabcont<-table(elus_2024$`Code sexe`, PopCom)
tab <- round(100*prop.table(tabcont,margin=1),2) # Pourcentages, le total se fait par lignes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = PopCom, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.8, 0.85)) +
  scale_x_discrete("Nombre d'habitants") + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Maires femmes", "Maires hommes"), values = c("red", "blue")) +
  labs(fill = NULL)

# On regarde en couplant le code sexe avec la question de la commune nouvelle
elus_2024$COM_NOUV_sexe <- paste0(elus_2024$`Code sexe`, "_", elus_2024$COM_NOUV)
table(elus_2024$COM_NOUV_sexe)
## 
##  F_NON  F_OUI  M_NON  M_OUI NA_NON NA_OUI 
##   7036    134  26520    627    138      3
tabcont<-table(elus_2024$COM_NOUV_sexe, PopCom)

# On supprime les NA
tabcont <- tabcont[1:4,]
tabcont
##        PopCom
##         moins de 200 200-500 500-1000 1000-5000 5000-10000 plus de 10000
##   F_NON         1925    2036     1277      1445        199           153
##   F_OUI            2      11       21        82         14             4
##   M_NON         6774    7570     5144      5509        807           716
##   M_OUI           14      41      136       347         62            27
chisq.test(tabcont)
## 
##  Pearson's Chi-squared test
## 
## data:  tabcont
## X-squared = 877.47, df = 15, p-value < 2.2e-16
tab <- round(100*prop.table(tabcont,margin=1),2) # Pourcentages, le total se fait par lignes
prbarplot <- as.data.frame(tab)

ggplot(data = prbarplot, aes(x = PopCom, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position=position_dodge()) +
  theme(axis.text.x = element_text(angle = 45, hjust=1), legend.position = c(0.8, 0.85)) +
  scale_x_discrete("Nombre d'habitants") + 
  scale_y_continuous("Part du groupe de communes (%)") +
  # scale_fill_manual("Communes\nfusionnantes", values = couleurs) +
  scale_fill_manual(labels = c("Maires femmes\ncommunes inchangées", "Maires femmes\ncommunes nouvelles",
                               "Maires hommes\ncommunes inchangées", "Maires hommes\ncommunes nouvelles"), values = c("darkred", "red", "darkblue", "blue")) +
  labs(fill = NULL)