Skip to content

Latest commit

 

History

History
2304 lines (2194 loc) · 71.4 KB

File metadata and controls

2304 lines (2194 loc) · 71.4 KB
title Global history of coups and coup attempts
author Katie Thomas
date 10 February 2021
output
html_document
keep_md theme toc toc_float code_fold
true
flatly
true
true
hide
editor_options
chunk_output_type
inline

Dataset

Data come from the Coup D'état Project of the Cline Center for Advanced Social Research at the University of Illinois Urbana-Champaign.

Peyton, Buddy; Bajjalieh, Joseph; Shalmon, Dan; Martin, Michael; Bonaguro, Jonathan (2021): Cline Center Coup D’état Project Dataset. University of Illinois at Urbana-Champaign. https://doi.org/10.13012/B2IDB-9651987_V2

This dataset has information from 1945 to 2019 on coups (successful, attempted, or conspired) across the world, as well as data on arrests and the fate of deposed leaders. This project categorizes the 6 Jan 2020 assault on the US Capitol as an "attempted coup" (though it is not in this dataset yet, they have issued a formal statement). According to their website,

"the objective of the The Coup D'état Project (CDP) is to compile, for 165 countries in the post WWII era, a more comprehensive listing, documentation, and categorization of coups that can be used by researchers. Version 2.0 of the CDP dataset encompasses 943 coup events, including 426 realized coups, 336 attempted coups, and 181 coup conspiracies that occurred between 1945 and 2019."

In terms of categorization of events:

"The CDP defines coups d'état as organized efforts to effect sudden and irregular (e.g., illegal or extra-legal) removal of the incumbent executive authority of a national government, or to displace the authority of the highest levels of one or more branches of government."

# load raw data
coups <- data.frame(read.csv("dataset_DOI_10.13012:B2IDB-9651987_V2/Coup_Data_v2.0.0.csv", header=TRUE, na.strings=c("", "NA", " ")))

Data summary

First let's see a summary of total number of coups per country (realized, attempted, or conspired) in this dataset for the whole time frame (1945 - 2019) as a scrolling table.

#compile number of coups by country and type
counts <- ddply(coups, .(coups$country, coups$event_type), nrow) 

#create table column names
names(counts) <- c("Country","Event type","Total 1945-2019") 

#generate scrolling table in RMarkdown
kable(counts[ , c("Country","Event type","Total 1945-2019")], caption = "Global coups (including attempted and conspired coups) from 1945-2019.") %>% 
                      kable_styling(full_width = F) %>% 
                      collapse_rows(columns = 1, valign = "top") %>%
                      scroll_box(height = "500px") 
