如何使用 "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()
剧情:
我有一个包含两列的数据框。第一列表示某人从哪里来,第二列包括某人去哪里。就像在这个例子中:有人来自“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()
剧情: