Last compile: 19 Sep 2026, 19:23
Jeu de données très fin : 1 227 408 lignes (commune x code APE), effectifs et nombre d’établissements chaque année depuis 2006.
Structure
Effectifs salariés (France entière)
Code
annee_max <- 2025
`etab-effectifs-commune-ape` |>
summarise(across(starts_with("effectifs_salaries_"), \(x) sum(x, na.rm = TRUE))) |>
pivot_longer(everything(), names_to = "annee", names_prefix = "effectifs_salaries_",
values_to = "effectifs") |>
mutate(annee = as.Date(paste0(annee, "-01-01"))) |>
ggplot() + geom_line(aes(x = annee, y = effectifs)) +
geom_point(aes(x = annee, y = effectifs), size = 0.7) +
theme_minimal() + xlab("") + ylab("Effectifs salariés") +
scale_x_date(date_breaks = "2 years", labels = date_format("%Y")) +
scale_y_continuous(labels = label_number(big.mark = " ")) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
Effectifs salariés par grand secteur d’activité
Code
`etab-effectifs-commune-ape` |>
group_by(grand_secteur_d_activite) |>
summarise(across(starts_with("effectifs_salaries_"), \(x) sum(x, na.rm = TRUE)), .groups = "drop") |>
pivot_longer(-grand_secteur_d_activite, names_to = "annee", names_prefix = "effectifs_salaries_",
values_to = "effectifs") |>
mutate(annee = as.Date(paste0(annee, "-01-01"))) |>
ggplot() + geom_line(aes(x = annee, y = effectifs, color = grand_secteur_d_activite)) +
theme_minimal() + xlab("") + ylab("Effectifs salariés") +
scale_x_date(date_breaks = "2 years", labels = date_format("%Y")) +
scale_y_continuous(labels = label_number(big.mark = " ")) +
scale_color_viridis_d() +
theme(legend.position = "bottom", legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
Communes les plus importantes (2025)
Code
`etab-effectifs-commune-ape` |>
group_by(commune, code_departement, departement) |>
summarise(effectifs = sum(.data[[paste0("effectifs_salaries_", annee_max)]], na.rm = TRUE),
.groups = "drop") |>
slice_max(effectifs, n = 20) |>
mutate(commune = fct_reorder(paste0(commune, " (", departement, ")"), effectifs)) |>
ggplot() + geom_col(aes(x = commune, y = effectifs)) +
coord_flip() +
theme_minimal() + xlab("") + ylab("Effectifs salariés") +
scale_y_continuous(labels = label_number(big.mark = " "))
Carte de France par département (2025)
Code
`etab-effectifs-commune-ape` |>
group_by(code_departement) |>
summarise(effectifs = sum(.data[[paste0("effectifs_salaries_", annee_max)]], na.rm = TRUE),
.groups = "drop") |>
rename(CODE_DEPT = code_departement) |>
right_join(departements_details, by = "CODE_DEPT") |>
right_join(departements, by = "CODE_DEPT") |>
ggplot() + aes(long, lat, group = group, fill = effectifs) +
coord_equal() + theme_void() + geom_polygon() +
geom_text(aes(X_CENTROID, Y_CENTROID, label = NOM_DEPT), size = 1.8, check_overlap = TRUE) +
scale_fill_viridis_c(na.value = "grey90",
labels = label_number(big.mark = " "),
name = "Effectifs salariés") +
labs(x = "", y = "") +
theme(axis.text.x = element_blank(),
axis.text.y = element_blank())
Recherche par commune
Code
`etab-effectifs-commune-ape` |>
filter(commune == "Bois-Colombes") |>
select(secteur_na38, ape, !!paste0("nombre_d_etablissements_", annee_max),
!!paste0("effectifs_salaries_", annee_max)) |>
filter(!is.na(.data[[paste0("effectifs_salaries_", annee_max)]])) |>
arrange(-.data[[paste0("effectifs_salaries_", annee_max)]]) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}