¿Es posible tener dos enlaces que fluyan desde un nodo en el diagrama de Sankey?
Quiero modificar el gráfico Sankey que hice usando el paquete R networkD3 para que múltiples enlaces fluyan desde un mismo nodo, esto es lo que he hecho hasta ahora:
Encabezado de muestra aleatoria de datos:
Study Category Class
<chr> <chr> <chr>
1 study17 cat H class B;class C
2 study32 cat A;cat B class A
3 study7 cat F class A
4 study21 cat F class C
5 study24 cat F class B;class C
6 study15 cat E;cat K class C
Ejemplo de datos:
d <- read.csv(text = "Study,Category,Class
study17,cat H,class B;class C
study32,cat A;cat B,class A
study7,cat F,class A
study21,cat F,class C
study24,cat F,class B;class C
study15,cat E;cat K,class C")
Usando esta respuesta, creé el siguiente gráfico Sankey:
Sin embargo, como se puede ver, la segunda y tercera columnas ahora incluyen “nodos compuestos” como “cat A;cat B” y “class B; class C”.
Me gustaría crear dos nodos que fluyan desde el estudio 32: uno hacia la categoría A y otro hacia la categoría B. De manera similar, me gustaría que dos nodos fluyan desde la categoría F (fila 5): uno hacia la clase B y otro hacia la clase C.
En resumen, estoy preguntando si es posible hacer algo como dividir enlaces. Sé que podría dividirlos regularmente y crear una nueva fila para cada instancia, pero esto distorsionaría la verdad en esta imagen.
davy.ai
Para crear múltiples enlaces que fluyan desde un nodo en un gráfico Sankey utilizando networkD3 en R, puede utilizar la función
str_split
del paquetestringr
para dividir los nodos compuestos en nodos separados.Aquí hay un ejemplo de código para dividir la columna
Categoría
:“`{r}
library(stringr)
dividir la columna Categoría usando “;”
d$Category_split <- str_split(d$Category, “;”)
crear un marco de datos con una fila por cada categoría
d2 <- data.frame(Study = rep(d$Study, sapply(d$Category_split, length)),
Category = unlist(d$Category_split),
Class = rep(d$Class, sapply(d$Category_split, length)))
Esto debería crear un gráfico Sankey con nodos separados para cada categoría y múltiples enlaces que fluyen desde un nodo.
Tenga en cuenta que también puede aplicar el mismo enfoque a la columna
Class
, si es necesario.