igraph python (Jak to działa dla programistów)
Wykresy i badania nad złożonymi sieciami to podstawowe pojęcia z zakresu informatyki i matematyki, wykorzystywane do modelowania złożonych powiązań i interakcji. Węzły, czasami nazywane również wierzchołkami, oraz krawędzie, czasami określane jako połączenia, w grafie są w istocie jedynie wizualnymi reprezentacjami i interpretacjami danego obiektu oraz jego relacji, przedstawionymi za pomocą krawędzi łączących węzły.
Ogólniej rzecz biorąc, wszystkie grafy wykorzystywane w systemach transportowych, sieciach społecznościowych i sieciach komunikacyjnych są uznawane za sieci. Analizując wykresy i sieci, możemy zrozumieć i rozwiązać problemy związane z łącznością, przepływem i strukturą sieci. Taka praca zapewnia wgląd w różnorodne dziedziny, od dynamiki społecznej i struktury organizacyjnej po algorytmy służące do efektywnego wyznaczania tras i optymalizacji. Koncepcje te mają kluczowe znaczenie w teorii sieci, badaniach operacyjnych i nauce o danych.
W tym artykule wykorzystujemy igraph, aby pokazać, jak można generować wykresy sieciowe i drukować je do pliku PDF przy użyciu elastycznej i niezawodnej biblioteki IronPDF.
Czym jest igraph?
Igraph to potężny pakiet w języku Python służący do generowania, manipulowania i analizowania złożonych grafów i sieci. Zapewnia ogromny zestaw narzędzi do pracy z wykresami, od ich generowania, przez manipulację, aż po wizualizację. Python igraph ułatwia wdrażanie analizy sieciowej dzięki wielu algorytmom obliczającym różne wskaźniki centralności, najkrótszych ścieżek, struktury społeczności i nie tylko.
Biblioteka ta zapewnia zatem dobrą wizualizację dzięki adaptacyjnym układom i właściwościom dla grafów skierowanych i nieskierowanych. Igraph jest bardzo elastyczny i szybki, i często spotyka się go w aplikacjach do analizy trudnych danych relacyjnych, takich jak nauka o danych, biologia obliczeniowa i badania sieci społecznościowych.

Konfiguracja i używanie pakietu igraph dla języka Python
Aby rozpocząć pracę z podstawowymi operacjami i konfiguracjami teorii grafów w języku Python, wykonaj poniższe kroki, aby samodzielnie utworzyć, skonfigurować i używać biblioteki igraph.
Instalacja pakietu igraph
Najpierw należy zainstalować pakiet igraph. W tym celu można użyć następującego polecenia pip:
pip install igraphpip install igraphTworzenie wykresu za pomocą Igraph
Oto prosty przykład pokazujący, jak używać igraph do tworzenia i konfigurowania grafu:
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
# Print basic graph structural properties
print("Number of vertices:", g.vcount())
print("Number of edges:", g.ecount())
print("Graph summary:", g.summary())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
# Print basic graph structural properties
print("Number of vertices:", g.vcount())
print("Number of edges:", g.ecount())
print("Graph summary:", g.summary())Wynik konsoli

Konfiguracja układu i wizualizacji wykresów
Możemy narysować wykres, korzystając z niektórych wbudowanych funkcji igraph. Zmień wygląd i układ zgodnie z poniższymi wskazówkami:
# 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
)
# Save the plotted graph to a file
plot(g, layout=layout, bbox=(300, 300), margin=20).save('exampleGraph.png') # 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
)
# Save the plotted graph to a file
plot(g, layout=layout, bbox=(300, 300), margin=20).save('exampleGraph.png') Wynikowy wykres
Poniżej znajduje się prosty wykres, który został wygenerowany przy pomocy biblioteki Matplotlib oraz powiązań biblioteki Cairo z językiem Python.

Zaawansowane operacje na grafach
Wykonuj różne operacje i analizy grafów, takie jak obliczanie centralności, wyszukiwanie społeczności lub identyfikowanie najkrótszych ścieżek:
# Calculate degree centrality for each vertex
degrees = g.degree()
print("Degrees of vertices:", degrees)
# Compute shortest path between two vertices that don't 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)# Calculate degree centrality for each vertex
degrees = g.degree()
print("Degrees of vertices:", degrees)
# Compute shortest path between two vertices that don't 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)Wyniki konsoli

Przedstawiamy IronPDF

Możemy nawet generować i edytować pliki PDF programowo za pomocą modułu IronPDF for Python. Korzystając z tej biblioteki, zyskasz ogromne możliwości tworzenia dokumentów PDF z HTML, łączenia dwóch lub więcej dokumentów PDF, a nawet wykorzystywania istniejących plików PDF i modyfikowania ich w celu dodania tekstu, zdjęć i adnotacji. IronPDF umożliwia generowanie profesjonalnej jakości plików PDF z dowolnej strony HTML lub treści internetowej, nadających się do tworzenia raportów, faktur i innych dokumentów o ustalonych stylach.
Niektóre z jego zaawansowanych funkcji obejmują edycję układów stron, szyfrowanie dokumentów oraz wyodrębnianie tekstu z plików PDF. Jeśli programiści będą potrafili lepiej obsługiwać pliki PDF, pomoże im to w zwiększeniu ogólnej użyteczności Państwa produktów.
Instalacja biblioteki IronPDF
Możesz użyć poniższego polecenia, aby zainstalować pakiety, które umożliwiają interfejsowi Python korzystanie z funkcji IronPDF w Twoim projekcie:
pip install ironpdf
Integracja igraph z IronPDF
Oto kroki, które należy wykonać w języku Python, aby połączyć igraph i IronPDF: Najpierw należy utworzyć wykres za pomocą igraph i wyświetlić go. Następnie przekształć powstałą wizualizację w plik PDF.
from igraph import Graph, plot
import matplotlib.pyplot as plt
from ironpdf import ImageToPdfConverter, License
import warnings
# Suppress warnings for cleaner output
warnings.filterwarnings('ignore')
# Ensure that you have replaced 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 graph with specified layout and styles
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 the plot as a PNG image
plt.savefig('result.png')
# Convert the image to a PDF file
ImageToPdfConverter.ImageToPdf('result.png').SaveAs("result.pdf")from igraph import Graph, plot
import matplotlib.pyplot as plt
from ironpdf import ImageToPdfConverter, License
import warnings
# Suppress warnings for cleaner output
warnings.filterwarnings('ignore')
# Ensure that you have replaced 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 graph with specified layout and styles
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 the plot as a PNG image
plt.savefig('result.png')
# Convert the image to a PDF file
ImageToPdfConverter.ImageToPdf('result.png').SaveAs("result.pdf")Ten skrypt wygeneruje wykres za pomocą igraph, zwizualizuje go za pomocą matplotlib, a następnie użyje IronPDF do przekształcenia wykresu w plik PDF. Ten kod zaimportuje wszystkie niezbędne biblioteki i skonfiguruje IronPDF za pomocą klucza licencyjnego. Utwórz pusty graf z pięcioma wierzchołkami i sześcioma krawędziami oraz dodaj wagi i etykiety dla większej przejrzystości.
Wykres ma układ kołowy, a do jego wygenerowania wykorzystano bibliotekę matplotlib z kilkoma właściwościami wizualizacji, takimi jak kolor i rozmiar wierzchołków oraz szerokość kresek krawędzi. Następnie wynik — w postaci pliku graficznego, result.png, zostaje zapisany. Na koniec jest on przekształcany do formatu PDF, result.pdf, za pomocą narzędzia ImageToPdfConverter firmy IronPDF. Tworzenie wykresów, wizualizacja i generowanie plików PDF są połączone w jeden proces.
Wynikowy plik PDF

Licencjonowanie
Aby kod działał bez znaku wodnego, potrzebny jest klucz licencyjny. Możesz zarejestrować się, aby uzyskać bezplatną licencję probną, klikając ten link. Należy pamiętać, że można zarejestrować się bez podawania dowodu tożsamości. Aby zarejestrować się w bezpłatnej wersji próbnej, wystarczy podać swój adres e-mail.

Wnioski
Dzięki możliwościom IronPDF i igraph możesz tworzyć rozwiązania do wizualizacji i prezentacji złożonych danych graficznych. Dzięki igraph można łatwo tworzyć i analizować złożone sieci, a IronPDF pozwala na płynną konwersję wizualizacji danych do profesjonalnych dokumentów PDF. Połączenie tych możliwości pomoże Ci tworzyć kompleksowe raporty, zawierające zarówno analizy graficzne, jak i wizualne przedstawienia.
Ta integracja umożliwia tworzenie różnych aplikacji wymagających kompleksowej dokumentacji sieciowej, w tym badań naukowych, analiz biznesowych i raportowania opartego na danych. Ponadto łączy wysoką jakość generowanych dokumentów z bardzo zaawansowanymi możliwościami manipulacji wykresami. Co więcej, Iron Software oferuje wiele bibliotek, ułatwiających tworzenie aplikacji na różne platformy i systemy operacyjne, takie jak Windows, Android, MAC, Linux i inne.










