In this document, I will practice with some of tools for network visualization. Important resources include www.http://rud.is/projects/clinton_emails_01.html and www.kateto.net/netscix2016.

Packages

library(igraph)        # work with graphs in R
library(ggnetwork)     # devtools::install_github("briatte/ggnetwork")
library(ggrepel)       # fancy, non-ovelapping labels
#library(svgPanZoom)    # zoom, zoom
#library(SVGAnnotation) # to help svgPanZoom; it's a bioconductor package

2007 ICTS grants network

setwd("~/Desktop/SNA/Learning R/R practice/18-NetworkPresentation")
load("workingdata/summary_graphs.rda")

igraph graphs

set.seed(1492)
academics <- delete.vertices(g07s, which(degree(g07s)<1)) #remove isolates
V(academics)$size <- centralization.degree(academics)$res #degree centrality
cfg <- cluster_fast_greedy(academics)
V(academics)$community <- cfg$membership
plot(academics, vertex.size=5, vertex.label=NA, main="igraph plot")

plot(academics, vertex.size=V(academics)$size/2, vertex.label=NA, 
         main="igraph centrality plot")

colrs <- adjustcolor( c("gray50", "tomato", "gold", "yellowgreen"), alpha=.6)
plot(academics, vertex.color=colrs[V(academics)$community], vertex.label=NA,
         main="igraph community structure")

plot(academics, vertex.size=V(academics)$size/2, edge.arrow.size=.2, 
         edge.curved=1, vertex.color="orange", vertex.frame.color="#555555",
         vertex.label=NA, main="igraph Curved Lines") # curved lines don't look good

plot(academics, vertex.size=5, main="igraph Labels") # labels are a mess

plot(academics, vertex.size=0.01, vertex.label.cex=.6, 
         vertex.frame.color="#555555", main="igraph Labels only") #Using just labels

ggnetwork graph

E(academics)$weight <- 1
academics <- simplify(academics, edge.attr.comb="sum")
set.seed(1492)
scholars <- ggnetwork(academics, layout="fruchtermanreingold", 
                                            arrow.gap=0, cell.jitter=0) # Not sure why 1162 obs?
ggplot() +
  geom_edges(data=scholars, 
             aes(x=x, y=y, xend=xend, yend=yend),
             color="grey50", curvature=0.1, size=0.15, alpha=1/2) +
  geom_nodes(data=scholars,
             aes(x=x, y=y, xend=xend, yend=yend, size=size),
             alpha=1/2, color="orange") +
  theme_blank() +
  theme(legend.position="none") +
    labs(title="ggnetwork plot")-> gg
gg

gg +
    geom_label_repel(data=unique(scholars[scholars$size>10,c(1,2,6)]),
                                     aes(x=x, y=y, label=vertex.names), 
                                     size=2, color="#8856a7") +
    labs(title="ggnetwork plot with most central nodes marked") -> gg2
gg2

ggplot() +
  geom_edges(data=scholars, 
             aes(x=x, y=y, xend=xend, yend=yend),
             color="grey50", curvature=0.1, size=0.15, alpha=1/2) +
  geom_nodes(data=scholars,
             aes(x=x, y=y, xend=xend, yend=yend, size=size),
             alpha=1/2) +
  theme_blank() +
  theme(legend.position="none") +
    labs(title="ggnetwork plot")-> gg3

gg3 +
    geom_nodes(data=scholars,
             aes(x=x, y=y, xend=xend, yend=yend, size=size),
             alpha=1/2, color=colrs[V(academics)$community]) +
    labs(title="ggnetwork community structure")-> gg4
gg4