Можно ли масштабировать размер и цвет узлов / вершин с помощью ggnetwork на основе двух переменных? - PullRequest
0 голосов
/ 18 января 2020

Работая на примере «группы крови» в документации (Тайнер, Бриатте и Хоффман):

> bt <- as.character( unique( blood$edges$from ) )
> bt_df <- data.frame( type=bt, spin=c(1,2,3,4,5,6,7,8),charm=c(8,7,6,5,4,3,2,1))
Browse[1]> bt_df
  type spin charm
1  AB-    1     8
2  AB+    2     7
3   A-    3     6
4   A+    4     5
5   B-    5     4
6   B+    6     3
7   O-    7     2
8   O+    8     1

Можно ли построить график сети, изменяющий цвет вершин в некоторой палитре на основе значение "вращения" и изменяющийся размер вершины в зависимости от значения "очарования"?

1 Ответ

0 голосов
/ 18 января 2020

Нашел ответ в документации вместе с пробами и ошибками. Ключевым шагом является «geom_nodes (size = bt_df $ spin, color = bt_df $ charm)».

ggplot( ggnetwork(grph, layout="circle", arrow.gap=0.05),aes(x,y,xend=xend,yend=yend)) +
          geom_edges(color="grey50", arrow=arrow(length=unit(10,"pt"), type="closed")) +
          scale_color_brewer(palette = "Set2") +
          geom_nodes(size=bt_df$spin, color=bt_df$charm) +
          geom_nodetext(aes(label=vertex.names), color="grey80") + 
          theme_blank() +
          coord_fixed( 0.5 )
...