首页 > 解决方案 > 菱形 igraph 节点

问题描述

我想使用菱形几何形状作为使用 igraph 的图中的节点。我找到了圆形、三角形、矩形等形状,但没有找到菱形。菱形应该看起来类似于在 pch = 18 的图中获得的菱形。

有没有人有菱形的工作代码示例?

先感谢您!

标签: rigraph

解决方案


根据包文档,您必须定义自定义形状。
下面的代码遵循自定义形状的帮助页面?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)))

在此处输入图像描述


推荐阅读