获取所有标签和箭头以使其可读并均匀分布

时间:2018-12-26 04:30:08

标签: r igraph

我是igraph的新手,无法弄清楚如何均匀分布标签以使其可读:

给出以下向量:

 v<-c("ES1-3", "ES4-6", "ES4-6", "ES6-8", "ES6-8", "ES7-9", "ES7-9", 
"ES10-12", "ES10-12", "ES13-15", "ES13-15", "ES16-18", "ES16-18", 
"ES19-21", "ES19-21", "ES22-24", "ES22-24", "ES25-27", "ES25-27", 
"ES28-30", "ES28-30", "ES31-33", "ES31-33", "ES34-36", "ES34-36", 
"ES37-38", "ES13-15", "SA1-3", "SA1-3", "SA4-6", "SA4-6", "SA7-9", 
"SA7-9", "SA10-12", "SA10-12", "SA13-15", "SA13-15", "SA16-18", 
"SA16-18", "SA19-21")

我最好的避免标签重叠的代码是:

g1 <- make_graph( edges=v)

 plot(g1,
 edge.arrow.size=0.5,
 vertex.color='orange',
 vertex.size=7, 
 vertex.frame.color="orange",
 vertex.label.color="black", 
 vertex.label.cex=0.8,
 vertex.label.dist=1,
 edge.curved=T) 

结果如下图所示:

enter image description here 但是请注意,链接边缘的箭头的长度不同,标签略有重叠。我真的很想比这张图更整洁。

1 个答案:

答案 0 :(得分:1)

您正在寻找主要使用两个参数的游戏-

  1. edge.arrow.size -箭头的大小。当前,这是一个常数,因此每个边都相同。如果提交了矢量,则仅使用第一个元素。如果这是从edge属性获取的,那么所有箭头仅使用第一个edge的属性
  2. vertex.label.cex -边缘标签的字体大小

因此,如果将其更改为-

plot(g1,
     edge.arrow.size=0.3,
     vertex.color='orange',
     vertex.size=7, 
     vertex.frame.color="orange",
     vertex.label.color="black", 
     vertex.label.dist=1,
     vertex.label.cex=0.5,
     edge.curved=T) 

它变得更清洁-

enter image description here

查找整套参数here