我想描绘一个带有Ring / Donut Shaped Vertices的网络。我没有在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)
}
这里得到的图像:
您是否知道使用Igraph本身将饼形顶点转换为环形/环形顶点的方法?我搜索了一个&#34; vertex.pie.hole&#34;参数,但它不存在。我看到这样做的最简单方法是描绘白点&#34;在顶点的质心中,但显然不是理想情况。
我也知道可以定义我们自己的顶点形状,但我必须承认,对于环形/圆环形状来说,我真的很难这样做。
非常感谢您的关注,
答案 0 :(得分: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)