ромбическая форма - PullRequest
       9

ромбическая форма

0 голосов
/ 21 декабря 2018

Я бы хотел использовать геометрическую форму ромба в качестве узла в графе с помощью igraph.Я нашел такие формы, как круг, треугольник, прямоугольник, но я не нашел ромба.Ромб должен выглядеть аналогично ромбу, полученному на графике с pch = 18.

У кого-нибудь есть пример рабочего кода для формы ромба?

Заранее спасибо!

1 Ответ

0 голосов
/ 21 декабря 2018

В соответствии с документацией к пакету вы должны определить пользовательскую фигуру.
Код ниже следует странице справки ?igraph::shapes для пользовательской формы "triangle".Основное различие заключается в определении stars, в функции myrhombus.

library(igraph)

myrhombus <- function(coords, v = NULL, params) {
  vertex.color <- params("vertex", "color")
  if (length(vertex.color) != 1 && !is.null(v)) {
    vertex.color <- vertex.color[v]
  }
  vertex.size <- 1/200 * params("vertex", "size")
  if (length(vertex.size) != 1 && !is.null(v)) {
    vertex.size <- vertex.size[v]
  }

  symbols(x = coords[, 1], y = coords[, 2], bg = vertex.color,
          stars = cbind(1.2*vertex.size, vertex.size, 1.2*vertex.size, vertex.size),
          add = TRUE, inches = FALSE)
}
# clips as a circle
add_shape("rhombus", clip = shapes("circle")$clip,
          plot = myrhombus)


g <- graph.ring(10, dir = FALSE)

plot(g, vertex.shape = "rhombus", vertex.color = rainbow(vcount(g)),
     vertex.size = rep(30, vcount(g)))

enter image description here

...