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.
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
setwd("~/Desktop/SNA/Learning R/R practice/18-NetworkPresentation")
load("workingdata/summary_graphs.rda")
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
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