使igraph更易读

7

我有一个包含69个顶点的有向图,如下所示。它是使用igraph软件包绘制的:

library(igraph)
ig <- graph.adjacency(data, mode="directed", weighted=TRUE) 
plot(ig)

我希望实现以下两点:
(a) 将顶点间距离加大,或许延长边缘长度以使其更易读。
(b) 实际上,我的标签更长。是否有可能将顶点变大,文字变小以适应此情况。
有什么想法吗?
这是我的数据:https://www.dropbox.com/s/rtedrd1x1duqllj/data.Rdata?dl=0

igraph


你尝试过其他的图形布局选项吗? - Spacedman
你会推荐哪些适合这种情况的? - user2846211
没有你的数据,我无法判断。在 igraph 中只有 12 个布局函数。其中一些具有可调参数。 - Spacedman
你至少试着阅读文档了吗?igraph的手册非常详尽易懂:http://igraph.org/r/doc/plot.common.html - shadowtalker
谢谢你的提示,我已经提供了我的数据文件链接。 - user2846211
显示剩余2条评论
1个回答

10

所有的参数都可以高度自定义。我用州名称替换了您的顶点标签:

# this ensures the starting random position is the same
# for the layouts that use a random starting position
set.seed(1492) 

l <- layout.fruchterman.reingold(ig, niter=5000, area=vcount(ig)^4*10)

plot(ig, layout=l, 
     edge.arrow.size=0.5, 
     vertex.label.cex=0.75, 
     vertex.label.family="Helvetica",
     vertex.label.font=2,
     vertex.shape="circle", 
     vertex.size=1, 
     vertex.label.color="black", 
     edge.width=0.5)

enter image description here

你应该花些时间阅读 help("igraph.plotting")help("layout")


非常感谢,太棒了! - user2846211
4
很抱歉提起这个旧话题,但自从版本0.8开始,'igraph'已经弃用并删除了area属性,我想这个属性可以在节点之间留出更多的空间。您知道有什么可以替代area的吗? - iNyar

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