Global coups (including attempted and conspired coups) from 1945-2019.
Country Event type Total 1945-2019
Afghanistan attempted 2
Afghanistan conspiracy 1
Afghanistan coup 8
Albania attempted 1
Albania conspiracy 1
Algeria attempted 2
Algeria coup 7
Angola attempted 1
Angola coup 1
Argentina attempted 11
Argentina conspiracy 4
Argentina coup 9
Armenia attempted 1
Azerbaijan attempted 2
Azerbaijan conspiracy 1
Azerbaijan coup 2
Bahrain conspiracy 1
Bangladesh attempted 3
Bangladesh conspiracy 1
Bangladesh coup 5
Benin attempted 3
Benin conspiracy 1
Benin coup 6
Bolivia attempted 17
Bolivia conspiracy 4
Bolivia coup 16
Brazil attempted 2
Brazil coup 5
Bulgaria coup 1
Burkina Faso conspiracy 2
Burkina Faso coup 8
Burundi attempted 6
Burundi conspiracy 1
Burundi coup 8
Cambodia attempted 3
Cambodia coup 4
Cameroon attempted 1
Central African Republic attempted 4
Central African Republic coup 5
Chad attempted 7
Chad conspiracy 3
Chad coup 4
Chile attempted 1
Chile conspiracy 3
Chile coup 1
China attempted 1
China coup 3
Colombia attempted 2
Colombia conspiracy 1
Colombia coup 2
Comoros attempted 3
Comoros coup 6
Congo attempted 6
Congo conspiracy 2
Congo coup 7
Costa Rica attempted 3
Costa Rica coup 2
Cote d'Ivoire attempted 3
Cote d'Ivoire conspiracy 1
Cote d'Ivoire coup 2
Cuba attempted 4
Cuba conspiracy 2
Cuba coup 2
Cyprus coup 1
Czechoslovakia conspiracy 4
Czechoslovakia coup 4
Democratic Republic of the Congo attempted 6
Democratic Republic of the Congo coup 3
Djibouti conspiracy 1
Dominica attempted 1
Dominican Republic attempted 4
Dominican Republic coup 5
East Timor attempted 1
Ecuador attempted 7
Ecuador coup 8
Ecudaor attempted 1
Egypt attempted 1
Egypt conspiracy 6
Egypt coup 6
El Salvador attempted 1
El Salvador conspiracy 1
El Salvador coup 6
Equatorial Guinea attempted 2
Equatorial Guinea conspiracy 1
Equatorial Guinea coup 1
Eritrea attempted 1
Ethiopia attempted 2
Ethiopia conspiracy 1
Ethiopia coup 7
Fiji attempted 1
Fiji coup 4
Gabon attempted 1
Gabon coup 2
Gambia attempted 3
Gambia conspiracy 1
Gambia coup 1
Georgia conspiracy 2
Georgia coup 2
German Democratic Republic attempted 1
German Democratic Republic coup 3
Ghana attempted 5
Ghana conspiracy 3
Ghana coup 5
Greece attempted 3
Greece conspiracy 1
Greece coup 2
Grenada coup 4
Guatemala attempted 9
Guatemala conspiracy 2
Guatemala coup 6
Guinea attempted 5
Guinea conspiracy 2
Guinea coup 2
Guinea-Bissau attempted 6
Guinea-Bissau conspiracy 3
Guinea-Bissau coup 4
Guyana conspiracy 1
Haiti attempted 8
Haiti conspiracy 1
Haiti coup 15
Honduras attempted 3
Honduras coup 7
Hungary conspiracy 2
Hungary coup 4
Indonesia attempted 4
Indonesia conspiracy 1
Indonesia coup 2
Iran attempted 2
Iran conspiracy 3
Iran coup 4
Iraq attempted 12
Iraq conspiracy 1
Iraq coup 4
Italy conspiracy 2
Ivory Coast conspiracy 1
Jamaica conspiracy 1
Jordan attempted 2
Jordan conspiracy 2
Kenya attempted 1
Kyrgyz Republic coup 1
Kyrgyzstan coup 1
Laos attempted 4
Laos conspiracy 1
Laos coup 7
Lebanon attempted 3
Lesotho attempted 4
Lesotho conspiracy 1
Lesotho coup 5
Liberia attempted 5
Liberia conspiracy 4
Liberia coup 4
Libya attempted 5
Libya conspiracy 1
Libya coup 2
Luxembourg conspiracy 1
Madagascar attempted 5
Madagascar conspiracy 1
Madagascar coup 4
Malawi conspiracy 1
Malaysia conspiracy 2
Malaysia coup 1
Maldives attempted 2
Maldives conspiracy 1
Maldives coup 1
Mali attempted 3
Mali conspiracy 4
Mali coup 3
Mauritania attempted 3
Mauritania conspiracy 3
Mauritania coup 6
Mexico conspiracy 1
Mongolia coup 2
Montenegro conspiracy 1
Morocco attempted 2
Morocco conspiracy 1
Mozambique attempted 1
Mozambique conspiracy 1
Myanmar attempted 1
Myanmar conspiracy 1
Myanmar coup 5
Nepal coup 3
Nicaragua attempted 3
Nicaragua conspiracy 1
Nicaragua coup 2
Niger attempted 2
Niger conspiracy 3
Niger coup 4
Nigeria attempted 2
Nigeria conspiracy 6
Nigeria coup 7
Oman conspiracy 1
Oman coup 1
Pakistan attempted 1
Pakistan conspiracy 1
Pakistan coup 6
Panama attempted 3
Panama conspiracy 5
Panama coup 8
Papua New Guinea attempted 2
Paraguay attempted 7
Paraguay conspiracy 1
Paraguay coup 6
Peru attempted 5
Peru coup 6
Philippines attempted 8
Philippines conspiracy 3
Philippines coup 2
Poland coup 2
Portugal attempted 4
Portugal conspiracy 2
Portugal coup 3
Qatar attempted 1
Qatar coup 2
Republic of Korea attempted 1
Republic of Korea conspiracy 2
Republic of Korea coup 5
Republic of Vietnam attempted 2
Republic of Vietnam coup 7
Rumania coup 3
Russia attempted 1
Russia coup 1
Rwanda conspiracy 1
Rwanda coup 2
Sao Tome and Principe coup 2
Senegal attempted 1
Serbia coup 1
Seychelles attempted 1
Seychelles conspiracy 1
Seychelles coup 1
Sierra Leone attempted 5
Sierra Leone conspiracy 2
Sierra Leone coup 7
Somalia attempted 3
Somalia conspiracy 2
Somalia coup 2
South Sudan attempted 1
Spain attempted 1
Spain conspiracy 3
Sri Lanka conspiracy 2
Sudan attempted 9
Sudan conspiracy 11
Sudan coup 8
Surinam attempted 4
Surinam conspiracy 3
Surinam coup 3
Swaziland conspiracy 2
Swaziland coup 1
Syria attempted 3
Syria conspiracy 5
Syria coup 13
Tajikistan attempted 2
Tajikistan coup 3
Tanzania attempted 1
Tanzania conspiracy 2
Thailand attempted 4
Thailand conspiracy 4
Thailand coup 11
Togo attempted 7
Togo conspiracy 4
Togo coup 4
Trinidad and Tobago attempted 2
Tunisia conspiracy 2
Tunisia coup 3
Turkey attempted 3
Turkey conspiracy 1
Turkey coup 4
Turkmenistan conspiracy 1
Uganda attempted 3
Uganda conspiracy 3
Uganda coup 6
Ukraine coup 1
United Arab Emirates attempted 1
United States of America conspiracy 1
Uruguay coup 3
USSR coup 2
Venezuela attempted 14
Venezuela conspiracy 3
Venezuela coup 4
Yemen attempted 1
Yemen coup 1
Yemen Arab Republic attempted 3
Yemen Arab Republic coup 3
Yemen PDR attempted 2
Yemen PDR coup 4
Zambia attempted 2
Zambia conspiracy 3
Zimbabwe attempted 1
Zimbabwe conspiracy 3
Zimbabwe coup 1

