Как отделить красную метку от края в igraph?

Я хотел бы переместить позицию метки метки, чтобы она не была поверх нее. Вот небольшой пример:

 g <- graph.empty(n=3) 
 g <- graph(c(1,2,3,2,1,3), directed=T)
 E(g)$weight <- c(3,2,5) 
 plot(g, edge.label = E(g)$weight)

В моем примере метки находятся на краях, и я хочу, чтобы они немного перпендикулярно к краю.

Ответ 1

Используйте edge.label.cex и edge.label.dist в функции plot. Я думаю, это работает!

Ответ 2

Извините, что парень, который говорит "Как насчет использования библиотеки (х)?"

Мой код с помощью ggraph?

library(igraph)
library(ggraph)

g <- graph.empty(n=3) 
g <- graph(c(1,2,3,2,1,3), directed=T)
E(g)$weight <- c(3,2,5) 

#your plot
plot(g, edge.label = E(g)$weight)


#using ggraph
ggraph(graph = g) +
  geom_node_circle(size = 1, mapping = aes(r =0.03), fill="goldenrod") +
  geom_edge_link(mapping = aes (label = weight),
                 arrow = arrow(type = "closed", angle = 15), 
                 end_cap = circle(8, 'mm'), , 
                 start_cap = circle(8, 'mm'), 
                 colour="grey",
                 label_dodge  = unit(5, "mm"),
                 angle_calc = "along") +
  geom_node_text(mapping = aes(label = "2")) +
  theme_graph()