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?

Cici
fonte
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 .

Aleksandr Blekh
fonte
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"

Spacedman
fonte
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 .

sobach
fonte
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.

Cici
fonte
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.

shadowtalker
fonte
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

Sandeep Kumar
fonte
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.

Scott
fonte
Sim, o Graphistry é a única ferramenta visual interativa para gráficos grandes, porque executa de ponta a ponta em GPUs para você.
Leo Meyerovich