Member 13191541 Ответов: 0

R-Как построить график визуализации сети из Матрицы координат x-y и матрицы смежности?


В программировании R - Как построить график визуализации сети с заданной матрицей X с 2-столбцовой системой координат:

координаты < - matrix(c(0.809,0.588,0.309,0.951,-0.309,0.951,-0.809,0.588,-1,0,-0.809,-0.588,-0.309,-0.951,0.309,-0.951,0.809,-0.588,1,0), ncol=2)

... и квадратичная матрица Y как матрица смежности:

смежность < - matrix(c(0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0), ncol=10)

К сожалению, я могу использовать только стандартную библиотеку R (ту, которая предварительно установлена), и именно поэтому мне трудно понять это...

Что я уже пробовал:

До сих пор у меня есть этот код, но график, который он создает, довольно "уродлив" и дает мне массу ошибок:

plotGraph <- function(B){
  
  coordinates <- matrix(c(0.809,0.588,0.309,0.951,-0.309,0.951,-0.809,0.588,-1,0,-0.809,-0.588,-0.309,-0.951,0.309,-0.951,0.809,-0.588,1,0), ncol=2)
  
  adjacency <- matrix(c(0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0), ncol=10)
  
  plot(coordinates)
  
  idx <- which(adjacency>0, arr.ind = T)
  
  number = ncol(adjacency) * nrow(adjacency)
  
  for(i in 1:number){
  arrows(coordinates[idx[i,1],1], coordinates[idx[i,1],2], coordinates[idx[i,2],1], coordinates[idx[i,2],2]) 
}
}

0 Ответов