Один из способов «контролировать» выбросы - это избавиться от них.Это уменьшит вашу первоначальную проблему, но вы все равно застрянете с большим графиком, который трудно визуализировать.Но давайте разберемся с одной вещью за раз.Во-первых, выбросы.
К сожалению, вы установили начальное значение после того, как вы сгенерировали график.Сначала я перемещу оператор set.seed
, чтобы результаты были воспроизводимыми.
library(igraph)
set.seed(12)
ig <- erdos.renyi.game(12000,1/10000,directed=TRUE,loops=FALSE)
ig.layout <- layout_with_fr(ig)
apply(ig.layout,2,quantile,c(0,0.001,0.01,0.1,0.9,0.99,0.999,1))
[,1] [,2]
0% -5.359639e+01 -9.898871e+01
0.1% -4.996891e+01 -5.046219e+01
1% -3.040131e+01 -2.934615e+01
10% -1.221806e-02 1.513951e-02
90% 1.207328e+01 1.130579e+01
99% 1.111746e+03 6.994646e+02
99.9% 1.418739e+04 1.182382e+04
100% 1.968552e+04 2.025938e+04
Я получаю результат, сопоставимый с вашим.Более конкретно, график сильно искажен выбросами.
plot(ig, layout=ig.layout, vertex.size=4, vertex.label=NA,
edge.arrow.size=0.4)
Но что это за выбросы?
igComp = components(ig)
table(igComp$csize)
1 2 3 4 5 6 7 10489
1041 137 42 8 5 1 1 1
Ваш график имеет один очень большой компонент и довольно много мелких компонентов.«Выбросы» - это узлы в небольших, не связанных друг с другом компонентах.Я предлагаю, чтобы, если вы хотите увидеть график, исключите эти маленькие компоненты.Просто посмотрите на большой компонент.
C1 = induced_subgraph(ig, which(igComp$membership ==1))
set.seed(12)
C1.layout <- layout_with_fr(C1)
apply(C1.layout,2,quantile,c(0,0.001,0.01,0.1,0.9,0.99,0.999,1))
[,1] [,2]
0% -18.111038 -30.5068075
0.1% -11.257167 -14.4507491
1% -4.570292 -3.2830470
10% 0.124789 0.1836629
90% 7.182714 7.1506193
99% 12.291679 13.1523646
99.9% 26.812703 23.6325447
100% 35.186445 26.8564644
Теперь раскладка более разумна.
plot(C1, layout=C1.layout, vertex.size=4, vertex.label=NA,
edge.arrow.size=0.4)
Теперь «выбросы» исчезли, и мы видим ядро графика.У вас сейчас другая проблема.Трудно взглянуть на 10500 узлов и разобраться в этом, но по крайней мере вы можете увидеть это ядро.Я желаю вам удачи в дальнейшем исследовании.