İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python ile Veri Görselleştirmeye Giriş

Gbmdpof - ait Kullanıcı Resmi (Avatar)
Kıdemli Yazılımcı
Üyelik tarihi:
09/2016
Mesajlar:
1.998
Konular:
157
Teşekkür (Etti):
197
Teşekkür (Aldı):
712
Ticaret:
(0) %
16-05-2018 19:43
#1
Python ile Veri Görselleştirmeye Giriş
Merhaba, elimizde bir veri olduğunda bunu metin halinde kullanıcıya göstermek genelde efektif bir çözüm değildir. Bunun yerine bu veriyi grafik üzerinde göstermemiz hem verinin daha anlaşılır olmasını hem de göze daha güzel gözükmesini sağlar. Bunun için Matplotlib kütüphanesini kullanabiliriz. Matplotlib, grafik çizerken işimizi oldukça kolaylaştıracak bir kütüphanedir. Bu konumda matplotlib ile çizebileceğiniz birkaç grafik türü göstereceğim.

Çizgi Grafiği

Basit bir çizgi grafiğini plot() metodu ile oluşturabilirz.


Basit bir çizgi grafiği.

Bunu oluşturan kodlar:
Kod:
import matplotlib.pyplot as plt #Öncelikle matplotlib.pyplot'u yani grafik çizmemiz için gereken modülü import edelim
plt.plot([1, 2, 3, 4], [2, 4, 8, 16]) #plt.plot(x, y) şeklinde kullanıyoruz bu metodu. Yani x 1 iken y 2, x 2 iken y 4 oluyor.
plt.show() #Grafiği gösterelim
Basit bir çizgi grafiği oluşturmak bu kadar basit.

Resim

matplotlib ile resim göstermek de grafik çizmek kadar kolay.


Uchiha Itachi

Bunu alttaki birkaç satır ile yapabilirz:

Kod:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

resim = mpimg.imread('resim.jpg') #Resmimizi dosyadan okuyalım
plt.imshow(resim) #plt.imshow() ile resmi gösterelim. Bu metod ile ayrıca resim özelliklerini değiştirebiliriz, daha sıcak veya soğuk yapabiliriz.
plt.show() #Resmimizi gösterelim.
Resim göstermek de bu kadar kolay. Ayrıca unutmayın ki sadece bir grafik türü kullanmak zorunda değiliz. Resmin üzerine çizgi grafiği de çizebilirdik.

Histogramlar

matplotlib ile histogram oluşturmak oldukça kolaydır. Sizin girdiğiniz veriler ile grafiği otomatik olarak oluşturur.


Histogram örneği

Çalışan yaşlarını bir grafikte topladık. Peki bu nasıl oldu?

Kod:
import matplotlib.pyplot as plt
calisan_yaslari = [22, 25, 23, 43, 25, 32, 29, 27, 35, 26, 25, 34, 38, 43, 34]
plt.hist(calisan_yaslari, [20, 25, 30, 35, 40, 45]) #Çalışan yaşlarını belirli aralıklarla gösterdik
plt.show()
Patika

matplotlib.path modülünü kullanarak kolayca patika ekleyebilirsiniz.


Örnek bir patika

Daha fazla bilgi için:
https://matplotlib.org/api/path_api.html

Üç Boyutlu Grafikler

matplotlib ile sadece iki boyutlu değil ayrıca mplot3d sayesinde üç boyutlu grafikler de çizebilirsiniz.


Örnek bir üç boyutlu grafik

Daha fazla bilgi için:
https://matplotlib.org/mpl_toolkits/.../tutorial.html

Sütün Grafikleri

bar() metodu ile sütün grafikleri çizebilirsiniz.


Örnek bir sütün grafiği

Bunu da oldukça basit bir şekilde yapabiliriz.

Kod:
import matplotlib.pyplot as plt
plt.bar([1, 2, 3, 4], [5, 12, 8, 19]) #Çizgi grafiği ile aynı şekilde plt.bar(x, y) şeklinde kullanıyoruz.
plt.show()
Daire Grafikleri

pie() metodu, daire grafikleri oluşturmanızı olanak sağlar. Ayrıca bu metod ile yüzdelik orana otomatik olarak bir etiket koyabilirsiniz, istediğiniz parçaları dairenin merkezinden uzaklaştırabilirsiniz ve gölge efektleri ekleyebilirsiniz.


Örnek bir daire grafiği

Yukarıda bahsettiklerimi bu kadar kolay bir şekilde yapabiliriz:
Kod:
import matplotlib.pyplot as plt
sehirler = 'İzmir', 'İstanbul', 'Ankara', 'Antalya'
boyutlar = [25, 35, 30, 10]
cikinti = (0, 0.1, 0, 0) #Sadece İstanbul'a çıkıntı ekleyelim
plt.pie(boyutlar, explode=cikinti, labels=sehirler, shadow=True) #Elimizdeki boyutlar, şehir isimleri ve çıkıntılar ile grafik çizelim. Ayrıca gölge ekleyelim
plt.show()
Tablolar

table() metodu ile grafiğimizin altına ayrıca daha açıklayıcı veriler vermek için tablo da çizebiliriz.


Bir grubun boy, kilo ve yaşlarını gösteren bir tablo

Kod:
import matplotlib.pyplot as plt
sutunlar = ['Boy', 'Kilo', 'Yaş']
siralar = ['Ali', 'Ahmet', 'Ayşe', 'Ezgi']
fig, ax = plt.subplots()
ax.axis('off') #Bunu asıl grafiği gizlemek için yapıyoruz. 
ax.table(cellText=[[180, 73, 24], [174, 72, 17], [169, 52, 19], [172, 61, 25]], rowLabels=satirlar, colLabels=siralar, loc='center') #Ekranın merkezine girilen veriler ile bir grafik çizelim
plt.show()
Saçılım Grafikleri

