如何用 Igraph 描绘具有甜甜圈形顶点的网络?
How to depict a Network with Donut shaped vertices with Igraph?
我想描绘一个具有 Ring/Donut 形顶点的网络。我在 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 本身将饼形顶点变成 ring/donut 形顶点的方法吗?我搜索了 "vertex.pie.hole" 参数,但它不存在。我看到最简单的方法是在顶点的质心中描绘 "white points",但这显然不是理想的情况。
我也知道可以定义我们自己的顶点形状,但我必须承认,对于 ring/donut 形状,我真的很难做到这一点。
非常感谢您的关注,
我不确定是否有直接绘制甜甜圈的方法,但这里有一个获得相同结果的技巧:我们使用您的代码绘制图形一次,然后我们绘制较小的白色圆圈以创建甜甜圈。设置种子确保顶点每次都在相同的位置。
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)
我想描绘一个具有 Ring/Donut 形顶点的网络。我在 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 本身将饼形顶点变成 ring/donut 形顶点的方法吗?我搜索了 "vertex.pie.hole" 参数,但它不存在。我看到最简单的方法是在顶点的质心中描绘 "white points",但这显然不是理想的情况。
我也知道可以定义我们自己的顶点形状,但我必须承认,对于 ring/donut 形状,我真的很难做到这一点。
非常感谢您的关注,
我不确定是否有直接绘制甜甜圈的方法,但这里有一个获得相同结果的技巧:我们使用您的代码绘制图形一次,然后我们绘制较小的白色圆圈以创建甜甜圈。设置种子确保顶点每次都在相同的位置。
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)