Я пытаюсь использовать пакет igraph
для рисования (разреженного) взвешенного графика. В настоящее время я имею матрицу смежности, но не могу получить функцию graph.adjacency
для распознавания весов ребер.
Рассмотрим следующую случайную симметричную матрицу:
m <- read.table(row.names=1, header=TRUE, text=
" A B C D E F
A 0.00000000 0.0000000 0.0000000 0.0000000 0.05119703 1.3431599
B 0.00000000 0.0000000 -0.6088082 0.4016954 0.00000000 0.6132168
C 0.00000000 -0.6088082 0.0000000 0.0000000 -0.63295415 0.0000000
D 0.00000000 0.4016954 0.0000000 0.0000000 -0.29831267 0.0000000
E 0.05119703 0.0000000 -0.6329541 -0.2983127 0.00000000 0.1562458
F 1.34315990 0.6132168 0.0000000 0.0000000 0.15624584 0.0000000")
m <- as.matrix(m)
Чтобы построить, сначала я должен получить эту матрицу смежности в правильный формат igraph
. Это должно быть относительно простым с graph.adjacency
. Согласно моему чтению документации для graph.adjacency
, я должен сделать следующее:
library(igraph)
ig <- graph.adjacency(m, mode="undirected", weighted=TRUE)
Однако он не распознает веса ребер:
str(ig)
# IGRAPH UNW- 6 8 --
# + attr: name (v/c), weight (e/n)
# + edges (vertex names):
# [1] A--E A--F B--C B--D B--F C--E D--E E--F
plot(ig)
Как получить igraph для распознавания весов края?