R使用igraph

时间:2019-06-14 18:03:47

标签: r csv graph igraph

我有以下格式的CSV:

idA,idB,重量,标签A

其中idA和idB是源节点和目标节点的ID,labelA是节点idA的标签。

我要实现的是使用igraph绘制图形,其中 每个顶点而不是vertexId都有标签。 这是我到目前为止所做的:

library('igraph')
graphData = read.csv(file.choose(), header = FALSE, sep=";")
graphLabels = unique(graphData[,c(1,4)])
colnames(graphLabels) = c("id", "label")
colnames(graphData) = c("idA", "idB", "weight")
graphData_clean = graphData
graphData_clean[4] = NULL
graphData = graphData[-1, ]

所以我试图做的是创建一个新的数据框,该数据框仅包含每个边缘的id和权重,另一个包含id和标签。

现在,我设法使用以下代码绘制图形:

graphData_Matrix <- graphData
graphData_Matrix = as.matrix(graphData_Matrix)
g = graph.edgelist(graphData_Matrix[,1:2])
E(g)$weight = as.numeric(graphData_Matrix[,3])
g <- as.undirected(g)
plot(g,layout=layout.fruchterman.reingold,edge.width=E(g)$weight/2)

但是它绘制图形的ID,而不是标签(我删除了)。 现在,标签数据框(graphLabels)的格式为:

id,标签

现在我想要的是将正确的标签关联到相应的节点。
如何实现呢?

我尝试了不同的方法,但是仍然没有成功。用相关标签替换顶点ID的正确方法是什么?

我也尝试使用visNetwork,但是鉴于图形的大小,它不会打印任何内容。

0 个答案:

没有答案