The Cline Center data only goes up through 2019, so we should be aware of coups that have occurred since then. However, I do not want to attempt to categorize potential coups according to their guidelines, and would prefer to mention notable events in text if needed rather than alter the dataset.

Some notable events to consider in 2020/2021:

  • 9 Feb 2020: potential coup attempt (may not fit criteria) in El Salvador when President Nayib Bukele used armed soldiers to coerce legislative action.

  • 3 May 2020: attempted (failed) coup in Venezuela to oust Nicolás Maduro

  • 18 Aug 2020: coup in Mali, when President Keita and Prime Minister Cisse resigned while under military arrest and a military junta took power.

  • 6 Jan 2021: attempted (failed) coup at the Capitol in the US.

  • 1 Feb 2021: successful military coup in Myanmar.

Summary statistics

The Cline Center collects coup data from 165 countries in the post WWII era (some of these countries no longer exist). To understand the prevalence of coups, we can calculate some simple summary statistics.

#what percentage countries have coup activity recorded? ----

#total number countries
ncountry <- length(levels(as.factor(coups$country)))

#percentage of countries with activity
p.event <- (ncountry/165)*100

#number countries with attempted coups
nattempt <- length(levels(as.factor(filter(coups, event_type=="attempted")$country)))

#percent countries with attempted coups
p.attempt <- (nattempt/165)*100

#number countries with realized coups
nreal <- length(levels(as.factor(filter(coups, event_type=="coup")$country)))

#percent countries with attempted coups
p.real <- (nreal/165)*100
  • 82% or 136/165 countries recorded post-WWII have had some sort of coup activity.

  • 61% or 100/165 countries recorded post-WWII have had an unsuccessful coup attempt.

  • 62% or 103/165 countries recorded post-WWII have had a realized coup.


Data visualization

Global coups and coup attempts over time

Here I plot the number of coups, coup attempts, and coup conspiracies per year since WWII.

#make dataset with coups per year over time
coups.year <- ddply(coups, .(coups$year, coups$event_type), nrow) 

#create column names
colnames(coups.year) <- c("year", "event_type", "total")

#make plot
plot_coups_year <- ggplot(coups.year, aes(x = year, y =  total, color = event_type)) + 
  geom_step(size = 1, alpha = 0.8) + 
  scale_color_manual(values = c("#173F5F","#3CAEA3","#F48005"),
                     breaks = c("conspiracy", "attempted", "coup"),
                     labels = c("Coup conspiracy", "Coup attempt", "Realized coup"),
                     name = " ") +
  labs(x = "Year", 
         y = "Number of coup events",
         title = "Global coups",
         subtitle = "\nFrequency of global coup events post WWII (1945-2019)",
         caption = "\n\nSource: Cline Center for Advanced Social Research") +
  theme_economist_white() +
  theme(plot.caption = element_text(hjust = 0),
        axis.title.y = element_text(vjust = 5),
        axis.title.x = element_text(vjust = -5),
        plot.background = element_rect(fill = "white"),
        legend.background = element_rect(fill = "white"))
  
#show plot
plot_coups_year

This is useful, but the overlapping traces make it a bit difficult for the viewer to immediately pick out trends.

Alternatively, we could visualize this as a stacked bar chart by year and coup-event type.

#make plot
plot_coups_year2 <- ggplot(coups.year, aes(x = as.numeric(year), y =  total, fill = factor(event_type, levels=c("conspiracy", "attempted", "coup")))) + 
  geom_bar(position="stack", stat="identity") + 
  scale_fill_manual(values = c("#173F5F","#3CAEA3","#F48005"),
                     breaks = c("conspiracy", "attempted", "coup"),
                     labels = c("Coup conspiracy", "Coup attempt", "Realized coup"),
                     name = " ") +
  labs(x = "Year", 
       y = "Number of coup events",
       title = "Global coups",
       subtitle = "\nFrequency of global coup events post WWII (1945-2019)",
       caption = "\n\nSource: Cline Center for Advanced Social Research") +
  theme_economist_white() +
  theme(plot.caption = element_text(hjust = 0),
        axis.title.y = element_text(vjust = 5),
        axis.title.x = element_text(vjust = -5),
        plot.background = element_rect(fill = "white"),
        legend.background = element_rect(fill = "white"),
        axis.ticks.length = unit(0.15, "cm")) +
  scale_x_continuous(n.breaks = 12) +
  scale_y_continuous(expand = c(0, 0), limits = c(0, 37))
  
#show plot
plot_coups_year2

This seems more intuitive to a reader.


Geographic distribution of coups

We can also use this dataset to look at the geographic distribution of coups by country.

Map shaded by total coup activity

Here I make a map of the world (cropping Antarctica for simplicity) with countries shaded by total number of conspired, attempted, or realized coups.

First, I merge the coup dataset with a global map dataframe available through ggplot2. In this process, I have to identify a few outdated country names and update them to current countries so that they can be plotted simply on the map (e.g. "German Democratic Republic" updated to "Germany" for plotting).

#make simple dataframe of number of any coup-related event per country
coups.place <- ddply(coups, .(coups$country), nrow) 

#create column names
colnames(coups.place) <- c("country", "total")

#get world map
map.world <- map_data("world")

#check for country names in dataset that are not matching to world map countries
length(which(!coups.place$country %in% map.world$region))

#list countries that need manually checked in global map
missing <- setdiff(coups.place$country, map.world$region)
missing <- as.data.frame(missing, optional = TRUE, stringsAsFactors = FALSE)
colnames(missing) <- "country" #rename column with dataset country name
missing$map_name <- NA #create empty column for map matches

#manually add in missing names (update to modern-day countries)
missing$map_name[missing$country=="Congo"]<-"Democratic Republic of the Congo"   
missing$map_name[missing$country=="Cote d'Ivoire"]<-"Ivory Coast"
missing$map_name[missing$country=="Czechoslovakia"]<-"Czech Republic"
missing$map_name[missing$country=="East Timor"]<-"Timor-Leste"
missing$map_name[missing$country=="Ecudaor"]<-"Ecuador" #spelling error in dataset
missing$map_name[missing$country=="German Democratic Republic"]<-"Germany"
missing$map_name[missing$country== "Kyrgyz Republic"]<-"Kyrgyzstan"
missing$map_name[missing$country== "Republic of Korea"]<-"South Korea"
missing$map_name[missing$country== "Republic of Vietnam"]<-"Vietnam"
missing$map_name[missing$country== "Rumania"]<-"Romania"
missing$map_name[missing$country== "Surinam"]<-"Suriname"
missing$map_name[missing$country== "Trinidad and Tobago"]<-"Trinidad"
missing$map_name[missing$country== "United States of America"]<-"USA"
missing$map_name[missing$country== "USSR"]<-"Russia"
missing$map_name[missing$country== "Yemen Arab Republic"]<-"Yemen"
missing$map_name[missing$country== "Yemen PDR"]<-"Yemen"

