R语言igraph绘图:vertex.color有效但label参数被忽略的原因?
解决igraph绘图中节点标签参数不生效的问题
嘿,我来帮你搞定这个igraph的小问题~你遇到的情况很典型,其实是参数名用错了!
问题原因
igraph的绘图参数命名是有明确前缀规则的:
- 所有和顶点相关的参数,都要加
vertex.前缀,比如你已经用对的vertex.color,节点标签对应的参数自然是vertex.label - 边相关的参数则加
edge.前缀,比如你生效的edge.arrow.size
你之前写的label=NA并不是igraph绘图函数的有效参数,所以被直接忽略了,这就是节点标签没消失的核心原因。
修正后的代码
把label=NA改成vertex.label=NA就可以正常隐藏节点标签了,完整代码如下:
library(igraph) g<-make_full_graph(5) %du% make_full_graph(5) %du% make_full_graph(5) g<-add_edges(g,c(1,6,1,11,6,11)) plot(g, vertex.color=c(rep("blue",5),rep("red",5),rep("yellow",5)), edge.arrow.size=0.2, vertex.label=NA) # 这里改成vertex.label即可生效!
额外提示
以后查igraph绘图参数的时候,记得留意参数的前缀规律:
- 顶点相关:
vertex.label、vertex.size、vertex.shape等 - 边相关:
edge.color、edge.width、edge.lty等
不管你用plot()还是plot.igraph(),这些参数名都是通用的——因为plot()处理igraph对象时,会自动调用plot.igraph()函数。
内容的提问来源于stack exchange,提问作者paulgr
相关产品推荐
相关产品推荐

