如何使用 "from-to-dataframe" 制作网络图?

How to make a network plot using a "from-to-dataframe"?

我有一个包含两列的数据框。第一列表示某人从哪里来,第二列包括某人去哪里。就像在这个例子中:有人来自“a”,然后去了“a”、“b”或“c”。 R 中是否有一种方法可以使用以下数据框绘制该数据结果的网络?或者数据框是否进一步转换以便能够绘制它?

from = c("a")
to = rep(c("a","b","c"),times=c(2,3,5))
data=cbind(from,to)

提前致谢。

您可以像这样使用 igraph 包绘制它:

library(igraph)
graph <- graph_from_edgelist(data)
plot(graph)

你也可以使用和弦图。 示例数据:

from = c("a")
to = rep(c("a","b","c"),times=c(2,3,5))
data=cbind(from,to)

示例代码:

library(circlize)

  cols <- hcl.colors(4, "Temps")    

chordDiagram(data,
         col = cols,
         transparency = 0.1,
         link.lwd = 1,    # Line width
         link.lty = 1,    # Line type
         link.border = 1) # Border color

circos.clear()

剧情: