AIDE PYTHON

igraph python (Comment ça fonctionne pour les développeurs)

Introduction

Les graphes et la recherche sur les réseaux complexes sont des notions fondamentales en informatique et en mathématiques utilisées pour modéliser des liaisons et interactions complexes. Les nœuds, parfois également appelés sommets, et les arêtes, parfois désignées comme des liens, d'un graphe, sont, en essence, simplement des représentations et interprétations visuelles d'une entité et de ses relations, qui sont montrées à travers les arêtes qui relient les nœuds.

Plus généralement, tous les graphes utilisés pour les systèmes de transport, les réseaux sociaux et les réseaux de communication sont considérés comme des réseaux. En regardant les graphes et les réseaux, nous pouvons comprendre et surmonter les problèmes liés à la connectivité, au flux, et à la structure du réseau. Un tel travail fournit un aperçu d'une diversité de domaines, allant des dynamiques sociales et de la structure organisationnelle aux algorithmes pour le routage et l'optimisation efficaces. Ces concepts sont très centraux dans la théorie des réseaux, la recherche opérationnelle et la science des données.

Dans cet article, nous utilisons igraph pour montrer comment vous pouvez générer des graphes de réseau et les imprimer dans un fichier PDF en utilisant la bibliothèque flexible et fiable IronPDF.

Qu'est-ce qu'igraph ?

Igraph est un puissant package Python pour générer, manipuler et analyser des graphes et réseaux complexes. Il offre un ensemble d'outils énorme pour traiter les graphes, allant de leur génération à leur manipulation et à leur visualisation. igraph en Python facilite la mise en œuvre de l'analyse des réseaux grâce à de nombreux algorithmes calculant diverses métriques de centralité, de chemins les plus courts, de structure communautaire, et bien plus encore.

Cette bibliothèque offre ainsi une bonne visualisation avec des dispositions adaptatives et des propriétés pour les graphes orientés et non orientés. Igraph est très flexible et rapide et se retrouve souvent dans des applications pour l'analyse de données relationnelles complexes, comme en science des données, en biologie computationnelle et dans les études de réseaux sociaux.

python igraph (Comment cela fonctionne pour les développeurs) : Figure 1 - Page Web Igraph

Configuration et utilisation du package Python igraph

Pour commencer avec les opérations et configurations fondamentales de la théorie des graphes en Python, suivez les étapes suivantes pour créer, configurer et utiliser igraph par vous-même.

Installation du paquet igraph

Vous devez d'abord installer le package igraph. La commande pip suivante peut être utilisée pour cela :

pip install igraph
pip install igraph
SHELL

Création d'un graphique à l'aide de Igraph

Voici un exemple simple pour vous montrer comment utiliser igraph pour construire et configurer un graphe :

from igraph import Graph, plot
# Create an empty graph
g = Graph()
# Add vertices (nodes)
g.add_vertices(5)  # Adding 5 vertices
# Add edges (connections between vertices)
g.add_edges([(0, 1), (1, 2), (2, 3), (3, 4), (4, 0), (0, 2)])  # Adding edges
# Add vertex ids and edge attributes
g.vs["name"] = ["A", "B", "C", "D", "E"]  # Vertex labels
g.es["weight"] = [1, 2, 3, 4, 5, 6]  # Edge weights
# Basic graph structural properties 
print("Number of vertices:", g.vcount())
print("Number of edges:", g.ecount())
print("Graph summary:", g.summary())
py
PYTHON

Sortie de la console

igraph python (Comment cela fonctionne pour les développeurs) : Figure 2 - Sortie console de l'exemple de code

Configurer la mise en page et la visualisation des graphiques

Nous pouvons tracer le graphique en utilisant certaines des fonctionnalités intégrées d'igraph. Modifiez l'apparence et la disposition avec ce qui suit :

# Define a layout for the graph
layout = g.layout("circle")  # Layout in a circular arrangement
# Plot the graph with labels and custom options
plot(
    g,
    layout=layout,
    vertex_label=g.vs["name"],  # Label vertices
    vertex_color="lightblue",    # Vertex color
    edge_width=g.es["weight"],   # Edge width based on weight
    vertex_size=30,              # Vertex size
    edge_color="grey",           # Edge color
    bbox=(300, 300),             # Size of the plot
    margin=20                    # Margin around the plot
)
g.savefig('exampleGraph.png') # You can also save to many file formats
py
PYTHON

Graphique généré

Ci-dessous se trouve l'image du graphe simple qui a été générée à l'aide de la bibliothèque Matplotlib et avec l'aide des liaisons Python de la bibliothèque Cairo.

igraph python (Comment ça fonctionne pour les développeurs) : Figure 3 - Graphe produit

Opérations Avancées sur les Graphes

Effectuez diverses opérations et analyses de graphes, telles que le calcul de la centralité, la recherche de communautés ou l'identification des chemins les plus courts :

# Calculate degree centrality for each vertex
degrees = g.degree()
print("Degrees of vertices:", degrees)
# Compute shortest path between two vertices that dont have a predefined 
# distance
shortest_path = g.shortest_paths_dijkstra(source=0, target=3)
print("Shortest path from vertex 0 to 3:", shortest_path)
# Detect communities using the Louvain method
communities = g.community_multilevel()
print("Detected communities:", communities)
py
PYTHON

Sorties de console

igraph python (Comment cela fonctionne pour les développeurs) : Figure 4 - Sortie de la console des calculs précédents

