У меня есть 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, но, учитывая размер графика, он ничего не печатает.