Igraph 圆形布局:调整自反边标签的外观

5
我使用 `igraph` 包中的 `layout.circle` 算法绘制了这个图。
有些左侧自环连接的标签由于被放置在节点之间的边后面,因此不太清晰可见。我是否可以进行某些调整以改善绘图的可读性,而不改变标签的距离?(我猜想,在不重新编写整个代码的情况下,将循环绘制在圆形的径向矢量上是不可能的...)
以下是代码:
par(mar=c(0,0,0,0))
plot(g, 
     layout=layout.circle,
     vertex.label.family="Palatino",
     edge.label.family="Palatino",
     edge.label.cex=0.7,
     vertex.size=log(V(g)$community_size)+7,
     vertex.label=V(g)$community_size,
     edge.width=log(E(g)$weight),
     edge.label=E(g)$weight)
1个回答

5

将同一图形绘制两次,首先用边缘绘制,但是不带标签,然后去掉边缘和顶点,只保留标签。以下为一些有用的提示:

  • 对于第二个图形,使用add=TRUE
  • 要省略边缘,请将它们的宽度设置为零。
  • 要省略顶点,请将其形状设置为none
  • 要省略边缘标签,请将它们设置为NA或空字符串。

编辑

为了修正布局,请预先计算并将其存储在变量中:

  lay <- layout.circle(g)
  plot(g, layout=lay, ...)
  plot(g, add=TRUE, layout=lay, ...)

图表每次绘制时节点位置都不同。然后第二个图的标签不会重叠在正确的节点上。有没有办法强制使用相同位置的节点进行布局.circle? - CptNemo
使用 layout= 选项来修正节点位置。 - Gabor Csardi

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