如何在plot.igraph中基于顶点period属性隐藏顶点且保留布局?
解决方法
当然可以实现你的需求,不用删除顶点就能在渲染时隐藏指定时间段的顶点,同时保留原有布局。核心思路是通过条件设置目标顶点的尺寸为0,这样渲染时就看不到它们了,具体修改代码如下:
lo <- layout.norm(as.matrix(g[, c("longitude","latitude")])) # 用ifelse生成顶点尺寸向量:period为1的顶点尺寸设为0,其他保持4 plot.igraph(g, layout=lo, vertex.label=NA, rescale=T, vertex.size = ifelse(V(g)$period == 1, 0, 4), # 可选:如果担心顶点边框残留,也可以把对应顶点的边框设为透明 vertex.frame.color = ifelse(V(g)$period == 1, NA, "black") )
说明
- 这里通过
ifelse(V(g)$period == 1, 0, 4)生成了一个顶点尺寸向量,满足条件的顶点尺寸被设为0,渲染时自然不可见,其他顶点保持原尺寸。 - 因为你不需要删除顶点,原布局
lo完全不受影响,依然基于所有顶点的经纬度计算。 - 如果你还担心顶点边框(即使尺寸为0)可能有残留,可以额外添加
vertex.frame.color的条件设置,把目标顶点的边框设为NA(透明),避免干扰。
内容的提问来源于stack exchange,提问作者flâneur
相关产品推荐
相关产品推荐

