# install.packages("igraph")

library(igraph)

edgelist <- structure(list(origin = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
  9L, 10L, 10L, 11L, 12L, 12L, 15L, 16L, 17L, 18L, 19L, 19L, 20L, 
  20L, 20L, 22L, 22L, 25L, 25L, 26L, 27L, 27L, 30L, 30L, 29L, 37L, 
  37L, 39L), destination = c(10L, 10L, 10L, 10L, 22L, 12L, 12L, 
    12L, 13L, 19L, 14L, 15L, 20L, 16L, 17L, 20L, 22L, 36L, 30L, 23L, 
    31L, 25L, 26L, 27L, 21L, 28L, 24L, 32L, 33L, 34L, 35L, 29L, 37L, 
    36L, 38L, 39L, 40L)), class = "data.frame", row.names = c(NA, 
      -37L))

vertex.colors <- structure(list(name = 1:40, color = c("blue", "purple", "purple", 
  "purple", "blue", "purple", "blue", "blue", "blue", "red", "blue", 
  "red", "green", "orange", "purple", "purple", "purple", "blue", 
  "blue", "purple", "orange", "purple", "green", "orange", "purple", 
  "purple", "purple", "purple", "blue", "blue", "green", "orange", 
  "orange", "orange", "orange", "orange", "blue", "green", "blue", 
  "green")), class = "data.frame", row.names = c(NA, -40L))

illustrative.graph <- igraph::graph_from_data_frame(edgelist, vertices = vertex.colors)

V(illustrative.graph)$color <- V(illustrative.graph)$color
V(illustrative.graph)$label <- NA

png("CashFusion-Descendant-Analysis/graph-illustration/CashFusion-Descendant-Visualization.png",
  width = 480 * 2, height = 480 * 2, type ="cairo")

plot(illustrative.graph, 
  layout = layout_with_kk, 
  edge.arrow.size = 1, vertex.size = 7, vertex.frame.color = "transparent",
  edge.arrow.width = 0.75, edge.color = "black")

legend("topleft", 
  legend = c("CashFusion", 
    "Spent CashFusion Descendant", "Spent Non-CashFusion Descendant", 
    "Unspent CashFusion Descendant", "Unspent Non-CashFusion Descendant"),
  fill = c("red", "purple", "blue", "orange", "green"),
  cex = 1.8, bty = "n")

dev.off()