#add column to original dataset with map country name 
coups.map <- left_join(coups.place, missing, by = "country")

#bring over country names that matched map originally into new column
coups.map <- coups.map %>%
  mutate(names = ifelse(is.na(map_name), country, map_name))

#join coup data with map dataset
plot.data <- left_join(map.world, coups.map,by = c("region"="names")) %>%
  mutate(num_coups = ifelse(is.na(total), 0, total))

Then I can plot the map with countries shaded by the number of coup events that have occurred there since WWII. For this map, I include attempted coups, realized coups, and recognized coup conspiracies (as in stacked bar plot above).

#plot map with color scale based on number of coups recorded
map_coupsnum <- ggplot() +
  geom_polygon(data = plot.data, 
               aes(x = long, y = lat, 
                   group = group, 
                   fill = total), 
               color = "white", 
               size = 0.1) +
  scale_fill_gradient(low = "#91b8bd", 
                       high = "#244747",
                       na.value = "#e6e9ed",
                       name = "Coup events",
                       breaks = c(1,13,25,37)) +
  labs(title = "Global coups, attempts and conspiracies, 1945-2019",
       subtitle = "\nHow common are coups in modern history?",
       caption = "Source: Cline Center for Advanced Social Research") +
  ylim(-60,100) + #cut off Antarctica
  theme_economist_white() + #template theme for The Economist
  theme(panel.grid.major=element_blank(),
        axis.text.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks=element_blank(),
        axis.title.x=element_blank(),
        axis.title.y=element_blank(),
        axis.line.x = element_blank(),
        plot.background = element_blank(),
        legend.background = element_blank())

map_coupsnum

Map shaded by realized coups

We can also make a map to show only realized coups (that resulted in a transfer of power).

#make dataframe of only realized coups
realized <- coups %>% filter(event_type == "coup")

#summarize realized coups by country
realized.place <- realized %>%
  group_by(country) %>%
  tally(name = "total")

#add column to original dataset with map country name 
coups.map2 <- left_join(realized.place, missing, by = "country")

#bring over country names that matched map originally into new column
coups.map2 <- coups.map2 %>%
  mutate(names = ifelse(is.na(map_name), country, map_name))

#join coup data with map dataset
plot.data2 <- left_join(map.world, coups.map2,by = c("region"="names")) %>%
  mutate(num_coups = ifelse(is.na(total), 0, total)) %>%
  mutate(binary = ifelse(is.na(total), "no", "yes"))

#plot map with color scale based on number of realized coups recorded
map_realized <- ggplot() +
  geom_polygon(data = plot.data2, 
               aes(x = long, y = lat, 
                   group = group, 
                   fill = total), 
               color = "white", 
               size = 0.15) +
 scale_fill_gradient2(low = "#FFE66B",
                      mid = "#F48005",
                      high = "#8E1A00",
                      na.value = "#e6e9ed",
                      guide = "colourbar",
                      midpoint = 9,
                      name = "Realized\ncoups",
                      breaks = c(1,5,10,16)) +
  labs(title = "Global realized coups, 1945-2019",
       subtitle = "\nHow common are realized coups in modern history?",
       caption = "Source: Cline Center for Advanced Social Research") +
  ylim(-60,90) + #cut off Antarctica
  theme_economist_white() + #template theme for The Economist
  theme(panel.grid.major=element_blank(),
        axis.text.x=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks=element_blank(),
        axis.title.x=element_blank(),
        axis.title.y=element_blank(),
        axis.line.x = element_blank(),
        plot.background = element_blank(),
        legend.background = element_blank())

map_realized

This may be more useful in thinking about where coups have a direct effect on who is in power.

Let's see a table of the number of realized coups by country (from this subset).

#order realized coup data by number of coups
counts2 <- realized.place %>%
  arrange(desc(total))

#create table column names
names(counts2) <- c("Country","Realized coups 1945-2019") 

#generate scrolling table in RMarkdown
kable(counts2[ , c("Country","Realized coups 1945-2019")], caption = "Global realized coups from 1945-2019.") %>% 
                      kable_styling(full_width = F) %>% 
                      collapse_rows(columns = 1, valign = "top") %>%
                      scroll_box(height = "500px") 