scatter() metodu ile saçılım grafiği çizebiliriz.


Örnek bir saçılım grafiği

Kod:
import matplotlib.pyplot as plt
plt.scatter([2, 5, 9, 4, 6, 7, 6], [3, 1, 11, 8, 9, 11, 2]) #Yine aynı şekilde x, y şeklinde veri giriyoruz
plt.show()
Dolu Eğriler

fill() metodları ile içi dolu eğriler ve çokgenler çizebiliriz.


Örnek bir şekil

Kod:
import matplotlib.pyplot as plt
plt.fill([1, 5, 9, 4], [2, 5, 0, 14]) #Yine aynı şekilde köşelerin x ve y kordinatlarını giriyoruz
plt.show()
Tarih Kullanma

Grafiklerimizi çizerken bir zaman çizelgesi ile çizebiliriz. Bunun ile zaman içindeki değişim gibi şeyler grafik haline getirilebilir.


Örnek bir grafik

Daha fazla bilgi:
https://matplotlib.org/api/ticker_ap...plotlib.ticker
https://matplotlib.org/api/dates_api...tplotlib.dates

Subplots

En çok kullanılan grafikler bu kadardı. Şimdiye kadar gösterdiğim örneklerin hepsinde bir ekranda bir tane grafik kullandık fakat daha güçlü grafikler için birden fazla grafik türü bir ekranda kullanılabilir. Bunun için subplots kullanıyoruz.


Aşağıdaki kod bloğu sayesinde bir ekranda birden çok grafik oluşturduk.

Kod:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2, figsize=(5, 5)) #Ekranda 5x5'lik grafikleri 2x2 şeklinde oluşturalım
ax[0, 0].plot([1, 2, 3, 4], [2, 4, 8, 16])
ax[1, 0].bar([1, 2, 3, 4], [5,  12, 8, 19])
ax[0, 1].scatter([2, 5, 9, 4, 6, 7, 6], [3, 1, 11, 8, 9, 11, 2])
ax[1, 1].fill([1, 5, 9, 4], [2, 5, 0, 14])
plt.show()
Grafiklere Daha Çok Bilgi Ekleme

Şu an basit grafikler çizebiliyoruz fakat bu grafiğimiz veya grafiğimizdeki veriler neyi gösteriyor bunu yazamıyoruz. Bunları yazmadan da grafiklerimiz pek bir anlam ifade etmiyor.

Mesela bir çizgi grafiğine birden çok çizgi eklersek hangisi neyi ifade ediyor veya x, y değerleri neyi ifade ediyor nasıl anlayacağız? Etiketler ile.


Gördüğünüz gibi bu grafik normal bir grafiğe göre çok daha açıklayıcı. Bunu ise birkaç basit satırda yapabiliriz:

Kod:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4, 5], [8, 24, 16, 11, 4], label='Birinci Çizgi') #Birinci Çizgi olduğunu label parametresi ile belirlelim
plt.plot([1, 2, 3, 4, 5], [25, 5, 13, 17, 6], label='İkinci Çizgi') #İkinci Çizgi olduğunu label parametresi ile belirtelim
plt.xlabel('X Değeri') #x etiketini X Değeri yapalım
plt.ylabel('Y Değeri') #y etiketini Y Değeri yapalım
plt.title('Örnek bir grafik') #Başlığı Örnek bir grafik yapalım
plt.legend() #Değişiklikleri yapalım
plt.show()


Kaynak: matplotlib.org
Konu Gbmdpof tarafından (25-05-2018 21:11 Saat 21:11 ) değiştirilmiştir.
HeRTeS, BufGix, 1071malazgirt, k3~ Teşekkür etti.
HeRTeS - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2016
Nereden:
Mars
Mesajlar:
1.857
Konular:
192
Teşekkür (Etti):
272
Teşekkür (Aldı):
619
Ticaret:
(0) %
16-05-2018 19:45
#2
Eline Sağlık. Konunun içeriği ilgimi çekti. Teşekkürler
---------------------
.-.*/-.*/-*./-56842-*-s-*98ss8
Rootcmd - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2016
Nereden:
Nebula
Yaş:
22
Mesajlar:
4.303
Konular:
239
Teşekkür (Etti):
113
Teşekkür (Aldı):
861
Ticaret:
(0) %
16-05-2018 19:46
#3
Eline sagluk
---------------------
"İnsanın özgürlüğü istediği her şeyi yapabilmesinde değil, istemediği hiçbir şeyi yapmak zorunda olmamasındadır."


k3~
k3~ - ait Kullanıcı Resmi (Avatar)
Özel Üye
Üyelik tarihi:
10/2015
Mesajlar:
2.881
Konular:
202
Teşekkür (Etti):
1743
Teşekkür (Aldı):
3389
Ticaret:
(0) %
21-05-2018 18:57
#4
Eline sağlık
mekan170 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
05/2018
Nereden:
İstanbul
Mesajlar:
99
Konular:
8
Teşekkür (Etti):
17
Teşekkür (Aldı):
6
Ticaret:
(0) %
21-05-2018 19:02
#5
Eline Sağlık
--------------------- ÖLÜNÜZÜ DİRİNİZİ HER GÜN BİRİNİZİ BİR GÜN HEPİNİZİ

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı