Python Matplotlib Kütüphanesi
Python Matplotlib Kütüphanesi
Python Matplotlib Kütüphanesi. Matplotlib kütüphanesi python ve numpy kütüphanesi için bir sayısal çizim kütüphanesidir. Bu kütüphane çıktıları Tkinter, Qt gibi GUI (Grafiksel Arayüz) eklentileri ile uyumlu bir şekilde çalışarak uygulamalara nesne tabanlı API sağlar. Kullanımı oldukça basit olan bu kütüphane için elimizde bir veri seti mevcuttur. csv uzantılı bu veri setini aşağıdan indirebilirsiniz.
veri_mathplotlib.csv indirmek için tıklayınız…
Öncelikle veri setini yükleyelim.
import pandas as pd
import matplotlib.pyplot as plt
veri = pd.read_csv("veri.csv")
print (veri)
Pandas kütüphanesi ile veri.csv dosyasını çekiyoruz ve ekrana yazdırıyoruz. csv dosyası ile python dosyamızın aynı klasörde olması gerektiğini unutmayınız. Ekran çıktısı aşağıdaki gibi olur.
sn isim yas kilo not memleket
0 ali 15 45 25 Van
1 asli 16 50 90 Mersin
2 memet 17 40 95 Adana
3 kenan 33 77 35 Sivas
4 ayse 45 54 65 Izmir
5 Veysel 66 53 85 Kocaeli
6 murat 45 76 95 Trabzon
7 aynur 33 88 100 Aksaray
8 mert 23 34 45 Antalya
Matplotlib Çizgi Grafiği
import pandas as pd
import matplotlib.pyplot as plt
veri = pd.read_csv("veri.csv")
plt.figure()
plt.plot(veri["isim"], veri['not'], color = "orange", alpha = 0.7) # alpha saydamlık
plt.title('İsime göre notlar')
plt.xlabel("isim")
plt.ylabel("Not")
plt.grid(True)
plt.show()
Öncelikle veriyi okuyoruz. plt.figure grafiğimizin dış çerçevesini çizmektedir. plt.plot ile parametre olarak öncelikle yatay eksende isim dikey eksende not sütunlarının olacağını belirttik. Grafiğin rengini turuncu olarak ayarladık. Alpha değerini yani saydamlığına ise 0.7 değerini verdik.
title ile grafiğe bir başlık atıyoruz. xlabel ve ylabel ile x ve y eksenlerinin başlıklarını belirleriz. Grid ise grafiğimizin iç kısmına ızgara yerleştirir. Son olarak plt.show komutu ile grafiği ekrana getiririz. Grafiğimiz aşağıda gözükmektedir.
Matplotlib Saçılım Grafiği
Saçılım grafikleri iki farklı değişken arasındaki ilişkiyi ortaya çıkarır. Bu değişkenler arasında bir ilişki var mı yok mu? sorularına cevap arar. İlişkinin sebebini bize vermez. İlişki var mı? ne derece güçlü bu anlamları çıkarabiliriz. veri_mathplotlib.csv dosyasındaki yaş ve kilo değişkenleri arasındaki ilişkiye bakalım.
import pandas as pd
import matplotlib.pyplot as plt
veri = pd.read_csv("veri_mathplotlib.csv")
print(veri)
plt.figure()
plt.scatter(veri["yas"], veri['kilo'], color = "red",s = 14, alpha = 0.7)
plt.title('Yaş - Kilo İlişkisi')
plt.xlabel("Yaş")
plt.ylabel("Kilo")
plt.grid(True)
plt.show()
Öncelikle veriyi pd.read_csv ile okuyoruz. Matplotlib kütüphanesinde bulunan scatter grafik çizim aracı ile plt.scatter içerisine parametreleri yazarak grafiği oluşturuyoruz. x ekseni yaş, y ekseni kilo olarak ayarlanmıştır. Grafiğin rengini kırmızı, boyutunu ise 14 punto olarak ayarladık. Diğer bilgileri girip plt.show ( ) dediğimiz zaman aşağıdaki grafik gözükmektedir.
Elimizdeki veride 18 adet satır olduğu için çok anlam ifade etmemekte. Eğer fazla verimiz olsaydı daha anlamlı hale gelecekti. Bu grafik ile değişkenler arasındaki ilişkiyi görebiliyoruz.
Matplotlib Histogram Grafiği
Gruplandırılmış bir veri dağılımını göstermektedir. Grupların dikdörtgen sütunlar halinde gösterilmesine denir.
import pandas as pd
import matplotlib.pyplot as plt
veri = pd.read_csv("veri_mathplotlib.csv")
print(veri)
plt.figure()
plt.hist(veri["yas"], color = "red", alpha = 0.5, bins = 20, label = "Yaş") # alpha = saydamlık, bins = bar sayısı
plt.hist(veri["not"], color = "blue", alpha = 0.5, bins = 20, label = "Not") # alpha = saydamlık, bins = bar sayısı
plt.title('Yaş ve Not - Histogram')
plt.xlabel("...")
plt.ylabel("Frekans")
plt.legend() # label'ların görünebilmesi için
plt.show()
Yukarıdaki kodlara baktığımızda; iki tane plt.hist ile parametre içerisine girdiğimiz değerler; yaş ve not verileridir. renkleri birbirlerinden farklı olması için yas verisini kırmızı, not verisini ise mavi ile gösteriyoruz. alpha ve bins değerlerini belirttikten sonra diğer bilgileri de girerek grafiğimizi yazdırıyoruz.
Yukarıdaki grafiğe dikkatli bakarsanız 100 alan 2 kişi olduğunu görürsünüz. Ayrıca 15 yaşında 3 kişinin olduğu görülmektedir.
Matplotlib Çubuk Grafiği
Çubuk grafik dikey yada yatay bir şekilde kategorilerin temsil ettiği değerlerle orantılı yükseklikteki dikdörtgen şeklinde çubuklardan oluşmaktadır. Bu örnekte yaş, kilo ve not ortalamalarını çubuk grafikte göstermeye çalışacağız.
import pandas as pd
import matplotlib.pyplot as plt
veri = pd.read_csv("veri_mathplotlib.csv")
veri_sutun = ['yas', 'kilo', 'not_ort']
x=veri.describe()
ort_deger = x.iloc[1,[1,2,3]]
print(ort_deger)
plt.figure()
plt.bar(veri_sutun,ort_deger )
plt.title('Yaş , Kilo ve Not Ortalamaları')
plt.ylabel("Frekans")
plt.show()
Yukarıdaki kodları inceleyecek olursak; öncelikle veri_sutun isminde bir liste içerisine grafiğe dökeceğimiz kategorileri yazıyoruz. Ardından veri.describe ile verinin ortalama değerlerini görüyoruz. Çıkan tabloda 1.satırda mean değerleri bulunmaktadır.
ort_deger = x.iloc[1,[1,2,3]]
1.satırda bulunan 1,2,3. sütular yaş,kilo ve not değerlerine denk gelmektedir.
UYARI: csv dosyasında bulunan not sütununu not_ort ismi ile değiştirdim. Çünkü not python da kullanılan bir operatör olduğu için hata kodu ile karşılaştım. Sizlerde csv dosyasındaki not sütun değerini not_ort ile değiştirin.
plt.bar(veri_sutun,ort_deger ) komut satırı ile ortalama değerlerin Çubuk grafiklerini çizdiriyoruz.
yas 20.111111
kilo 57.777778
not_bilgi 70.555556
Name: mean, dtype: float64