R ggraph удалить изоляты, когда указано facet_edges - PullRequest
2 голосов
/ 27 сентября 2019

Я делаю некоторый исследовательский анализ сети с пакетом tidigraph.Я пытаюсь создать граненый график с моими данными, используя ggraph.Я создаю 2 разных объекта tbl_graph, которые связываю с помощью функции bing_graphs.

Код, который я использую:

# 1) Creating full graph
g.tot.1 <- tbl_graph(nodes = nodes, edges = fdi) %>%
  activate(edges) %>% filter(sector == 'Financial services') %>%
  activate(nodes) %>% filter(!node_is_isolated()) %>%
  activate(edges) %>% mutate(tofrom = ifelse(.N()$name[to] == 'DUB', 1, 2)) 

# 2) creating "to DUB" graph 
g.to.1 <- g.tot.1 %>%
  filter(tofrom == 1) %>%
  activate(nodes) %>% filter(!node_is_isolated()) %>%

# 3) Creating "from DUB" graph
g.from.1 <- g.tot.1 %>%
  filter(tofrom == 2) %>%
  activate(nodes) %>% filter(!node_is_isolated()) %>%

# Binding graphs and plotting the result
ggraph(bind_graphs(g.to.1, g.from.1), layout = 'fr') %>%
  facet_edges(~tofrom) + 
  geom_edge_link(arrow = arrow()) +
  #geom_node_point(size = 5, colour = 'steelblue') +
  #geom_node_text(aes(label = iso), colour = 'black', vjust = 0.4) +
  ggtitle('FDI From and To Dubai') +
  theme_graph(foreground = 'steelblue')

Несмотря на большое количество предупреждений, я все еще получаю граненый график.Тем не менее, на граненых графиках все еще отображаются все изоляты, несмотря на вызов filter(!node_is_isolated()) в обоих подграфах.Этого не происходит, когда я избегаю указывать опцию facet_edges.

Любая помощь будет принята с благодарностью.

...