Qual é a melhor ferramenta a ser usada para visualizar (desenhar os vértices e arestas) um gráfico com 1000000 vértices? Existem cerca de 50000 arestas no gráfico. E posso calcular a localização de vértices e arestas individuais.
Estou pensando em escrever um programa para gerar um svg. Alguma outra sugestão?
visualization
graphs
Cici
fonte
fonte
Respostas:
Eu também sugiro
Gephi
software ( https://gephi.github.io ), que parece ser bastante poderoso. Algumas informações adicionais sobre o usoGephi
com redes grandes podem ser encontradas aqui e, de maneira mais geral, aqui .Cytoscape
( http://www.cytoscape.org ) é uma alternativa aGephi
, sendo outra plataforma popular para análise e visualização complexas de redes.Se você deseja trabalhar com redes de forma programática (incluindo visualização) em R, Python ou C / C ++, pode verificar a
igraph
coleção de bibliotecas. Falando em R, você pode achar interessantes as seguintes postagens: no uso de R com Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) e no uso de R com Gephi ( http://www.vesnam.com/ Rblog / viznets2 ).Para obter listas extensas de software de análise e visualização de rede , incluindo algumas comparações e revisões, consulte as seguintes páginas: 1) http://wiki.cytoscape.org/Network_analysis_links ; 2) http://www.kdnuggets.com/software/social-network-analysis.html ; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review .
fonte
https://gephi.github.io/ diz que pode lidar com um milhão de arestas. Se o seu gráfico tiver 1000000 vértices e apenas 50000 arestas, a maioria dos vértices não terá arestas.
De fato, a especificação Gephi é o duplo do seu exemplo: "Redes de até 50.000 nós e 1.000.000 de bordas"
fonte
Eu acho que isso
Gephi
pode enfrentar problemas de falta de memória, você precisará de pelo menos 8 GB de RAM. Embora o número de arestas não seja extremamente grande.Possivelmente, ferramenta mais apropriada nesse caso seria
GraphViz
. É uma ferramenta de linha de comando para visualizações de rede e, presumivelmente, seria mais tolerante ao tamanho do gráfico. Além disso, como me lembro,GraphViz
é possível usar coordenadas pré-computadas para facilitar os cálculos.Tentei encontrar exemplos reais do uso de
GraphViz
gráficos enormes, mas não obtive sucesso. Embora eu tenha encontrado uma discussão semelhante sobre Ciência da Computação .fonte
Relatando: acabei codificando graphml e usando o yEd para visualização (só porque estou familiarizado com essa combinação. Aposto que gephi ou graphviz funcionaria bem e talvez até melhor). Desde que eu calculei a localização de todos os nós, a memória não era um problema tão grande. A codificação do graphml é um pouco mais fácil comparada à codificação do svg, pois não preciso especificar explicitamente o posicionamento das arestas.
fonte
O PajekXXL foi projetado para lidar com redes enormes. Mas Pajek também é uma espécie de programa bizarro com uma interface não intuitiva.
fonte
Eu recomendaria usar o Graphexp. O Gephi é altamente dependente da RAM do seu computador, o que é obviamente limitado. O Graphexp, por outro lado, exibe apenas um número limitado de nós, através dos quais você pode navegar para outros nós. Visualizei um gráfico com 700 milhões de vértices usando o Graphexp como interface do usuário e o Janusgraph com o HBase como armazenamento de back-end. https://github.com/bricaud/graphexp
fonte
Dê uma olhada no Graphistry , eles podem lidar com nós e arestas 1Mil.
fonte