Figure 1: Democratic Trajectories after Civil Conflict, 1990-2010

# Libraries
library(tidyverse)
library(forcats)

# Loda data 
load("./data/diss_df.rda")
uds <- read_csv("./data/uds_summary.csv") %>% 
  rename(GWNo = cowcode)

# helper function
source("./functions/laggedVar.R")

# Data preparation
diss_df <- left_join(diss_df, uds, 
                       by = c("GWNo", "year"))
diss_df <- laggedVar(diss_df, uds, lVar="mean", tID ="year", gID="GWNo", lagBy = -2)
diss_df$usd_chng <- diss_df$mean_t2 - diss_df$mean
diss_df$usd_mean <- diss_df$mean


democ_slopegraph <- diss_df %>% 
  ungroup() %>% 
  mutate(Location = as.character(Location), 
         Location = ifelse(grepl("Cote", Location), "Ivory Coast", Location), 
         Location = ifelse(grepl("Zaire", Location), "DRC", Location)) %>% 
  group_by(Location, pc_period) %>% 
  mutate(Location_year = paste0(Location, "-", first(year))) %>% 
  group_by(Location_year) %>% 
  summarise(democ_atzero = first(mean),
            democ_plusthree = last(mean), 
            cabinetINC= ifelse(1 %in% cabinetINC, 1, 0), 
            high_aid = ifelse(max(aiddata_AidGDP) > 20, 1, 0)) %>% 
  ungroup() %>% 
  mutate(polity_increase_five = ifelse(democ_atzero - democ_plusthree > 0, 
                                       "Decrease", "Increase"), 
         polity_increase_five = ifelse(abs(democ_atzero - democ_plusthree) < 0.1, "No Change", 
                                       polity_increase_five)) %>% 
  #  filter(!grepl("Bosnia|Lebanon", Location_year)) %>% 
  filter(!is.na(high_aid)) 


# constant for arrow distance to point
ardist <- 0.04

uds_change_plot <- ggplot(democ_slopegraph, 
                          # x axis is the pc period
                          aes(x = fct_reorder(Location_year, democ_atzero))) + 

  # add points for dem score at the end of pc period
  geom_point(aes(y = democ_plusthree,
                 color = polity_increase_five),
             size = 3) +
  
  # add points for dem score at zero
  geom_point(aes(y = democ_atzero), size = 2.5) + 
  
  # add arrows; we need to munge data a bit so arrows don't start / end directly on point
  geom_segment(data = democ_slopegraph %>% filter(polity_increase_five != "No Change") %>% 
                 mutate(democ_plusthree = ifelse(democ_plusthree - democ_atzero > 0, 
                                                 democ_plusthree - ardist, 
                                                 democ_plusthree + ardist), 
                        democ_atzero = ifelse(democ_plusthree - democ_atzero > 0, 
                                              democ_atzero + ardist, 
                                              democ_atzero - ardist)), 
               aes(x = fct_reorder(Location_year, democ_atzero), 
                   xend = fct_reorder(Location_year, democ_atzero), 
                   y = democ_atzero, 
                   yend = democ_plusthree, 
                   group = fct_reorder(Location_year, democ_atzero), 
                   color = polity_increase_five), 
               arrow = arrow(type = "closed", length = unit(0.1, "inches")), 
               inherit.aes = F) +
  scale_color_manual(name = "", 
                     values = c("#e41a1c","#b2df8a", "grey70", "black")) +
  coord_flip() +
  labs(x = "", y = "Unified Democracy Score") +
  theme_minimal() +
  theme(legend.position = "bottom")

print(uds_change_plot)

