我是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) 其结果如下:

但是请注意,连接边缘的箭头有不同的长度,标签在一定程度上重叠箭头和圆圈。我真的想要一些比这张图更整洁的东西。
发布于 2018-12-26 07:52:24
你主要是在玩两个参数-
edge.arrow.size -箭头的大小。目前这是一个常数,所以每个边都是一样的。如果提交了向量,则只使用第一个元素,即。如果这是从边缘属性中提取的,那么所有箭头都只使用第一个边的属性。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) 它变得更干净了-

找到完整的参数集这里
https://stackoverflow.com/questions/53927426
复制相似问题