Учитывая следующие два вектора для построения графика, один из ребер и один из весов соответственно:
edg <- 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", "SA19-21", "SA22-25")
Код построения с указанным вектором:
g1 <- make_graph(edges=edg)
И весвектор:
E(g1)$weight = c(0.0051, 0.0022, 0.0152, 0.0257, 0.0039, 0.0109, 0.012,
0.0275, 0.0108, 0.029, 0.0061, 0.0134, 0.0205, 0.0129, 0.0081, 0.0035,
0.02, 0.0094, 0.0095, 0.0161, 0.0199)
Теперь, пожалуйста, посмотрите на график, который я получаю в результате с кодом ниже:
plot(g1,
edge.label = E(g1)$weight,
edge.arrow.size=.4,
vertex.color='orange',
vertex.size=7,
vertex.frame.color="orange",
vertex.label.color="black",
vertex.label.cex=0.8,
vertex.label.dist=1.1,
margin=-.2,
vertex.shape='circle')
![enter image description here](https://i.stack.imgur.com/PSolk.jpg)
У меня есть несколько проблем на этом графике, которые я не могу решить правильно:
Несмотря на то, что задана постоянная для edge.arrow.size=.4
размеры стрелок ребер имеют разные размеры, т. Е. Некоторые стрелки больше, чемдругие, и я хотел бы, чтобы они все были одинакового размера.
Я хотел бы закрасить код другим цветом в правой ветви «SA», то есть «SA1-3»SA4-6 'и пр.Я читал, что это как-то связано с созданием атрибута, подобного вектору весов, который я создал, но не смог понять это правильно.
Мне бы хотелось иметь более точный график, чтобыэто неперекрывающиеся метки ребер с номерами, которые должны быть над стрелками.Я попытался настроить несколько параметров, как вы можете видеть в коде plot(g1,...)
, но ни один из них не дал приличного и аккуратного графика, который хорошо выглядит.
Каждый раз, когда я запускаю *Код 1036 *, описанный ниже на RI, получает другую форму графика.То есть меняются размеры ветвей, например, ветвь, которая была слева, оказывается справа, и наоборот.Это почему ?Почему igraph
продолжает давать мне разные формы для одного и того же кода каждый раз, когда я запускаю код без каких-либо изменений ??