LS0tDQp0aXRsZTogIkNoYXB0ZXIgMTogSW50cm9kdWN0aW9uIg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IA0KICAgICAgY29sbGFwc2VkOiBmYWxzZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6ICJoaWRlIg0KLS0tDQoNCiMgRmlndXJlIDE6IERlbW9jcmF0aWMgVHJhamVjdG9yaWVzIGFmdGVyIENpdmlsIENvbmZsaWN0LCAxOTkwLTIwMTANCg0KYGBge3IsIGZpZy5hbGlnbiA9ICJjZW50ZXIiLCBtZXNzYWdlPUYsIHdhcm5pbmc9RiwgZmlnLmhlaWdodD0xMCwgY2FjaGUgID1ULCBjb21tZW50cyA9IEYsIGRldiA9ICJDYWlyb1BORyJ9DQoNCiMgTGlicmFyaWVzDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZm9yY2F0cykNCg0KIyBMb2RhIGRhdGEgDQpsb2FkKCIuL2RhdGEvZGlzc19kZi5yZGEiKQ0KdWRzIDwtIHJlYWRfY3N2KCIuL2RhdGEvdWRzX3N1bW1hcnkuY3N2IikgJT4lIA0KICByZW5hbWUoR1dObyA9IGNvd2NvZGUpDQoNCiMgaGVscGVyIGZ1bmN0aW9uDQpzb3VyY2UoIi4vZnVuY3Rpb25zL2xhZ2dlZFZhci5SIikNCg0KIyBEYXRhIHByZXBhcmF0aW9uDQpkaXNzX2RmIDwtIGxlZnRfam9pbihkaXNzX2RmLCB1ZHMsIA0KICAgICAgICAgICAgICAgICAgICAgICBieSA9IGMoIkdXTm8iLCAieWVhciIpKQ0KZGlzc19kZiA8LSBsYWdnZWRWYXIoZGlzc19kZiwgdWRzLCBsVmFyPSJtZWFuIiwgdElEID0ieWVhciIsIGdJRD0iR1dObyIsIGxhZ0J5ID0gLTIpDQpkaXNzX2RmJHVzZF9jaG5nIDwtIGRpc3NfZGYkbWVhbl90MiAtIGRpc3NfZGYkbWVhbg0KZGlzc19kZiR1c2RfbWVhbiA8LSBkaXNzX2RmJG1lYW4NCg0KDQpkZW1vY19zbG9wZWdyYXBoIDwtIGRpc3NfZGYgJT4lIA0KICB1bmdyb3VwKCkgJT4lIA0KICBtdXRhdGUoTG9jYXRpb24gPSBhcy5jaGFyYWN0ZXIoTG9jYXRpb24pLCANCiAgICAgICAgIExvY2F0aW9uID0gaWZlbHNlKGdyZXBsKCJDb3RlIiwgTG9jYXRpb24pLCAiSXZvcnkgQ29hc3QiLCBMb2NhdGlvbiksIA0KICAgICAgICAgTG9jYXRpb24gPSBpZmVsc2UoZ3JlcGwoIlphaXJlIiwgTG9jYXRpb24pLCAiRFJDIiwgTG9jYXRpb24pKSAlPiUgDQogIGdyb3VwX2J5KExvY2F0aW9uLCBwY19wZXJpb2QpICU+JSANCiAgbXV0YXRlKExvY2F0aW9uX3llYXIgPSBwYXN0ZTAoTG9jYXRpb24sICItIiwgZmlyc3QoeWVhcikpKSAlPiUgDQogIGdyb3VwX2J5KExvY2F0aW9uX3llYXIpICU+JSANCiAgc3VtbWFyaXNlKGRlbW9jX2F0emVybyA9IGZpcnN0KG1lYW4pLA0KICAgICAgICAgICAgZGVtb2NfcGx1c3RocmVlID0gbGFzdChtZWFuKSwgDQogICAgICAgICAgICBjYWJpbmV0SU5DPSBpZmVsc2UoMSAlaW4lIGNhYmluZXRJTkMsIDEsIDApLCANCiAgICAgICAgICAgIGhpZ2hfYWlkID0gaWZlbHNlKG1heChhaWRkYXRhX0FpZEdEUCkgPiAyMCwgMSwgMCkpICU+JSANCiAgdW5ncm91cCgpICU+JSANCiAgbXV0YXRlKHBvbGl0eV9pbmNyZWFzZV9maXZlID0gaWZlbHNlKGRlbW9jX2F0emVybyAtIGRlbW9jX3BsdXN0aHJlZSA+IDAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlY3JlYXNlIiwgIkluY3JlYXNlIiksIA0KICAgICAgICAgcG9saXR5X2luY3JlYXNlX2ZpdmUgPSBpZmVsc2UoYWJzKGRlbW9jX2F0emVybyAtIGRlbW9jX3BsdXN0aHJlZSkgPCAwLjEsICJObyBDaGFuZ2UiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGl0eV9pbmNyZWFzZV9maXZlKSkgJT4lIA0KICAjICBmaWx0ZXIoIWdyZXBsKCJCb3NuaWF8TGViYW5vbiIsIExvY2F0aW9uX3llYXIpKSAlPiUgDQogIGZpbHRlcighaXMubmEoaGlnaF9haWQpKSANCg0KDQojIGNvbnN0YW50IGZvciBhcnJvdyBkaXN0YW5jZSB0byBwb2ludA0KYXJkaXN0IDwtIDAuMDQNCg0KdWRzX2NoYW5nZV9wbG90IDwtIGdncGxvdChkZW1vY19zbG9wZWdyYXBoLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIyB4IGF4aXMgaXMgdGhlIHBjIHBlcmlvZA0KICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGZjdF9yZW9yZGVyKExvY2F0aW9uX3llYXIsIGRlbW9jX2F0emVybykpKSArIA0KDQogICMgYWRkIHBvaW50cyBmb3IgZGVtIHNjb3JlIGF0IHRoZSBlbmQgb2YgcGMgcGVyaW9kDQogIGdlb21fcG9pbnQoYWVzKHkgPSBkZW1vY19wbHVzdGhyZWUsDQogICAgICAgICAgICAgICAgIGNvbG9yID0gcG9saXR5X2luY3JlYXNlX2ZpdmUpLA0KICAgICAgICAgICAgIHNpemUgPSAzKSArDQogIA0KICAjIGFkZCBwb2ludHMgZm9yIGRlbSBzY29yZSBhdCB6ZXJvDQogIGdlb21fcG9pbnQoYWVzKHkgPSBkZW1vY19hdHplcm8pLCBzaXplID0gMi41KSArIA0KICANCiAgIyBhZGQgYXJyb3dzOyB3ZSBuZWVkIHRvIG11bmdlIGRhdGEgYSBiaXQgc28gYXJyb3dzIGRvbid0IHN0YXJ0IC8gZW5kIGRpcmVjdGx5IG9uIHBvaW50DQogIGdlb21fc2VnbWVudChkYXRhID0gZGVtb2Nfc2xvcGVncmFwaCAlPiUgZmlsdGVyKHBvbGl0eV9pbmNyZWFzZV9maXZlICE9ICJObyBDaGFuZ2UiKSAlPiUgDQogICAgICAgICAgICAgICAgIG11dGF0ZShkZW1vY19wbHVzdGhyZWUgPSBpZmVsc2UoZGVtb2NfcGx1c3RocmVlIC0gZGVtb2NfYXR6ZXJvID4gMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVtb2NfcGx1c3RocmVlIC0gYXJkaXN0LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW1vY19wbHVzdGhyZWUgKyBhcmRpc3QpLCANCiAgICAgICAgICAgICAgICAgICAgICAgIGRlbW9jX2F0emVybyA9IGlmZWxzZShkZW1vY19wbHVzdGhyZWUgLSBkZW1vY19hdHplcm8gPiAwLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW1vY19hdHplcm8gKyBhcmRpc3QsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbW9jX2F0emVybyAtIGFyZGlzdCkpLCANCiAgICAgICAgICAgICAgIGFlcyh4ID0gZmN0X3Jlb3JkZXIoTG9jYXRpb25feWVhciwgZGVtb2NfYXR6ZXJvKSwgDQogICAgICAgICAgICAgICAgICAgeGVuZCA9IGZjdF9yZW9yZGVyKExvY2F0aW9uX3llYXIsIGRlbW9jX2F0emVybyksIA0KICAgICAgICAgICAgICAgICAgIHkgPSBkZW1vY19hdHplcm8sIA0KICAgICAgICAgICAgICAgICAgIHllbmQgPSBkZW1vY19wbHVzdGhyZWUsIA0KICAgICAgICAgICAgICAgICAgIGdyb3VwID0gZmN0X3Jlb3JkZXIoTG9jYXRpb25feWVhciwgZGVtb2NfYXR6ZXJvKSwgDQogICAgICAgICAgICAgICAgICAgY29sb3IgPSBwb2xpdHlfaW5jcmVhc2VfZml2ZSksIA0KICAgICAgICAgICAgICAgYXJyb3cgPSBhcnJvdyh0eXBlID0gImNsb3NlZCIsIGxlbmd0aCA9IHVuaXQoMC4xLCAiaW5jaGVzIikpLCANCiAgICAgICAgICAgICAgIGluaGVyaXQuYWVzID0gRikgKw0KICBzY2FsZV9jb2xvcl9tYW51YWwobmFtZSA9ICIiLCANCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoIiNlNDFhMWMiLCIjYjJkZjhhIiwgImdyZXk3MCIsICJibGFjayIpKSArDQogIGNvb3JkX2ZsaXAoKSArDQogIGxhYnMoeCA9ICIiLCB5ID0gIlVuaWZpZWQgRGVtb2NyYWN5IFNjb3JlIikgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiYm90dG9tIikNCg0KcHJpbnQodWRzX2NoYW5nZV9wbG90KQ0KYGBgDQoNCjwhLS0gTm90ZTogVGhpcyBwbG90IGRlcGljdHMgdHJhamVjdG9yaWVzIG9mIHVuaWZpZWQgZGVtb2NyYWN5IHNjb3JlcyAoUGVtc3RlaW4sIE1lc2VydmUsIGFuZCBNZWx0b24gMjAxMCkgZm9yIHRoZSBjb3VudHJpZXMgaW4gbXkgc2FtcGxlIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBmaWZ0aCBwb3N0LWNvbmZsaWN0IHllYXIgb3IgdGhlIHJlc3BlY3RpdmUgbGFzdCB5ZWFyIG9mIHRoZSBjb3VudHJ54oCZcyBwZWFjZSBwZXJpb2QgKHNlZSB0aGUgbGlzdCBvZiBjb3VudHJpZXMgaW4gVGFibGUgMi4xIG9uIHBhZ2UgMTcpLiBCbGFjayBkb3RzIGluZGljYXRlIHRoZSBVRFMgc2NvcmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHBlYWNlIHBlcmlvZCBjb2xvcmVkIGRvdHMgYW5kIGxpbmVzIHJlcHJlc2VudCBhIGNoYW5nZSBpbiBVRFMgc2NvcmVzLiBSZWQgbGluZXMgaW5kaWNhdGUgZGVjcmVhc2luZyBzY29yZXMsIGdyZWVuIGxpbmVzIGluY3JlYXNpbmcgc2NvcmVzIHRvd2FyZHMgZ3JlYXRlciAiZGVtb2NyYXRpY25lc3MsIiIgYW5kIGdyZXkgZG90cyBpbmRpY2F0ZSBubyBjaGFuZ2UgKG9yIGNoYW5nZSBzbWFsbGVyIHRoYW4gKy8tIDAuMSBvbiB0aGUgVURTIHNjYWxlKS4gVGhlIHllYXIgYWZ0ZXIgdGhlIGNvdW50cnkgbmFtZSBpbmRpY2F0ZXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgY291bnRyeeKAmXMgcmVzcGVjdGl2ZSBwZWFjZSBwZXJpb2QuIC0tPg==