library(igraph)

grime_edge_list <- read.csv(file.choose(), header = TRUE)

grime_08 <- graph_from_data_frame(d= grime_edge_list, directed = TRUE)
plot(grime_08)

grime_08_clean <- delete.edges(grime_08, E(grime_08)[which_loop(grime_08)])

plot(grime_08_clean)

Layout

Random

plot(grime_08_clean, layout = layout.random)

Grid

plot(grime_08_clean, layout = layout.grid)

Small world/Circle

plot(grime_08_clean, layout = layout.circle)

Layout by algorithms to demonstrate the relationships a bit better

plot(grime_08_clean, layout = layout_with_dh(grime_08_clean))

plot(grime_08_clean, layout = layout_with_fr(grime_08_clean))

plot(grime_08_clean, layout = layout_with_kk(grime_08_clean))

Changing colours of the graph

Vertex colours with verterx.color()

plot(grime_08_clean, vertex.color = "pink")

Edge colour with edge.color()

plot(grime_08_clean, edge.color = "pink")

Changing the Sizes

Edge and vertex size

plot(grime_08_clean, vertex.size = 5, edge.arrow.size = 0.5)

Edge thickness

plot(grime_08_clean, vertex.size = 5, edge.width = 10)

Titles

Main Title

plot(grime_08_clean, vertex.size = 5, edge.arrow.size = 0.5, main = "Grime Collaborations 2008")

Sub title

plot(grime_08_clean, vertex.size = 5, edge.arrow.size = 0.5, main = "Grime Collaborations", sub = "2008")

Labels

Toggle

plot(grime_08_clean, vertex.label = NA)

Size

plot(grime_08_clean, vertex.label.cex = 0.2)

General considerations for visualizations

Changing the aspect ratio by changing the margings of the plot window.

plot(grime_08_clean, vertex.label = NA)

par(mar =c(0,0,0,0))
plot(grime_08_clean, vertex.label = NA)

We have reduced the margins all down to zero.

Set a seed to replicate the same layout every time

par(mar =c(0,0,0,0))
set.seed(123)
plot(grime_08_clean, vertex.label = NA)

par(mar =c(0,0,0,0))
set.seed(123)
plot(grime_08_clean, vertex.label = NA)

The layout is replicated - useful for recreating visuals you use.

Plotting visuals next to each other

Vertical

par(mfrow = c(2, 1))
par(mar =c(0,0,0,0))
set.seed(123)
plot(grime_08_clean, vertex.label = NA)
set.seed(123)
par(mar =c(0,0,0,0))
plot(grime_08_clean, vertex.label = NA, vertex.size = degree(grime_08_clean))

Horizontal

par(mfrow = c(1, 2))
set.seed(123)
par(mar =c(0,0,0,0))
plot(grime_08_clean, vertex.label = NA)
set.seed(123)
par(mar =c(0,0,0,0))
plot(grime_08_clean, vertex.label = NA, vertex.size = degree(grime_08_clean))