Python Matplotlib ile Veri Görselleştirme Örneği

Veri Görselleştirme

Berivan Küçükkart
Yetkin Yayın
4 min readApr 14, 2022

--

Veri, verinin görselleştirilmesi ve verinin analizi son yıllarda oldukça popülarite kazanan alanlardan biri. Tek başına veri, karmaşık ve anlamlandırması zor bir haldeyken veri görselleştirme ile karmaşık veriye anlam kazandırmış oluruz.

Örneğin elimizde bir sınıfta yer alan öğrencilerin güz döneminde aldıkları vize ve final sınavlarının sonuçları olsun. Bu veri aşağıdaki gibi görünüyor olsun:

Öğrencilerin Notları

Not: Geçme notu 60 puan olarak belirlendi.

Böyle bir veriye anlam kazandırmak için yapılabilecek en etkili yöntem veriyi görselleştirmektir. Görselleştirmekten kastımız veriyi grafikleştirmektir.

Gördüğünüz üzere 2 boyutlu ve 3 boyutlu olmak üzere birçok grafik çeşidi vardır. En çok tercih edilen grafik türleri çizgi (line) ve sütun (bar) grafikleridir. Şimdi birlikte yukarıda yer alan öğrencilerin sınav sonuçları tablomuzu Python Matplotlib kullanarak görselleştirelim.

Ben bu işlemi Jupyter Notebook üzerinden gerçekleştirdim. Farklı derleyiciler de kullanılabilir. Öncelikle kullanacağımız kütüphaneleri import etmemiz gerekiyor. Çünkü kullandığımız kodlar bu kütüphanelerde yer alıyor. “As” sözcüğünden sonraki kısaltmaları kodların yazımı bizim açımızdan daha hızlı ve kolay olabilsin diye yapıyoruz. Örneğin aşağıda yer alan işlemi yaptıktan sonra her seferinde numpy yazmak yerine np yazabileceğim.

Kütüphaneleri Import Etmek

Kütüphaneleri import ettiğimize göre artık verilerimizi çeşitli kodlar yardımıyla grafiklere dökebiliriz.

Öncelikle “ogrenciler” adıyla bir liste oluşturdum ve öğrencilerin isimlerini listeye yerleştirdim. Ardından vize ve final notlarını içeren 2 farklı liste daha oluşturdum. İçinden verileri çekebileceğim listelerim hazır olduktan sonra x, yani yatay eksenimin “ogrenciler” listesindeki eleman sayısı kadar veri barındırmasını istediğimi belirttim. Ardından oluşturulacak olan bar grafiğimde her barın genişliğinin 0.2 değerinde olacak şekilde görünmesini sağladım.

Bu bölümde yer alan kodlarımın ilk satırında kullandığım plt.subplots() kodu ile oluşturmak istediğim şeklin aslında 2 farklı grafiğin birleşimi olmasını istediğimi belirtiyorum. Aynı şekil üzerinde birden farklı grafik göstermek istediğimizde bu kodu kullanabiliriz. Aynı şekil üzerinde birden fazla grafik ile neyi kast ediyorum?

Yukarıda verdiğim örnekte 3 öğrenci ve her öğrenci için iki farklı not bulunuyor. Yatay eksende öğrencilerin, dikey eksende ise notların yer almasını istiyorum. Ancak her öğrencinin hem vize hem de final notunu yan yana verip bir karşılaştırma yapabilmek istiyorum. Yani aslında grafiğimiz vize notlarını gösteren grafik ile final notlarını gösteren grafiğin birleşimi gibi olacak.

Hemen alt kısımda yaptığımız işlemde ise vize ve final notlarını gösterecek sütunların konumlarını, genişliklerini, değerlerini hangi listeden alacaklarını ve hangi veriyi temsil ettiklerini belirledim.

Örneğin, rects1 = ax.bar(x — width/2, vize, width, label=’vize notu’) kodu ile, label = “vize notu”nu temsil etsin dediğim sütunun x-width/2 ile sol tarafta yer alacağını, “vize” ile verileri vize isimli listeden alacağını, width ile genişliğini yukarıda belirttiğim genişlikle aynı olmasını istediğimi belirttim. Aynı şeyler alttaki kod için de geçerli. Bu kez solunda değil + ile sağında yer alsın dedim. Verileri “final” isimli listeden aldırdım. Ve “final notu”nu temsil etmesini istedim.

Bu bölümde grafiğimiz biraz daha güzel ve düzenli görünsün diye eksenlere, grafiğe isim vereceğiz. X ekseninde yer alacak isimleri belirteceğiz ve sütunlarımız hangi verileri temsil ediyor, görebilmek için küçük bir gösterge ekleyeceğiz.

Y eksenimde “puanlar” yazmasını istiyorum. Dolayısıyla ax.set_ylabel() kodunu kullandım. ax.set_xlabel() ile ise X eksenini isimlendirmiş oldum. Grafiğe genel bir başlık vermek için ax.set_title() kodunu ekledim.

plt.xticks( , ) kodu ile X ekseninde yer alacak isimleri belirttim. ax.legend() kodu daha önce de belirttiğim göstergeyi oluşturmak için kullanılan bir kod.

Son olarak en alta plt.show() kodunu ekleyerek yukarıda verdiğim bilgiler ve komutlar ışığında oluşacak grafiği göstermesini istiyorum. Bu aşamada karşımıza aşağıdaki gibi bir grafik çıktı:

Yazının sonuna geldik. Sormak istediğiniz veya anlamadığınız bir şey olursa yorumlarda sorabilirsiniz. Başka veri görselleştirme yazılarında görüşmek üzere.

--

--