сделать так, чтобы все метки и стрелки были читаемыми и равномерно распределенными - PullRequest
0 голосов
/ 26 декабря 2018

Я новичок в 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")

Myлучший код, чтобы избежать наложения меток:

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 голосов
/ 26 декабря 2018

Вы ищете в основном игру с двумя параметрами -

  1. edge.arrow.size - размер стрелок.В настоящее время это константа, поэтому она одинакова для каждого ребра.Если представлен вектор, то используется только первый элемент, т.е.если он взят из атрибута ребра, то для всех стрелок используется только атрибут первого ребра
  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

Найдите полный наборпараметров здесь

...