Construction de logements - CONSTRUCTION-LOGEMENTS

Données - INSEE

Last observation: juil. 2026 (N = 608)

First observation: janv. 1994 (N = 16)

Last data update: 03 sept. 2026, 23:40

Last compile: 04 sept. 2026, 01:53

Structure

France, Logements

Cumul 12 mois

Commencés, Autorisés

Code
`CONSTRUCTION-LOGEMENTS` |>
  filter(INDICATEUR %in% c("NBRE_LOG_COM", "NBRE_LOG_AUT"),
         REF_AREA == "FR-D976",
         LOGEMENT == "0",
          CUMUL12MOIS == "CUMUL") |>
  month_to_date() |>
  
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE/1000, color = INDICATEUR)) +
  xlab("") + ylab("Cumul sur 12 mois") +  theme_minimal() +
  
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(100, 800, 50),
                     labels = dollar_format(pre = "", su = " K", acc = 1)) +
  theme(legend.position = c(0.7, 0.9),
        legend.title = element_blank())

Individuels purs, collectifs

Code
`CONSTRUCTION-LOGEMENTS` |>
  filter(INDICATEUR %in% c("NBRE_LOG_COM"),
         REF_AREA == "FR-D976",
          CUMUL12MOIS == "CUMUL",
         LOGEMENT %in% c("NLCR", "101")) |>
  month_to_date() |>
  
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE/1000, color = LOGEMENT)) +
  xlab("") + ylab("Cumul sur 12 mois") +  theme_minimal() +
  
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 800, 20),
                     labels = dollar_format(pre = "", su = " K", acc = 1)) +
  theme(legend.position = c(0.25, 0.92),
        legend.title = element_blank())

Individuels purs, collectifs

Code
`CONSTRUCTION-LOGEMENTS` |>
  filter(INDICATEUR %in% c("NBRE_LOG_COM"),
         REF_AREA == "FR-D976",
          CUMUL12MOIS == "CUMUL",
         LOGEMENT %in% c("0", "101")) |>
  month_to_date() |>
  
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE/1000, color = LOGEMENT)) +
  xlab("") + ylab("Cumul sur 12 mois") +  theme_minimal() +
  
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 800, 50),
                     labels = dollar_format(pre = "", su = " K", acc = 1)) +
  theme(legend.position = c(0.7, 0.92),
        legend.title = element_blank())

Par type

Valeur

Code
`CONSTRUCTION-LOGEMENTS` |>
  filter(INDICATEUR %in% c("NBRE_LOG_COM"),
         REF_AREA == "FR-D976",
          CUMUL12MOIS == "CUMUL") |>
  month_to_date() |>
  
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE/1000, color = LOGEMENT)) +
  xlab("") + ylab("Cumul sur 12 mois") +  theme_minimal() +
  
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 800, 50),
                     labels = dollar_format(pre = "", su = " K", acc = 1)) +
  theme(legend.position = c(0.7, 0.9),
        legend.title = element_blank())

Indice, 2016-

Code
`CONSTRUCTION-LOGEMENTS` |>
  filter(INDICATEUR %in% c("NBRE_LOG_COM"),
         REF_AREA == "FR-D976",
          CUMUL12MOIS == "CUMUL") |>
  month_to_date() |>
  
  filter(date >=  as.Date("2016-01-01")) |>
  group_by(LOGEMENT) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[date == as.Date("2016-01-01")]) |>
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = LOGEMENT)) +
  xlab("") + ylab("Cumul sur 12 mois") +  theme_minimal() +
  
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 800, 5)) +
  theme(legend.position = c(0.7, 0.9),
        legend.title = element_blank())

Mensuel

Code
`CONSTRUCTION-LOGEMENTS` |>
  filter(INDICATEUR %in% c("NBRE_LOG_COM", "NBRE_LOG_AUT"),
         REF_AREA == "FR-D976",
         LOGEMENT == "0",
          CUMUL12MOIS == "SO") |>
  month_to_date() |>
  filter(date >= as.Date("2001-01-01")) |>
  
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE/1000, color = INDICATEUR)) +
  xlab("") + ylab("Mensuel") +  theme_minimal() +
  
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(10, 80, 5),
                     labels = dollar_format(pre = "", su = " K", acc = 1)) +
  theme(legend.position = c(0.7, 0.9),
        legend.title = element_blank())