library(readr)
library(dplyr)
library(igraph)
library(ggraph)
Dataset
A social network between dolphins:
- nodes
- edges
Create graph
# read edges and nodes
nodes = read_csv("dolphin_nodes.csv")
edges = read_csv("dolphin_edges.csv")
n = nrow(nodes)
m = nrow(edges)
# mutate edges and nodes
edge_type = sample(c("love", "friendship"), m, replace = TRUE)
edge_weight = runif(m, 1, 10)
edges = mutate(edges, type = edge_type, weight = edge_weight)
nodes = mutate(nodes, id = 1:n) %>% select(id, everything())
# degree of nodes (number of ties for each dolphin)
tb = tibble(v = c(1:n, edges$x, edges$y))
d = count(tb, v)$n - 1
nodes = mutate(nodes, degree = d)
# create graph from data frames
g = graph_from_data_frame(edges, directed = FALSE, nodes)
Mappings
lay = create_layout(g, layout = "fr")
# plot with ggraph
ggraph(lay) +
geom_edge_link() +
geom_node_point() +
theme_graph()

# set theme to graph
set_graph_style()
# unset graph theme
# unset_graph_style()
# add node names
ggraph(lay) +
geom_edge_link() +
geom_node_point() +
geom_node_text(aes(label = name), repel=TRUE)
