| title | Global history of coups and coup attempts | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| author | Katie Thomas | ||||||||||||
| date | 10 February 2021 | ||||||||||||
| output |
|
||||||||||||
| editor_options |
|
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", " ")))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") | 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.
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.
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_yearThis 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_year2This seems more intuitive to a reader.
We can also use this dataset to look at the geographic distribution of coups by country.
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_coupsnumWe 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_realizedThis 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") | 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 |
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()



