source | dataset | .html | .qmd | .RData |
---|---|---|---|---|
insee | EMPLOI-BIT-TRIM | [2025-08-26] | https://fgee | olf.com/data |
Emploi, activité, sous-emploi par secteur d’activité (sens BIT)
Data - Insee
Info
Données sur l’emploi
source | dataset | Title | Download | Compile |
---|---|---|---|---|
insee | EMPLOI-BIT-TRIM | Emploi, activité, sous-emploi par secteur d’activité (sens BIT) | 2025-08-28 | [2025-08-26] |
insee | CHOMAGE-TRIM-NATIONAL | Chômage, taux de chômage par sexe et âge (sens BIT) (1975-) | 2025-08-28 | [2025-08-28] |
insee | CNA-2014-EMPLOI | Emploi intérieur, durée effective travaillée et productivité horaire | 2025-08-28 | [2025-08-28] |
insee | DEMANDES-EMPLOIS-NATIONALES | Demandeurs d'emploi inscrits à Pôle Emploi | 2025-08-28 | [2025-08-28] |
insee | EMPLOI-SALARIE-TRIM-NATIONAL | Estimations d'emploi salarié par secteur d'activité | 2025-08-28 | [2025-08-26] |
insee | TAUX-CHOMAGE | Taux de chômage localisé | 2025-08-28 | [2025-08-26] |
insee | TCRED-EMPLOI-SALARIE-TRIM | Estimations d'emploi salarié par secteur d'activité et par département | 2025-08-28 | [2025-08-26] |
LAST_UPDATE
Code
`EMPLOI-BIT-TRIM` %>%
group_by(LAST_UPDATE) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
LAST_UPDATE | Nobs |
---|---|
2025-08-08 | 10936 |
2019-08-14 | 7920 |
2023-08-11 | 38 |
LAST_COMPILE
LAST_COMPILE |
---|
2025-08-28 |
Last
Code
`EMPLOI-BIT-TRIM` %>%
group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(desc(TIME_PERIOD)) %>%
head(1) %>%
print_table_conditional()
TIME_PERIOD | Nobs |
---|---|
2025-Q2 | 122 |
Sources
Précision
Code
i_g("bib/insee/EEC2021_Note-methodologique-juillet-2021/precision.png")
AGE
Code
`EMPLOI-BIT-TRIM` %>%
left_join(AGE, by = "AGE") %>%
group_by(AGE, Age) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
AGE | Age | Nobs |
---|---|---|
15-24 | De 15 à 24 ans | 3276 |
50-64 | De 50 à 64 ans | 3276 |
55-64 | De 55 à 64 ans | 3276 |
25-49 | De 25 à 49 ans | 2808 |
15-64 | De 15 à 64 ans | 2736 |
00- | Ensemble | 1404 |
SO | Sans objet | 1248 |
50- | 50 ans et plus | 780 |
15-29 | De 15 à 29 ans | 90 |
INDICATEUR
Code
`EMPLOI-BIT-TRIM` %>%
left_join(INDICATEUR, by = "INDICATEUR") %>%
group_by(INDICATEUR, Indicateur) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
INDICATEUR | Indicateur | Nobs |
---|---|---|
CTTA15 | Taux d'activité | 2964 |
CTTE15 | Taux d'emploi | 2964 |
CTTE15_ETP | Taux d'emploi en équivalent temps plein | 2340 |
CTTE15_TC | Taux d'emploi à temps complet | 2340 |
CTTE15_TP | Taux d'emploi à temps partiel | 2340 |
CTTE15_TPE | Part du temps partiel dans l'emploi | 1872 |
CTTE15_SJ | Taux d'emploi sous-jacent | 1404 |
CTTE15_EA | Espérance apparente d'activité | 936 |
CTTE15_CDD | Taux d'emploi en CDD ou intérim | 156 |
CTTE15_CDI | Taux d'emploi en CDI | 156 |
CTTO15LA | Taux de personnes en situation de sous-emploi : temps partiel, souhaitant travailler plus d'heures, disponible pour le faire et à la recherche d'un autre emploi | 156 |
CTTO15LI | Taux de personnes en situation de sous-emploi : temps partiel, souhaitant travailler plus d'heures, disponible pour le faire mais sans recherche d'un autre emploi | 156 |
CTTO15LT | Taux de personnes en situation de sous-emploi | 156 |
CTTO15NH | Taux de personnes en situation de sous-emploi : temps plein, ou temps partiel, ayant involontairement travaillé moins que d'habitude | 156 |
CTVO15LA | Nombre de personnes en situation de sous-emploi : temps partiel, souhaitant travailler plus d'heures, disponible pour le faire et à la recherche d'un autre emploi | 156 |
CTVO15LI | Nombre de personnes en situation de sous-emploi : temps partiel, souhaitant travailler plus d'heures, disponible pour le faire mais sans recherche d'un autre emploi | 156 |
CTVO15LT | Nombre total des personnes en situation de sous-emploi | 156 |
CTVO15NH | Nombre de personnes en situation de sous-emploi : temps plein, ou temps partiel, ayant involontairement travaillé moins que d'habitude | 156 |
NEET_T_1529 | Part des jeunes de 15 à 29 ans qui ne sont ni en emploi ni en formation | 90 |
NBH_T_1564 | Nombre moyen d’heures travaillées par semaine et par emploi | 84 |
REF_AREA
Code
`EMPLOI-BIT-TRIM` %>%
group_by(REF_AREA) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
REF_AREA | Nobs |
---|---|
FR-D976 | 10974 |
FM | 7920 |
NATURE
Code
`EMPLOI-BIT-TRIM` %>%
left_join(NATURE, by = "NATURE") %>%
group_by(NATURE, Nature) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
NATURE | Nature | Nobs |
---|---|---|
TAUX | Taux | 15288 |
PROPORTION | Proportion | 1962 |
VALEUR_ABSOLUE | Valeur absolue | 1644 |
SEXE
Code
`EMPLOI-BIT-TRIM` %>%
left_join(SEXE, by = "SEXE") %>%
group_by(SEXE, Sexe) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
SEXE | Sexe | Nobs |
---|---|---|
0 | Ensemble | 7662 |
1 | Hommes | 5616 |
2 | Femmes | 5616 |
TIME_PERIOD
Code
`EMPLOI-BIT-TRIM` %>%
group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(desc(TIME_PERIOD)) %>%
print_table_conditional()
Last observation
Current:
Code
`EMPLOI-BIT-TRIM` %>%
group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(desc(TIME_PERIOD)) %>%
head(1) %>%
print_table_conditional()
TIME_PERIOD | Nobs |
---|---|
2025-Q2 | 122 |
TITLE_FR, OBS_VALUE
Tous
Code
`EMPLOI-BIT-TRIM` %>%
filter(TIME_PERIOD == "2021-Q3") %>%
select(OBS_VALUE, TITLE_FR) %>%
print_table_conditional()
Sexe = 0
Code
`EMPLOI-BIT-TRIM` %>%
filter(TIME_PERIOD == "2021-Q3",
== "0") %>%
SEXE select(OBS_VALUE, TITLE_FR) %>%
print_table_conditional()
Sexe = 0, Age = Tous
Code
`EMPLOI-BIT-TRIM` %>%
filter(TIME_PERIOD == "2021-Q3",
== "0",
SEXE %in% c("00-", "SO")) %>%
AGE select(OBS_VALUE, TITLE_FR) %>%
print_table_conditional()
OBS_VALUE | TITLE_FR |
---|---|
326.0 | Personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire et à la recherche d'un autre emploi (en milliers) - France hors Mayotte - Données CVS |
1060.0 | Personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire mais sans recherche d'un autre emploi (en milliers) - France hors Mayotte - Données CVS |
126.0 | Personnes en situation de sous-emploi - Temps plein, ou temps partiel, ayant involontairement travaillé moins que d'habitude (en milliers) - France hors Mayotte - Données CVS |
1512.0 | Nombre total des personnes en situation de sous-emploi (en milliers) - France hors Mayotte - Données CVS |
1.2 | Taux de personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire et à la recherche d'un autre emploi - France hors Mayotte - Données CVS |
3.8 | Taux de personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire mais sans recherche d'un autre emploi - France hors Mayotte - Données CVS |
0.4 | Taux de personnes en situation de sous-emploi - Temps plein, ou temps partiel, ayant involontairement travaillé moins que d'habitude - France hors Mayotte - Données CVS |
5.4 | Taux des personnes en situation de sous-emploi - Ensemble - France hors Mayotte - Données CVS |
56.2 | Personnes actives (taux d'activité) au sens du BIT - France hors Mayotte - Données CVS |
51.8 | Personnes en emploi (taux d'emploi) au sens du BIT - Ensemble - France hors Mayotte - Données CVS |
17.7 | Part du temps partiel dans l'emploi au sens du BIT - Ensemble - France hors Mayotte - Données CVS |
Toutes colonnes
Code
`EMPLOI-BIT-TRIM` %>%
filter(TIME_PERIOD == "2021-Q3") %>%
select_if(function(col) length(unique(col)) > 1) %>%
select(OBS_VALUE, TITLE_FR, everything()) %>%
select(-TITLE_EN) %>%
print_table_conditional()
Taux à temps partiel
Tous âges
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTE15_TPE"),
== "FR-D976",
REF_AREA %in% c("00-", "SO")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Temps partiel (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.9),
legend.title = element_blank())
25-49
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTE15_TPE"),
== "FR-D976",
REF_AREA %in% c("25-49")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Temps partiel (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.9),
legend.title = element_blank())
CDD, CDI
CDD
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTE15_CDD"),
== "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100)) +
ggplot xlab("") + ylab("Taux d'emploi en CDD (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, .2),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
CDI
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTE15_CDI"),
== "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100)) +
ggplot xlab("") + ylab("Taux d'emploi en CDI (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, .2),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
Taux des personnes en situation de sous-emploi - CTTO15LT
Tous
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTO15LT"),
== "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100)) +
ggplot xlab("") + ylab("Taux des personnes en situation de sous-emploi (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
Temps partiel, souhaitant travailler plus d’heures, disponible pour le faire mais sans recherche d’un autre emploi
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTO15LI"),
== "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100)) +
ggplot xlab("") + ylab("Temps partiel, souhaitant... (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, .2),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
CTTO15NH
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTO15NH"),
== "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100)) +
ggplot xlab("") + ylab("Temps partiel, souhaitant... (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
Part des jeunes de 15 à 29 ans qui ne sont ni en emploi ni en formation - NEET_T_1529
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("NEET_T_1529"),
== "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100)) +
ggplot xlab("") + ylab("Part des jeunes de 15 à 29 ans NEET (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
Taux d’emploi, Taux d’emploi en ETP
Tous âges
Tous
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTE15", "CTTE15_TC", "CTTE15_ETP"),
%in% c("15-24"),
AGE == "FR-D976",
REF_AREA == "0") %>%
SEXE select_if(function(col) length(unique(col)) > 1) %>%
quarter_to_date() %>%
left_join(INDICATEUR, by = "INDICATEUR") %>%
arrange(date) %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Indicateur)) +
ggplot xlab("") + ylab("Taux d'emploi (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.92),
legend.title = element_blank())
Taux d’emploi
Tous âges
Tous
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15", "CTTE15"),
== "FR-D976",
REF_AREA %in% c("00-", "SO"),
AGE == "0") %>%
SEXE quarter_to_date() %>%
left_join(INDICATEUR, by = "INDICATEUR") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Indicateur)) +
ggplot xlab("") + ylab("Taux d'activité, Taux d'emploi (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.85, 0.92),
legend.title = element_blank())
2017
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15", "CTTE15"),
== "FR-D976",
REF_AREA %in% c("00-", "SO"),
AGE == "0") %>%
SEXE quarter_to_date() %>%
filter(date >= as.Date("2017-01-01")) %>%
left_join(INDICATEUR, by = "INDICATEUR") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Indicateur)) +
ggplot xlab("") + ylab("Taux d'activité, Taux d'emploi (%)") + theme_minimal() +
scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.85, 0.92),
legend.title = element_blank())
Taux activité
Tous âges
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15"),
== "FR-D976",
REF_AREA %in% c("00-", "SO")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Taux d'activité (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.9),
legend.title = element_blank())
15-24
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15"),
== "FR-D976",
REF_AREA %in% c("15-24")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Taux d'activité 15-24 (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.15),
legend.title = element_blank())
15-64
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15"),
== "FR-D976",
REF_AREA %in% c("15-64")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Taux d'activité 15-64 (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.15),
legend.title = element_blank())
25-49
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15"),
== "FR-D976",
REF_AREA %in% c("25-49")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Taux d'activité 25-49 (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.15),
legend.title = element_blank())
55-64
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15"),
== "FR-D976",
REF_AREA %in% c("55-64")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Taux d'activité 55-64 (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.15),
legend.title = element_blank())
50-64
Code
`EMPLOI-BIT-TRIM` %>%
filter(INDICATEUR %in% c("CTTA15"),
== "FR-D976",
REF_AREA %in% c("50-64")) %>%
AGE quarter_to_date() %>%
left_join(SEXE, by = "SEXE") %>%
+ geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) +
ggplot xlab("") + ylab("Taux d'activité 50-64 (%)") + theme_minimal() +
scale_color_manual(values = c("black", "red", "blue")) +
scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.15),
legend.title = element_blank())