Visualizando um Gráfico com um Milhão de Vértices


17

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?


você pode tentar Graphviz ... não tenho certeza se ele pode ser expandido até milhões de vértices ....
Debasis

Esperemos que uma resposta a esta pergunta pode tocar em como gráficos como estes foram feitas: medium.com/i-data/...
shadowtalker

Olá @Cici, geralmente perguntas sobre as ferramentas recomendadas são desencorajadas neste e em outros sites da SE, pois apenas convidam muita opinião.
Sean Owen

Respostas:


19

Eu também sugiro Gephisoftware ( https://gephi.github.io ), que parece ser bastante poderoso. Algumas informações adicionais sobre o uso Gephicom redes grandes podem ser encontradas aqui e, de maneira mais geral, aqui . Cytoscape( http://www.cytoscape.org ) é uma alternativa a Gephi, 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 igraphcoleçã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 .


8

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"


8

Eu acho que isso Gephipode 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 GraphVizgráficos enormes, mas não obtive sucesso. Embora eu tenha encontrado uma discussão semelhante sobre Ciência da Computação .


4

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.


2

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.


2

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


Verdade? para mim, começa a engasgar ao tentar mostrar mais de 100 vértices
BrDaHa 18/09/19

A velocidade depende principalmente do banco de dados de back-end e da capacidade de computação. Graphexp é apenas interface do usuário.
Sandeep Kumar 19/09

Sei disso, mas com "afogamento", quero dizer que a taxa de atualização cairia para 1-2 fps ao animar os nós que aparecem na tela. Pode ser útil notar que isso está em uma versão recente do Safari
BrDaHa

0

Dê uma olhada no Graphistry , eles podem lidar com nós e arestas 1Mil.


Sim, o Graphistry é a única ferramenta visual interativa para gráficos grandes, porque executa de ponta a ponta em GPUs para você.
Leo Meyerovich
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.