Graph Theory - Python ile Kullanımı

Düğüm ve Kenar Ekleme/Çıkarma İşlemleri

Yayın tarihi :25-Oca-22

1. Düğümer(Nodes)

Düğümler başlığı altında anlatılan konularda kullanılmak üzere kullanılacak kütüphaneler içeri aktarıldı.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

import networkx as nx

1.1. Tek bir düğüm ekleme: Grafik içerisine tek bir düğüm noktası eklemek için add_node() ifadesi kullanılır.

#G adında grafik oluştur
G=nx.Graph()
#Grafik içinde A adında bir düğüm oluştur
G.add_node("A")

Şuan G adında içerisinde "A" düğümümün oluştuğu bir grafik oluşturulmuş oldu. Bu grafiği görüntüleyebilmek için networkx kütüphanesi altında bulunan draw_networkx() ifadesi kullanılır.

#Oluşturulan grafiği çizdir
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

#B, C, D adında 3 tane daha düğüm ekleyelim
G.add_node("B")
G.add_node("C")
G.add_node("D")
#Oluşturulan grafiği çizdir
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

Son durumda bir grafik içerisinde 4 tane düğüm oluşmuş oldu. 

1.2. Liste halinde düğüm ekleme: Grafik içerisine liste halinde düğüm noktaları eklemek için add_nodes_from() ifadesi kullanılır.

#G adında grafik oluştur
G=nx.Graph()
myList=["A","B","C","D","E","F"]
G.add_nodes_from(myList)
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

1.3. Başka bir grafikteki düğümleri ekleme: Grafik içerisine başka bir grafikte bulunan düğümleri eklemek için add_nodes_from() ifadesi kullanılır.

#1. Grafik
A=nx.Graph()
A.add_nodes_from([1,2,3])
plt.figure()
nx.draw_networkx(A,with_labels=True)

Çıktı:

#2. Grafik
G=nx.Graph()
G.add_nodes_from(["A","B","C","D","E","F"])
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

#1. ve 2. grafik toplamı
G.add_nodes_from(A)
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

1.4. Grafikteki düğümleri çıkarma: Grafik içerisine bulunan düğüm(leri) silmek için remove_node() veya remove_nodes_from() ifadeleri kullanılır.

#Grafik oluşturuldu
G=nx.Graph()
G.add_nodes_from(["A","B","C","D","E","F"])
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

#A düğümü kaldırıldı
G.remove_nodes_from("A")
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

#B ve C düğümleri kaldırıldı
G.remove_nodes_from(["B","C"])
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

2. Kenarlar(Edges)

Kenarlar başlığı altında anlatılan konularda kullanılmak üzere kullanılacak kütüphaneler içeri aktarıldı.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

import networkx as nx

2.1. Tek bir kenar ekleme: Grafik içerisine tek bir kenar eklemek için add_edge() ifadesi kullanılır.

#G adında grafik oluşturuldu
G=nx.Graph()
#A-E aralığında düğüm eklendi
G.add_nodes_from(["A","B","C","D","E"])
#kenar ekleme işlemi "İlk düğüm","İkinci düğüm","Ağırlığı"
G.add_edge("A","B",weight=8)
G.add_edge("A","C",weight=12)
G.add_edge("A","E",weight=9)
G.add_edge("E","D",weight=9)
G.add_edge("C","D",weight=9)
G.add_edge("B","C",weight=19)
#Grafik görseli
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

2.2. Liste halinde kenar ekleme: Grafik içerisine liste halinde kenar eklemek için add_edges_from() veya ağırlık da ifade edilecekse add_weighted_edges_from() ifadeleri kullanılır.

#G adında grafik oluşturuldu
G=nx.Graph()
#A-E aralığında düğüm eklendi
G.add_nodes_from(["A","B","C","D","E"])
#kenar ekleme işlemi "İlk düğüm","İkinci düğüm","Ağırlığı"
G.add_weighted_edges_from([("A","C",12),("A","E",11),("E","D",10),("C","B",4),("D","B",9)])
#Grafik görseli
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

2.3. Grafikteki kenarları çıkarma: Grafik içerisine bulunan düğümlerin kenarlarını silmek için remove_edge() veya remove_edges_from() ifadeleri kullanılır.

#G adında grafik oluştur
G=nx.Graph()

#A-E aralığında düğüm eklendi
G.add_nodes_from(["A","B","C","D","E"])

#kenar ekleme işlemi "İlk düğüm","İkinci düğüm","Ağırlığı"
G.add_edge("A","B",weight=8)
G.add_edge("A","C",weight=12)
G.add_edge("A","E",weight=9)
G.add_edge("E","D",weight=9)
G.add_edge("C","D",weight=9)
G.add_edge("B","C",weight=19)

plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

#A-B arasındaki kenar kaldırıldı
G.remove_edge("A","B")
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

#C-B ve C-A arasındaki kenar kaldırıldı
G.remove_edges_from([("C","B"),("C","A")])
plt.figure()
nx.draw_networkx(G,with_labels=True)

Çıktı:

Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.