首先,我读了this question,但这对我没有帮助。
我有两个csv文件:第一个包含节点列表,如:
Id,Label
0.0,Myriel
1.0,Napoleon
2.0,MlleBaptistine
3.0,MmeMagloire
第二个包含如下链接:
Source,Target,Weight
1.0,0.0,1.0
2.0,0.0,8.0
3.0,0.0,10.0
3.0,2.0,6.0
4.0,0.0,1.0
我希望在RStudio中使用igraph显示此网络。 这就是我所做的:
library(igraph)
# set working directory
setwd('.../Dataset/script')
nodes <- read.csv('nodes.csv')
#plot(nodes)
net <- graph.data.frame(net, directed=FALSE)
#V(net)$frame.color <- "white"
V(net)$color <- "orange"
V(net)$label <- ""
V(net)$size <- 10
E(net)$arrow.mode <- 0
plot(net)
但图表似乎没有链接。 如何从2个不同的文件导入节点和链接?
由于
答案 0 :(得分:0)
我已从第二个data.frame中删除了一条边,因为节点列表中没有相应的顶点。此外,由于您对data.frame和igraph对象使用相同的名称,因此我更改了包含从网络到连接的边缘信息的data.frame的名称。
为了从两个不同的数据源构建您的igraph对象,您可以提供edgelist,本示例中的命名连接和顶点(称为节点到graph_from_data_frame()
library("igraph")
nodes <- read.table(text = "Id,Label
0.0,Myriel
1.0,Napoleon
2.0,MlleBaptistine
3.0,MmeMagloire",
header = TRUE, sep = ",", stringsAsFactors = FALSE)
connections <- read.table(text = "Source,Target,Weight
1.0,0.0,1.0
2.0,0.0,8.0
3.0,0.0,10.0
3.0,2.0,6.0",
header = TRUE, sep = ",", stringsAsFactors = FALSE)
net <- graph_from_data_frame(connections, directed = FALSE, vertices = nodes)
V(net)$color <- "orange"
V(net)$label <- ""
V(net)$size <- 10
E(net)$arrow.mode <- 0
plot(net, vertex.label = V(net)$Label)