Graph Theory - Python ile Kullanımı

Veri setleri ile kullanımı

Yayın tarihi :26-Oca-22
Bölüm kodlarını ve/veya veri setlerini indir.

Graph Theroy (Grafik teorisi), pandas ile üretilmiş olan veri setleri ile de birlikte kullanılabilmektedir. 

Pandas DataFrame'den bir kenar listesi içeren bir grafik döndürmek için "from_pandas_edgelist" komutu kullanılabilir.

Söz dizimi: from_pandas_edgelist(df, source='source', target='target', edge_attr=None, create_using=None, edge_key=None)

  • df, veri setini temsil eder.
  • source, veri seti içerisinde kullanmak istenilen sütun adını temsil eder.(kaynak sütun)
  • target, veri seti içersinde kullanılmak istenilen sütun adını temsil eder.(hedef sütun)
  • edge_attr, sütun adlarını alarak bunları grafiğe kenar nitelikleri olarak eklemek için kullanılır.
  • create_using, oluşturulacak grafiğin türünü belirlemek için kullanılır. Varsayılan olarak nx.Graph'dır.

Örnek-1: Hava yolu şirketlerinin uçaklarının kalkış noktası, varış noktası ve arasındaki uzaklıklarının bulunduğu "graphdata.csv" adlı veri setini kullanarak bir grafik tablosu çıkartalım.

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

import networkx as nx
#Veri seti okunur
df=pd.read_csv("graphdata.csv")
#Ilk 5 satır
df.head()

Çıktı:

#Son 5 satır
df.tail()

Çıktı:

#boş değerler listesi
df.isnull().sum()

Çıktı:

Year            0
Month           0
DayofMonth      0
DayOfWeek       0
DepTime       635
CRSDepTime      0
ArrTime       707
CRSArrTime      0
AirTime       707
Origin          0
Dest            0
Distance        0
dtype: int64
#Boş değerli satırlar kaldırıldı(707 satır kaldırıldı)
df=df.dropna().reset_index()
#Grafik tanımlaması
G=nx.from_pandas_edgelist(df,source="Origin",target="Dest",edge_attr=True)
#Düğümler listesi(ilk 20 satır)
list(G.nodes)[0:20]

Çıktı:

['IAD',
 'TPA',
 'IND',
 'BWI',
 'JAX',
 'LAS',
 'MCI',
 'MCO',
 'MDW',
 'PHX',
 'ISP',
 'FLL',
 'PBI',
 'RSW',
 'JAN',
 'HOU',
 'BHM',
 'BNA',
 'ORF',
 'PHL']
#Kenarlar listesi (ilk 20 satır)
list(G.edges)[0:20]

Çıktı:

[('IAD', 'TPA'),
 ('IAD', 'LAS'),
 ('IAD', 'MCO'),
 ('IAD', 'MDW'),
 ('TPA', 'IND'),
 ('TPA', 'ISP'),
 ('TPA', 'JAX'),
 ('TPA', 'LAS'),
 ('TPA', 'MCI'),
 ('TPA', 'MDW'),
 ('TPA', 'MHT'),
 ('TPA', 'MSY'),
 ('TPA', 'ORF'),
 ('TPA', 'PBI'),
 ('TPA', 'PHL'),
 ('TPA', 'PHX'),
 ('TPA', 'PIT'),
 ('TPA', 'PVD'),
 ('TPA', 'RDU'),
 ('TPA', 'SAT')]
#Grafik çizimi
plt.figure(figsize=(10,10))
nx.draw_circular(G,with_labels=True)

Çıktı:

Yukardaki çizim haricinde kullanılabilecek farklı çizim yöntemleri de bulunmaktadır. Bunlar;

#Diğer çizim yöntemleri
plt.figure(figsize=(10,10))
nx.draw_kamada_kawai(G,with_labels=True)

Çıktı:

#Diğer çizim yöntemleri
plt.figure(figsize=(10,10))
nx.draw_networkx(G,with_labels=True)

Çıktı:

#Diğer çizim yöntemleri
plt.figure(figsize=(10,10))
nx.draw_random(G,with_labels=True)

Çıktı:

#Diğer çizim yöntemleri
plt.figure(figsize=(10,10))
nx.draw_shell(G,with_labels=True)

Çıktı:

#Diğer çizim yöntemleri
plt.figure(figsize=(10,10))
nx.draw_spectral(G,with_labels=True)

Çıktı:

#Diğer çizim yöntemleri
plt.figure(figsize=(10,10))
nx.draw_spring(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.