Altbilgi içeriğine atla
PYTHON YARDıM

igraph python (Geliştiriciler İçin Nasıl Çalışir)

Grafikler ve karmaşık ağ araştırmaları, karmaşık bağlantıları ve etkileşimleri modellemekte kullanılan bilgisayar bilimi ve matematik temel kavramlardir. Grafiklerin dugumleri, bazen de vertex olarak adlandirilir, ve kenarlari, bazen baglanti olarak adlandirilir, aslinda bir varlik ve onun iliskilerinin sadece gorunur temsilleri ve yorumlamalaridir, dugumleri baglayan kenarlar yoluyla gösterilir.

Daha genellikle, tüm tasima sistemleri, sosyal aglar ve iletisim agirleri icin kullanilan grafikler aglar olarak kabul edilir. Grafiklere ve aglara bakarak, baglanti, akis ve ag yapisiyla ilgili sorunlari anlayip ustesinden gelebiliriz. Boyle bir calisma, sosyal dinamikler ve organizasyon yapisindan verimli rota bulma ve optimizasyon icin algoritmalara kadar farkli alanlara icgoru saglar. Bu kavramlar, ag teorisi, isletme araştırmalari ve veri biliminde çok merkezi oneme sahiptir.

Bu makalede, ag grafiklerini nasıl oluşturarak bunları esnek ve güvenilir IronPDF kütüphanesi ile bir PDF dosyasına nasıl yazdirabileceginizi göstermek icin igraph kullanıyoruz.

igraph nedir?

Igraph, karmaşık grafikler ve ağlar oluşturma, dönüştürme ve analiz etme icin guclu bir Python paketidir. Grafiklerle basa cikmak icin buyuk bir arac seti sunar, oluşturmadan manipulasyona ve görüntülemeye kadar. Python igraph, merkeziyetlik, en kisa yollar, topluluk yapisi ve daha bircok degisken metrikleri hesaplayan bircok algoritma araciligiyla ag analizi uygulamasini kolaylastirir.

Bu kutuphane, yonlendirilmis ve yonlendirilmemis grafikler icin uyarlanabilir duzenler ve özelliklerle iyi gorunum saglar. Igraph çok esnek ve hizlidir ve veri bilimi, hesaplamali biyoloji ve sosyal ag calismalari gibi zor iliski verilerinin analizinde genellikle kullanilir.

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 1 - Igraph web sayfası

igraph Python Paketini Kurmak ve Kullanmak

Python'da temel grafik teorisi işlemleri ve konfigürasyonlari icin başlamak icin, igraph'i oluşturup, ayarlayip ve kendi basina kullanmak icin asagidaki adimlari kullanin.

igraph Paketini Kurmak

Oncelikle igraph paketini kurmanız gerekiyor. Bunun icin asagidaki pip komutu kullanilabilir:

pip install igraph
pip install igraph
SHELL

Igraph Kullanarak Grafik Oluşturma

Iste size igraph kullanarak nasıl grafik oluşturup ayarlayacaginizi gösteren basit bir örnek:

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())
PYTHON

Konsol Çıkışı

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 2 - Kod örneğinden konsol çıkışı

Grafik Duzeni ve Görüntüleme Ayarlari

Igraph'in bazi yerlesik özelliklerini kullanarak grafiği çizebiliriz. Gorunumunu ve duzenini asagidakilerle değiştirin:

# 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') 
PYTHON

Cikti Grafik

Aşağıda Matplotlib kütüphanesinin yardımıyla ve Cairo kütüphanesinin Python baglamalariyla uretilmis basit grafik görüntüsu yer almaktadır.

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 3 - Çıktılanan grafik

Ileri Seviyede Grafik İşlemleri

Merkeziyet hesaplama, topluluk bulma veya en kisa yollarin tespit edilmesi gibi çeşitli grafik işlemleri ve analizleri gerceklestirin:

# 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)
PYTHON

Konsol Ciktilari

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 4 - Önceki hesaplamalardan konsol çıkışı

IronPDF'i Tanıtma

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 5 - IronPDF web sayfası

Hatta IronPDF Python modulu kullanarak programatik olarak PDF'ler oluşturup duzenleyebilirsiniz. Bu kutuphane ile, HTML'den PDF belgeleri oluşturmak, iki veya daha fazla PDF belgesini birlestirmek ve var olan PDF'leri kullanarak metin, fotoğraflar ve yorumlar ekleyerek değiştirmek için büyük bir yeteneğiniz olacak. IronPDF, raporlar, faturalar ve sabit stillere sahip diğer belgeler icin uygun olan herhangi bir HTML sitesi veya Web iceriğinden profesyonel kalitede PDF'ler üretmenizi sağlar.

Bazi gelişmiş özellikleri, sayfa duzenini duzenleme, belge sifreleme ve bir PDF'ten metin cikarma gibi işlemleri icerir. Eger PDF'leri daha iyi ele alabilirlerse, geliştiricilerin urunlerinin genel yararliliğini iyileştirmek için daha iyi bir konumda olmalarına yardimci olacaktir.

IronPDF Kütüphanesini Yükleme

IronPDF yeteneklerini projenize aktif etmek icin Python arabirimini saglayan alttaki paketlerini kurmak icin asagidaki komutu kullanabilirsiniz:

pip install ironpdf

igraph ile IronPDF'i Entegre Etmek

Python'da igraph ve IronPDF'u birlestirmek icin izleyeceginiz adimlar bunlar: Once igraph ile bir grafik oluşturup gösteriyorsunuz. Ardindan ortaya cikan görselleştirmeyi bir PDF haline getirin.

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")
PYTHON

Bu script, igraph ile bir grafik oluşturacak, matplotlib ile görüntüleyecek ve daha sonra IronPDF kullanarak grafiği bir PDF'e dönüştürecektir. Bu kod, gerekli tüm kutuphaneleri içe aktaracak ve bir lisans anahtari ile IronPDF'i ayarlayacaktir. Bes dugumlu ve altı kenarlı bos bir grafik oluşturun ve netlik icin agirlik ve etiketler ekleyin.

Grafik, dairesel olarak yerleştirilmiş ve çizim işlemi, matplotlib ile birkac görüntüleme ozelliği içermektedir, örneğin dugum rengi ve boyutu ile kenar çizgi genişlikleri. Bundan sonra, sonuç bir resim dosyası olarak result.png kaydedilir. Son olarak, IronPDF'nin ImageToPdfConverter ile bir PDF'ye, result.pdf, dönüştürülür. Graf oluşturma, görselleştirme ve PDF üretimi tek bir iş akışında birleştirilmiştir.

Çıktı PDF

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 6 - Çıktılanan PDF

Lisanslama

Kodun filigran olmadan çalışabilmesi için bir lisans anahtarı gereklidir. Ücretsiz deneme lisansı için bu linkten kayıt olabilirsiniz. Kimlik belgesi vermeden kayıt olabileceğinizi unutmayın. Ücretsiz deneme sürümüne kayıt olmak için tek yapmanız gereken e-posta adresinizi girmektir.

igraph python (Geliştiriciler için Nasıl Çalışır): Şekil 7 - IronPDF lisanslama planı

Sonuç

IronPDF ve igraph'ın gücüyle, karmaşık grafik verilerini görselleştirmek ve sunmak için çözümler geliştirebilirsiniz. iGraph ile karmaşık ağlar oluşturabilir ve analiz edebilir, IronPDF kullanarak veri görselleştirmelerini profesyonel derece PDF belgelerine naftalane dönüştürmeler yapabilirsiniz. Bu birleşik güçler, grafik analizlerini ve görsel temsilleri içeren kapsamlı raporlar geliştirmenize yardımcı olacaktır.

Bu entegrasyon, akademik araştırmalar, iş analitiği ve veri odaklı raporlama da dahil olmak üzere kapsamlı ağ dokümantasyonu talep eden çeşitli uygulamaların geliştirilmesine olanak tanır. Üstelik, yüksek kaliteli belge çıktısını grafiklerle çok güçlü manipülasyon yetenekleriyle birleştirir. Bunun yanında, Iron Software, Windows, Android, MAC, Linux gibi çeşitli platformlar ve işletim sistemleri için uygulama geliştirmeyi kolaylaştıran çok sayıda kütüphane sağlar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara