R создать график с метками из CSV с помощью igraph - PullRequest
0 голосов
/ 14 июня 2019

У меня есть CSV в следующем формате:

IDA, IDB, вес, labelA

где idA и idB - это идентификатор исходного и целевого узла, а 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, ]

Итак, я попытался создать новый фрейм данных, содержащий только идентификаторы и веса для каждого ребра, и еще один с идентификаторами и метками.

Теперь мне удалось нарисовать график, используя следующий код:

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)

Но он отображает идентификаторы графика, а не метки (которые я удалил). Теперь формат метки метки данных (graphLabels):

id, метка

Теперь я хочу связать правую метку с соответствующим узлом.
Как этого добиться?

Я пробовал разные способы, но все еще безуспешно. Как правильно заменить идентификатор вершины соответствующей меткой?

Я также пытался использовать visNetwork, но, учитывая размер графика, он ничего не печатает.

...