首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使所有标签和箭头具有可读性和均匀分布。

使所有标签和箭头具有可读性和均匀分布。
EN

Stack Overflow用户
提问于 2018-12-26 04:30:08
回答 1查看 90关注 0票数 1

我是igraph的新手,不知道如何均匀地放置标签以使其可读性:

给定以下矢量:

代码语言:javascript
复制
 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")

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

代码语言:javascript
复制
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) 

其结果如下:

但是请注意,连接边缘的箭头有不同的长度,标签在一定程度上重叠箭头和圆圈。我真的想要一些比这张图更整洁的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-26 07:52:24

你主要是在玩两个参数-

  1. edge.arrow.size -箭头的大小。目前这是一个常数,所以每个边都是一样的。如果提交了向量,则只使用第一个元素,即。如果这是从边缘属性中提取的,那么所有箭头都只使用第一个边的属性。
  2. vertex.label.cex -边缘标签的字体大小

所以如果你把它改成-

代码语言:javascript
复制
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) 

它变得更干净了-

找到完整的参数集这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53927426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档