Kategoriler
python

Bar Plot ve Pie Chart

Veri görselleştirme için Seaborn ve Matplotlib kullanarak Bar Plot ve Pie Chart çizdirme

DATA VISUALIZATION

Herkese merhaba bu yazıda matplotlib ve seaborn kütüphanelerini kullanarak veri görselleştirme yapıyoruz. Başlangıç olarak bar plot ve pie chart grafiklerini anlatıyorum.

Görselleştirmede kullanılacak veri seti için İstanbul Büyükşehir Belediyesi nin paylaştığı veri setlerinden bir tanesini seçebilirsiniz.

Kullanılan veri seti: https://data.ibb.gov.tr/dataset/ilce-yil-ve-atik-turu-bazinda-atik-miktari/resource/50036dfd-aea5-4f06-832f-f7020fdaaa5a

Gerekli kütüphaneler: pandas , seaborn , matplotlib

Bar Plot

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

dataset = pd.ExcelFile("ilce-yl-ve-atk-turu-baznda-atk-miktar.xlsx");

dataset = dataset.parse("Evsel Atık Miktarı")


max_atik = []
yıllar_isim = list(dataset.iloc[2:-1,2:-1])

for i in range(len(yıllar_isim)):
   
    data = dataset.loc[dataset[yıllar_isim[i]].idxmax()]
    max_atik.append([data['İlçe'], data[yıllar_isim[i]]])

        

max_ilceler = [list_[0] for list_ in max_atik]
max_atiklar = [list_[1] for list_ in max_atik]

plt.figure(figsize=(10,10))
ax = sns.barplot(x=yıllar_isim, y=max_atiklar)
plt.legend(loc="upper left")
plt.xlabel('Yıllar')
plt.ylabel('Atık (TON)')
plt.title('Yıllara Göre Maximum Evsel Atık Dağılımı')
plt.show()

Yukardaki kodda xlsx dosyasından veri setini okuyoruz. Okuduğumuz excel dosyasında bir çok sheet olabilir. Bunları görebilmek için dataset.sheet_names yazmalısınız. Yukarda “Evsel Atık Miktarı ” sheetini parse ediyoruz. for döngüsünde ise yılların max atık değerlerini çekiyoruz. Örneğin 2004 yılında maximum atık 19377 ton gibi.

Pie Chart

Pasta dilimi şeklindeki bu grafik ise bize bir etiketin tüm paydan yüzde kaç aldığını söylemektedir. Örneğin 2018 yılında evsel atık konusunda ilk 5 ilçeden 1. ilçe yüzde 26.3 ile Küçükçekmece.

sizes_2018 = []
sizes_2019 = []

dataset_sorted_2018 = dataset.sort_values(by=['2018'],ascending=False)
dataset_sorted_2018  = dataset_sorted_2018[['İlçe','2018','Toplam']]

dataset_sorted_2019 = dataset.sort_values(by=['2019'],ascending=False)
dataset_sorted_2019  = dataset_sorted_2019[['İlçe','2019','Toplam']]

for i in range(5):
    
    max_atik_2018 = dataset_sorted_2018['2018'][i]
    toplam = dataset_sorted_2018['Toplam'][i]
    percent_2018 = 100 * (max_atik_2018 / toplam )
    sizes_2018.append(percent_2018)
    
    toplam = dataset_sorted_2019['Toplam'][i]
    max_atik_2019 = dataset_sorted_2019['2019'][i]
    percent_2019 = 100 * (max_atik_2019 / toplam)
    sizes_2019.append(percent_2019)
    
 
fig,(ax1,ax2) = plt.subplots(1,2) 
ax1.set_title("2018 Evsel Atık Dağılımı İlk 5 İlçe")
ax2.set_title("2019 Evsel Atık Dağılımı İlk 5 İlçe")
ax1.pie(sizes_2018,labels=dataset_sorted_2018['İlçe'][0:5],autopct='%1.1f%%',shadow=True) 
ax2.pie(sizes_2019,labels=dataset_sorted_2019['İlçe'][0:5],autopct='%1.1f%%',shadow=True)
plt.tight_layout()
plt.show()

İlk önce , maximum atığı olan ilk 5 ilçeyi seçeceğimizden dolayı veri setini büyükten küçüğe doğru sıralıyoruz. Sonra gerekli olan sütünları alıyoruz. For döngüsünde ise yüzde hesabı yapıyoruz. 2 tane grafik kullanacağımızdan bunları axisları farklı olacaktır. plt.subplots ile 2 axis oluşturuyoruz ve bunların başlıklarını ve pie chartlarını oluşturuyoruz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.