Cómo crear un grafo visualmente impactante e interactivo!

Antes de seguir, es necesario considerar que para lograr a compredender el siguiente tutorial, es necesario tener ciertos conocimientos básicos sobre el lenguaje R y conceptos relacionados a la teoría de grafos, ya que sólo describiré los pasos a seguir para la visualización.

Lo primero, instalar las siguientes Librerías

library(igraph)
## 
## Attaching package: 'igraph'
## 
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## 
## The following object is masked from 'package:base':
## 
##     union
library(networkD3)

Ahora crearemos un archivo para grafos. Si bien existen muchos tipos, crearemos una pequeña lista en un archivo .csv, con dos columnas, la primera con una cabecera llamada source y la segunda columna se llamará target. En la primera columna introduciremos los siguiente datos:Maria, Maria, Maria, Maria, Jorge, Jorge, Jorge, Lucas, Lucas, Samuel, Samuel, Samuel, Katy, Katy.

En la segunda columna correspondiente a target, introduciremos los siguientes nombres: Amanda, Jorge, Lucas, Cristina, Amanda, Cristina, Maria, Amanda, Jorge, Amanda, Maria, Lucas, Samuel, Jorge.

Guardamos y cerramos el archivo. Esta de mas decir que se deben ver solamente dos columnas, una con el source y otra columna con el target respectivo. Guardamos en una carpeta y la abriremos desde RStudio.

En mi caso es el siguiente comando:

SN <- read.csv("~/Dropbox/Proyectos R/igraph/simplenetwork_1.csv",sep = ",")

Ahora el objeto SN (simple network) debe ser convertido en un dataframe , para lo cual procedemos al siguiente comando:

sn <- data.frame(SN)

Ahora invocamos la siguiente function de la libreria networkD3:

simpleNetwork(sn,linkDistance = 150, fontSize = 12, linkColour = "green",
              nodeColour = "red", nodeClickColour = "blue", textColour = "black",
              opacity = 0.8)

Lo cual da como resultado inmediato el grafo que hemnos creado desde un archivo.csv. Ahora solo queda en tus manos explorar los argumentos para ir modificandolo a tu gusto. Puedes revisar la Documentación respectiva a la libreria.

Cabe señalar, que la fuction: simpleNetwork , es simple, ya que no reconoce atributos que puedan traer los nodos o enlaces, sin embargo exsite otra function llamada forceNetwork la que permite más cambios.