2017-02-23 69 views
0

У меня xlsx содержит около 2000+ узлов и 9000 ребер. И я хочу создать явный направленный граф. Я попробовал igraph пакет в R, чтобы создать ориентированный граф, который я хочу, но (1) слишком много узлов и краев для печати ясно. Я ссылаюсь на некоторые документы, которые используют networkd3 для преобразования igraph в networkd3 и plot, но (2) направление (стрелки) потеряны. Не могли бы вы помочь мне в этой постановке? Либо (1) или (2) коды .my Belows, и мой формат данных, как цели edges1.xlsx источника атр s1 s2 s2 s7 б S2 S3 сСложно создать ориентированный граф с igraph и networkd3

nodes1.xlsx ID атр s1 s2 с s3 d s4 с

library(readxl) 
library(igraph) 
links <- read_excel("C:\\Users\\file\\Desktop\\1W\\edges1.xlsx",sheet=1,col_names = TRUE) 
nodes <- read_excel("C:\\Users\\file\\Desktop\\1W\\nodes1.xlsx",sheet=1,col_names = TRUE) 
net <- graph_from_data_frame(d=links,vertices=unique(nodes$JYZH),directed = T) 
plot(net, vertex.color="orange",vertex.size=.1,vertex.label=NA,vertex.label.color="black",vertex.label.dist=0,edge.arrow.size=.01) 
#above work well with my data format but because it is too many nodes(2000+) and edges(9000+) to print clearly 
library(networkD3) 

#Use igraph to make the graph and find membership 
wc <- cluster_walktrap(net) 
members <- membership(wc) 

#Convert to object suitable for networkD3 
net_d3 <- igraph_to_networkD3(net,group = members) 
forceNetwork(Links = net_d3$links, Nodes = net_d3$nodes, 
     Source = 'source', Target = 'target', NodeID = 'name',Group = 'group', zoom = TRUE) 
#using above code of networkd3,the direction lost..... 

есть ли какое-либо решение, чтобы решить эти проблемы?

ответ

1
  1. Сетевой граф с 2000 + узлами и 9000 ребрами будет беспорядочным независимо от того, какое программное обеспечение вы используете для его создания. На что вы надеетесь, будет отличаться, если вы построите его с помощью networkD3?

  2. ОБНОВЛЕНИЕ (2017.03.24): Эта функция (с помощью стрелок, чтобы показать направление ребер/ссылок) находится в самой последней выпущенной версии (0.4) из networkD3 с arrows = TRUE аргумента forceNetwork().

+1

Кроме того, вы знаете, что с использованием 'networkD3' для построения сетевого графика с 2000+ узлами и 9000 ссылками будет очень медленно и (возможно) практически непригодным для использования. Вы обязательно должны открыть его в окне браузера (в отличие от просмотра на вкладке «Просмотр» RStudio), чтобы иметь * любой шанс на возможность взаимодействия с ним. –

+0

Я люблю «networkD3». Спасибо вам и другим за это! – p0bs

+0

Спасибо Yetman.You спаси меня.Для проблемы 1, да, я хочу использовать networkd3 для представления четкой сети. Конечно, как вы упомянули, я потерпел неудачу. График, сгенерированный networkd3, медленно. Фактически у меня есть 1 миллион + узлов представлять. Какая вычислительная мощность может справиться с этим: мэйнфрейм IBM или облако? 2. Я попытаюсь обновить версию devleop, чтобы добавить на стрелки. Большое вам спасибо за то, что вы улучшили пакет. Мне нравится it.Plus. Неужели нет возможности четко представить столько узлов? –

Смежные вопросы