Вы можете попробовать 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)
, тогда вы получите
РЕДАКТИРОВАТЬ
Для графика, показанного в
Если вы хотите создать двудольный граф, вы можете попробовать следующий в качестве примера
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)
, который дает
, но я понятия не имею, возможно ли создать матричный график как это.
ДАННЫЕ
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))