如何用Igraph绘制带有甜甜圈形状顶点的网络?

4

我希望绘制一个环形/甜甜圈形状的网络节点。在Igraph文档中没有找到这样的形状,但我找到了一个饼状图形。像下面的代码:

library(igraph)
g <- make_ring(10) 
values <- lapply(1:10, function(x) sample(1:10,3)) 
if (interactive()) { 
    plot(g, vertex.shape="pie", vertex.pie=values,            
         vertex.pie.color=list(heat.colors(5)), 
         vertex.size=seq(10,30,length=10), vertex.label=NA) 
}

这里是生成的图片:

enter image description here

您知道如何使用Igraph将饼状顶点转换为环/甜甜圈形状的顶点吗?我搜索了“vertex.pie.hole”参数,但它不存在。我认为最简单的方法是在顶点的质心处描绘“白点”,但这显然不是理想的情况。

我也知道可以定义自己的顶点形状,但我必须承认对于一个环/甜甜圈形状,这对我来说真的很难。

非常感谢您的关注,

1个回答

4

我不确定是否有直接绘制甜甜圈的方法,但这里有一个技巧可以得到相同的结果:我们首先使用您的代码绘制图表,然后我们在上面绘制较小的白色圆圈来创建甜甜圈。设置种子确保每次顶点都处于相同位置。

  set.seed(2)
  plot(g, vertex.shape="pie", vertex.pie=values,            
       vertex.pie.color=list(heat.colors(5)), 
       vertex.size=seq(10,30,length=10), vertex.label=NA) 

  set.seed(2)
  plot(g, 
       vertex.size=seq(5,15,length=10), vertex.label=NA, 
       vertex.color="white", 
       edge.color=NA,
       add=TRUE) 

enter image description here


谢谢你的回答!虽然这不是理想的情况,但我认为这绝对是一个解决方法! - Charles Santana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接