Librería

ggraph

Autor principal

Thomas Lin Pedersen

Datos de muestra

ggraph trabaja con objetos de grafo creados con igraph. Construye uno a partir de un data frame de lista de aristas con graph_from_data_frame(). Cada fila es una conexión entre dos nodos.

# install.packages("igraph")
library(igraph)

edges <- data.frame(
  from   = c("Alice", "Alice", "Bob",  "Carol", "Carol", "Dave", "Eve"),
  to     = c("Bob",   "Carol", "Dave", "Dave",  "Eve",   "Frank","Frank"),
  weight = c(3, 5, 2, 4, 1, 3, 2)
)

g <- graph_from_data_frame(edges, directed = FALSE)

ggraph básico

ggraph() inicializa el gráfico y establece el algoritmo de layout. Añade geom_edge_link() para las aristas y geom_node_point() para los nodos. theme_graph() elimina los ejes y el fondo gris.

# install.packages("ggraph")
library(ggraph)

ggraph(g, layout = "fr") +
  geom_edge_link() +
  geom_node_point(size = 5) +
  theme_graph()

Grafo de red básico en R con ggraph geom_edge_link y geom_node_point

Etiquetas de nodos

Grafo de red con etiquetas de nodos en ggraph usando geom_node_text

Añade geom_node_text() y mapea name a label. Activa repel = TRUE para que las etiquetas se alejen del centro de los nodos y no se solapen.

# install.packages("ggraph")
library(ggraph)

ggraph(g, layout = "fr") +
  geom_edge_link() +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name), repel = TRUE) +
  theme_graph()

Layouts

El argumento layout controla cómo se posicionan los nodos. "fr" (Fruchterman-Reingold) es el layout de fuerzas por defecto. Otras opciones habituales son "kk" (Kamada-Kawai), "circle", "star" y "tree".

# install.packages("ggraph")
library(ggraph)

ggraph(g, layout = "circle") +
  geom_edge_link() +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name)) +
  theme_graph()

Grafo de red con layout circular en ggraph

Color y tamaño de nodos

Grafo de red con nodos coloreados y dimensionados por grado en ggraph

Mapea degree(g) a size y color dentro de aes() para codificar cuántas conexiones tiene cada nodo. degree() es una función de igraph que cuenta las aristas por nodo.

# install.packages("ggraph")
library(ggraph)

ggraph(g, layout = "fr") +
  geom_edge_link(alpha = 0.4) +
  geom_node_point(aes(size  = degree(g),
                      color = degree(g))) +
  scale_color_viridis_c(guide = "none") +
  scale_size(range = c(4, 10), guide = "none") +
  theme_graph()

Grosor de aristas

Mapea un atributo numérico de arista a width dentro de aes() y usa scale_edge_width() para definir el rango de salida. Aquí la columna weight codifica la intensidad de la conexión.

# install.packages("ggraph")
library(ggraph)

ggraph(g, layout = "fr") +
  geom_edge_link(aes(width = weight), alpha = 0.6) +
  geom_node_point(size = 5) +
  scale_edge_width(range = c(0.5, 3), guide = "none") +
  theme_graph()

Grafo de red con grosor de aristas mapeado al peso en ggraph

Grafo dirigido

Grafo de red dirigido con flechas en ggraph

Activa directed = TRUE en graph_from_data_frame() y pasa un arrow() a geom_edge_link(). Usa end_cap para que la punta de la flecha no quede solapada con el nodo.

# install.packages(c("igraph", "ggraph"))
library(igraph)
library(ggraph)

gd <- graph_from_data_frame(edges, directed = TRUE)

ggraph(gd, layout = "fr") +
  geom_edge_link(arrow   = arrow(length = unit(3, "mm"),
                                 type   = "closed"),
                 end_cap = circle(3, "mm")) +
  geom_node_point(size = 5) +
  theme_graph()

Aristas curvas

Sustituye geom_edge_link() por geom_edge_arc() para dibujar aristas curvas. El argumento strength controla la curvatura — 0 es recto, 1 es una semicircunferencia.

# install.packages("ggraph")
library(ggraph)

ggraph(g, layout = "fr") +
  geom_edge_arc(strength = 0.3, alpha = 0.6) +
  geom_node_point(size = 5) +
  geom_node_text(aes(label = name), repel = TRUE) +
  theme_graph()

Grafo de red con aristas curvas usando geom_edge_arc en ggraph

MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar