Como usar o IGraph no Python

Como usar o IGraph no Python

O Igraph é uma coleção de bibliotecas para criar e manipular gráficos e analisar redes. Está escrito em C e também existe como pacotes Python e R. Existe além disso uma interface para o Mathematica . O software é amplamente utilizado em pesquisas acadêmicas em ciência de redes e áreas afins. A publicação que introduz o software tem 1268 citações em 5 de junho de 2015 de acordo com o Google Scholar .

O Igraph foi desenvolvido por Gábor Csárdi e Tamás Nepusz. O código fonte dos pacotes igraph foi escrito em C. igraph está disponível gratuitamente sob a GNU General Public License Version 2.   Resumindo, se você quer manipular grafos e visualiza-los o igraph é uma excelente ferramenta e pode te ajudar muito em seus projetos.  

Getting Started

A primeira coisa que gostaria de abordar nesse tutorial é a instalação, pessoalmente tive alguns problemas com algumas dependências e gostaria de compartilhar um passo a passo que pode ser útil pra você.    Primeiramente eu estou utilizando Windows 10 64 bits, ou seja, se você é usuário Linux talvez você não tenha os mesmos problemas.

O primeiro passo é instalar o igraph para python com o comando:   pip install python-igraph   uma dependência do igraph é o cairo, sendo assim, você precisará fazer download dela:   pip install pycairo   Caso você utilize o Anaconda (que recomendo muito mesmo) você pode executar os comandos:   conda install -c vtraag python-igraph   conda install -c anaconda cairo   Após ter instalado essas bibliotecas você poderá abrir seu editor de texto Python preferido e começar a diversão.  

Criando o “hello grafo”

O primeiro grafo é importantíssimo para simplesmente testar seu ambiente e também compreender como é a sintaxe básica para construção de grafos. Sendo assim, em um arquivo Python digite o seguinte código:  



from igraph import *

g = Graph()
g.add_vertices(4)
g.add_edges([(1,2),(2,3),(0,3)])
plot(g)

      Ao executar esse grafo teremos o seguinte resultado:  

Exemplo de grafo feito com o Igraph

Adicionando labels aos vértices do grafo

Cada grafo tem suas especificidades, vale a pena olhar a documentação e ver como cada função pode alterar características do grafo. No exemplo a seguir, definimos um grafo e logo após colocamos os nós com a cor branca e adicionamos Labels a esse grafo. 

g = Graph()  
g.add_vertices(4)  
g.add_edges([(1,2),(2,3),(0,3)])  
plot(g, vertex_label=["A", "B", "C", "D"], vertex_color="white")  
Exemplo de grafo com Labels
Exemplo de grafo com Labels

Adicionando peso aos relacionamentos do grafo

O ultimo exemplo é realizando a adição de pesos nas linhas do grafo. Isso pode demonstrar o peso das ligações entre os nós.  


eG=Graph(directed=False)
eG.add_vertices(6)
eG.add_edges([(0,1),(1,2),(2,3),(3,4),(3,5),(5,3)])
eG.es['weight']=[12,1,2,3,4,1]

layout = eG.layout("kk")

visual_style = {}
visual_style["vertex_size"] = 20
visual_style["vertex_label"] = ["a","b","c","d","e","f"]
visual_style["edge_width"] = eG.es['weight']
visual_style["bbox"] = (300, 300)


plot(eG, **visual_style)

Exemplo de grafo com pesos nas arestas
Exemplo de grafo com pesos nas arestas

Vinicius dos Santos

Apenas um apaixonado por Ciência da Computação e forma com que ela pode transformar vidas!

Deixe uma resposta