R/heatmap_network_plot.R

Defines functions heatmap_network_plot

Documented in heatmap_network_plot

#' Plot competitive network in competitive heatmap
#' @description Plot the competitive network
#' @name heatmap_network_plot
#' @param adj_matrix adjacency matrix from adjacenct_make()
#' @param title NULL
#' @return ...


# Function for plotting heatwork for a community with given size

heatmap_network_plot <- function(
                                 adj_matrix, # Adjacency matrix
                                 title = NULL) {
  m <- adj_matrix
  node_number <- nrow(m)
  # Name color scale
  myColor <- c("grey50", "grey10", "white", "black")
  names(myColor) <- c("win", "draw", "loss", "self")


  # Plot heatmap
  melt(t(m)) %>%
    mutate(
      Var1 = ordered(Var1, level = 1:node_number),
      Var2 = ordered(Var2, level = rev(1:node_number)),
      value = ordered(value, level = c("win", "draw", "loss", "self"))
    ) %>%
    ggplot(aes(x = Var1, y = Var2, fill = value)) +
    geom_tile(color = "black", lwd = 1.5) + # Add grid
    scale_fill_manual(values = myColor) +
    scale_x_discrete(position = "top") + # Move x axis tick to top
    theme(
      axis.title.x = element_blank(),
      #    axis.text.x = element_text(angle = 90, hjust = 1),
      axis.text = element_blank(), # Remove axis/isolates label
      axis.title.y = element_blank(),
      panel.grid.major = element_blank(),
      panel.border = element_blank(),
      panel.background = element_blank(),
      axis.ticks = element_blank(),
      legend.position = "top",
      legend.direction = "horizontal",
      legend.title = element_blank()
    ) +
    ggtitle(title)
}
Chang-Yu-Chang/MigrationCommunity documentation built on Aug. 13, 2019, 9:41 p.m.