Présentation d'IronPDF

igraph python (Comment cela fonctionne pour les développeurs) : Figure 5 - page web de IronPDF

Nous pouvons même générer et modifier des PDF par programmation en utilisant le module Python IronPDF. En utilisant cette bibliothèque, vous aurez une capacité énorme pour créer des documents PDF à partir de HTML, fusionner deux ou plusieurs documents PDF et même utiliser des PDF existants et les modifier pour inclure du texte, des photos et des annotations. IronPDF vous permet de générer des PDF de qualité professionnelle à partir de n'importe quel site HTML ou contenu Web utilisable pour générer des rapports, des factures et d'autres documents avec des styles prédéfinis.

Certaines de ses fonctionnalités avancées incluent l'édition de mises en page, le cryptage de documents et l'extraction de texte à partir d'un PDF. Cela aidera les développeurs à être mieux placés pour améliorer l'utilité générale de vos produits s'ils peuvent mieux gérer les PDF.

Installation de la bibliothèque IronPDF

Vous pouvez utiliser la commande suivante pour installer les packages qui permettent à l'interface Python d'activer les capacités de IronPDF pour votre projet :

pip install ironpdf
pip install ironpdf
SHELL

Intégration d'igraph avec IronPDF

Voici les étapes à suivre en Python pour fusionner igraph et IronPDF : Tout d'abord, vous allez créer un graphique avec igraph et l'afficher. Ensuite, convertissez la visualisation résultante en PDF.

from igraph import Graph, plot
import matplotlib.pyplot as plt
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
# Ensure that you have replaces the string with your own license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE";
# Create an empty graph
g = Graph()
# Add adjacent vertices (nodes)
g.add_vertices(5)  # Adding 5 vertices
# Add edges (connections between vertices)
g.add_edges([(0, 1), (1, 2), (2, 3), (3, 4), (4, 0), (0, 2)])  # Adding edges
# Add vertex and edge attributes
g.vs["name"] = ["A", "B", "C", "D", "E"]  # Vertex labels
g.es["weight"] = [1, 2, 3, 4, 5, 6]  # Edge weights
# Define a layout for the graph
layout = g.layout("circle")  # Layout in a circular arrangement
# Create a plot using matplotlib
fig, ax = plt.subplots()
# Plot the geometric random graph
plot(
    g,
    target=ax,
    layout=layout,
    vertex_label=g.vs["name"],  # Label vertices
    vertex_color="lightblue",    # Vertex color
    edge_width=g.es["weight"],   # Edge width based on weight
    vertex_size=30,              # Vertex size
    edge_color="grey",           # Edge color
    bbox=(300, 300),             # Size of the plot
    margin=20                    # Margin around the plot
)
# save in different file formats
plt.savefig('result.png')
ImageToPdfConverter.ImageToPdf('result.png').SaveAs("result.pdf")
py
PYTHON

Ce script générera un graphique via igraph, à visualiser avec matplotlib, puis IronPDF sera utilisé pour convertir le graphique en PDF. Ce code importera toutes les bibliothèques nécessaires et configurera IronPDF avec une clé de licence. Créer un graphe vide avec cinq sommets et six arêtes et ajouter des poids et des étiquettes pour plus de clarté.

Le graphique est ensuite disposé de manière circulaire, et la visualisation implique matplotlib avec plusieurs propriétés, comme la couleur du sommet et sa taille, ainsi que la largeur des lignes des arêtes. Après cela, le résultat, en tant que fichier image, result.png, est enregistré. Enfin, il est transformé en un PDF, result.pdf, avec l'ImageToPdfConverter d'IronPDF. La création de graphiques, la visualisation et la production d'un PDF sont combinées en un seul flux de travail.

PDF édité

igraph python (Comment cela fonctionne pour les développeurs) : Figure 6 - PDF généré

Licences

Une clé de licence est nécessaire pour permettre au code de fonctionner sans filigrane. Vous pouvez vous inscrire pour une licence d'essai gratuite à ce lien. Notez que vous pouvez vous inscrire à un sans fournir de preuve d'identité. Tout ce que vous devez faire pour vous inscrire à la version d'essai gratuite est de saisir votre adresse e-mail.

igraph python (Comment cela fonctionne pour les développeurs) : Figure 7 - Plan de licence IronPDF

Conclusion

Avec la puissance de IronPDF et igraph, vous pouvez développer des solutions pour visualiser et présenter des données de graphe complexes. Avec igraph, vous pouvez facilement créer et analyser des réseaux complexes, tout en utilisant IronPDF pour la conversion fluide des visualisations de données en documents PDF de qualité professionnelle. Ces forces combinées vous aideront à développer des rapports complets, y compris des analyses graphiques et des représentations visuelles.

Cette intégration permet le développement de diverses applications nécessitant une documentation réseau complète, y compris la recherche académique, l'analyse commerciale et les rapports basés sur les données. De plus, il combine une sortie de documents de haute qualité avec des capacités de manipulation très puissantes avec des graphiques. En plus de tout cela, Iron Software propose une multitude de bibliothèques, ce qui facilite le développement d'applications pour une gamme de plateformes et de systèmes d'exploitation tels que Windows, Android, MAC, Linux, et d'autres.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
imageio python (Comment cela fonctionne pour les développeurs)
SUIVANT >
Stellargraph Python (Comment ça fonctionne pour les développeurs)