Global realized coups from 1945-2019.
Country Realized coups 1945-2019
Bolivia 16
Haiti 15
Syria 13
Thailand 11
Argentina 9
Afghanistan 8
Burkina Faso 8
Burundi 8
Ecuador 8
Panama 8
Sudan 8
Algeria 7
Congo 7
Ethiopia 7
Honduras 7
Laos 7
Nigeria 7
Republic of Vietnam 7
Sierra Leone 7
Benin 6
Comoros 6
Egypt 6
El Salvador 6
Guatemala 6
Mauritania 6
Pakistan 6
Paraguay 6
Peru 6
Uganda 6
Bangladesh 5
Brazil 5
Central African Republic 5
Dominican Republic 5
Ghana 5
Lesotho 5
Myanmar 5
Republic of Korea 5
Cambodia 4
Chad 4
Czechoslovakia 4
Fiji 4
Grenada 4
Guinea-Bissau 4
Hungary 4
Iran 4
Iraq 4
Liberia 4
Madagascar 4
Niger 4
Togo 4
Turkey 4
Venezuela 4
Yemen PDR 4
China 3
Democratic Republic of the Congo 3
German Democratic Republic 3
Mali 3
Nepal 3
Portugal 3
Rumania 3
Surinam 3
Tajikistan 3
Tunisia 3
Uruguay 3
Yemen Arab Republic 3
Azerbaijan 2
Colombia 2
Costa Rica 2
Cote d'Ivoire 2
Cuba 2
Gabon 2
Georgia 2
Greece 2
Guinea 2
Indonesia 2
Libya 2
Mongolia 2
Nicaragua 2
Philippines 2
Poland 2
Qatar 2
Rwanda 2
Sao Tome and Principe 2
Somalia 2
USSR 2
Angola 1
Bulgaria 1
Chile 1
Cyprus 1
Equatorial Guinea 1
Gambia 1
Kyrgyz Republic 1
Kyrgyzstan 1
Malaysia 1
Maldives 1
Oman 1
Russia 1
Serbia 1
Seychelles 1
Swaziland 1
Ukraine 1
Yemen 1
Zimbabwe 1

Construct chart

My final choice for the visualization is the map depicting realized coups around the world and the stacked bar plot showing coup events (planned, attempted, and realized) over time. Here, I plot the stacked bar chart with the map inset on the same panel.

#expand coordinate space of bar chart
plot_coups_year3 <- plot_coups_year2 + 
scale_x_continuous(
  breaks=c(1950,1960,1970,1980,1990,2000,2010,2020,2070), 
  labels=c("1950","1960","1970","1980","1990","2000","2010","2020","   "),
  expand=c(0,0.05),
  limits=c(1944, 2060))

#make map have transparent background and no titles
map_realized2 <- map_realized + 
    theme(panel.background = element_rect(fill = "transparent", colour = NA),
          plot.background = element_rect(fill = "transparent", colour = NA),
          legend.position = c(0.6, 0.1), 
          legend.direction = "horizontal",
          legend.key.size = unit(0.4, "cm"),
          legend.text=element_text(size=11)) +
  labs(title = "", subtitle = "", caption = "")

#plot with inset
plots2 <- plot_coups_year3 +
  labs(subtitle = "\nFrequency and geographic distribution of coup events, 1945-2019") +
  theme(legend.position = c(0.1,0.9), 
        legend.direction = "vertical",
        legend.key.size = unit(0.3, "cm"),
        panel.border = element_blank(), 
        axis.line = element_line(),
        legend.text = element_text(size=12)) +
  xlab("Year                                                                      ") +
  #block out grid lines under map
  geom_rect(xmin = 1985, xmax = 2060, ymin = 29, ymax = 31, fill = "white") +
  geom_rect(xmin = 2000, xmax = 2060, ymin = 19, ymax = 21, fill = "white") +
  geom_rect(xmin = 2020, xmax = 2060, ymin = 9, ymax = 11, fill = "white") +
  #add map plot 
  annotation_custom(ggplotGrob(map_realized2), xmin = 1980, xmax = 2065, ymin = 8, ymax = 40)

#show plot
plots2

#export this plot
pdf("../chart_KateThomas.pdf", width=10, height=8)
plots2
dev.off()