Менее сложный метод, чем приведенный выше, если вы хотите назначить местоположения узлов самостоятельно, - это добавить столбцы с метками x и y в таблицу данных с координатами x и y для соответствующих узлов в этих столбцах. например

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

Это лучший алгоритм layout (), или я могу вручную назначить позицию для каждого узла>Как я могу убедиться, что эти узлы не перекрываются на графике (как они делают здесь)?Могу ли я назначить один узел в качестве «якоря» или отправной точки? я могу сделать "C" самым верхним или самым левым узлом?

Спасибо!!

library("igraph")
L3 <- LETTERS[1:8]
d <- data.frame(start = sample(L3, 16, replace = T), end = sample(L3, 16, replace = T),
                weight = c(20,40,20,30,50,60,20,30,20,40,20,30,50,60,20,30))


g <- graph.data.frame(d, directed = T)

V(g)$name 
E(g)$weight

ideg <- degree(g, mode = "in", loops = F)

col=rainbow(12) # For edge colors

plot.igraph(g, 
  vertex.label = V(g)$name, vertex.label.color = "gray20",
  vertex.size = ideg*25 + 40, vertex.size2 = 30,
  vertex.color = "gray90", vertex.frame.color = "gray20",
  vertex.shape = "rectangle",
  edge.arrow.size=0.5, edge.color=col, edge.width = E(g)$weight / 10,
  edge.curved = T, 
  layout = layout.reingold.tilford)