Как я могу создать график с помощью его матрицы соответствия? - PullRequest
1 голос
/ 19 апреля 2020

Я пытался просмотреть некоторые учебники по R, но я не делаю успехов.

1 Ответ

1 голос
/ 19 апреля 2020

Вы можете попробовать graph_from_adjacency_matrix из igraph пакета, например,

library(igraph)
library(plot.matrix)
set.seed(123)
adjmat <- matrix(sample(0:1,16,replace = TRUE),ncol = 4) # Note that adjacency matrix must be a square matrix
g <- graph_from_adjacency_matrix(adjmat)

par(mfrow=c(1,2))
plot(g)
plot(adjmat)

, тогда вы получите enter image description here


РЕДАКТИРОВАТЬ

Для графика, показанного в

enter image description here

Если вы хотите создать двудольный граф, вы можете попробовать следующий в качестве примера

g <- graph.data.frame(data.frame(get.edgelist(graph_from_adjacency_matrix(adjmat,mode = "undirected"))),
                      directed = FALSE)
V(g)$type <- V(g)$name %in% get.edgelist(g)[,2]
V(g)$color <- V(g)$type
V(g)$color=gsub("FALSE","red",V(g)$color)
V(g)$color=gsub("TRUE","yellow",V(g)$color)
plot(g, layout=layout_as_bipartite)

, который дает

enter image description here

, но я понятия не имею, возможно ли создать матричный график как это.

ДАННЫЕ

adjmat <-structure(c(0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 
1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0), .Dim = c(7L, 7L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...