Я не совсем уверен, что вы имеете в виду под «без ребер на контуре», но вот некоторые моменты:
- Read
?igraph.plotting
для полного списка планировавших параметров.
- Если вы не хотите кадр на вершинах, установите
vertex.frame.color
на то же значение, что и vertex.color
.
- Использование
layout.grid
, см. ?layout.grid
.
- Используйте
vertex.label
для установки этикеток.
- Если вы хотите опустить некоторые ребра, удалите их или установите их ширину в ноль или их цвет на цвет фона.
- Если вы хотите опустить некоторые вершины, то приложите координаты, вычисленные
layout.grid
как атрибуты вершины, а затем удалите вершины из графика.
Что-то подобное может работать:
g <- graph.lattice(c(5,5))
lay <- layout.grid(g)
V(g)$x <- lay[,1]
V(g)$y <- lay[,2]
V(g)$color <- V(g)$frame.color <- "darkolivegreen"
V(g)$label.color <- "lightgrey"
V(g)$label <- paste(V(g)$x+1, V(g)$y+1, sep=",")
Чтобы удалить ребра, вы можете выбрать их на основе координат вершин:
torem <- c(E(g)[ V(g)[x==0] %--% V(g)[x==0] ],
E(g)[ V(g)[y==0] %--% V(g)[y==0] ],
E(g)[ V(g)[x==4] %--% V(g)[x==4] ],
E(g)[ V(g)[y==4] %--% V(g)[y==4] ])
g2 <- delete.edges(g, torem)
, а затем удалить вершины и участок :
g3 <- delete.vertices(g2, V(g2)[ x %in% c(0,4) & y %in% c(0,4) ])
plot(g3, layout=cbind(V(g3)$x, V(g3)$y))
![plot](https://i.stack.imgur.com/s10SX.png)
Благодарим за ответ. «Без ребер на контуре» я имел в виду, как удалять ребра, которые находятся на контуре сетки (сетка перед удалением угловых вершин), т. Е. Как удалять ребра (2,1) - (3,1), (3 , 1) - (4,1), (1,2) - (1,3), (1,3) - (1,4) и т. Д.? В этот момент я использую функцию delete.edges и просто называю индексы, но это не сработает для больших графиков. – user3001385
См. Отредактированный ответ. –
Кроме того, можно ли покрасить «квадраты», ограниченные краями разных цветов на этом изображении? Например, в зону цвета, ограниченную (2,2) - (2,3), (2,3) - (3,3), (3,3) - (3,2), (2,2) - (3,2) в одном цвете, а другая такая область в другом цвете? Могу ли я это сделать, установив параметр mark.col каким-то образом? – user3001385