Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you build a graph from a data frame using the igraph package?

Any way to build a graph ( igraph package ) from a Data Frame in R ?

The data frame contains node relationships.

    df = data.frame ( 
A = c("Berlin", "Amsterdam", "New York") , 
B = c("Munich", "Utrecht", "Chicago") 
) 

Edges are :

Berlin -> Munich
Amsteram -> Utrecht
New York -> Chicago
like image 423
MadSeb Avatar asked Aug 02 '12 20:08

MadSeb


1 Answers

igraph is very flexible and I'm sure there are a number ways to accomplish this. I found the tutorials provided on the website to be very helpful.

Here's one simple way to create a network plot from a data.frame:

library(igraph)

df <- data.frame(
  A = c("Berlin", "Amsterdam", "New York") , 
  B = c("Munich", "Utrecht", "Chicago"))

df.g <- graph.data.frame(d = df, directed = FALSE)

plot(df.g, vertex.label = V(df.g)$name)

enter image description here

Note: For current versions of igraph (as of Version 1.2.1), the graph.data.frame() function is changed to graph_from_data_frame(), which is the only function out of these two to appear in the documentation. The graph.data.frame() function will still work, though.

like image 127
aaronwolen Avatar answered Sep 28 '22 17:09

aaronwolen