Veri Görselleştirmesi - Matplotlib

Scatter Plot

Yayın tarihi :02-Ara-21
Bölüm kodlarını ve/veya veri setlerini indir.

Scatter Plot, Matplotlib kütüphanesi içerisinde bulunan ve veri kümesindeki her değerin bir nokta ile temsil edildiği bir diyagramdır. Scatter Plot kullanılarak oluşturulan grafik iki farklı eksenden (x ve y) oluşur ve bu grafikte eksenlerin birbirlerine göre nasıl değişim gösterdiği semboller(markers) ile analizlenmektedir.

Kullanılabilmesi için "matplotlib.pyplot" kütüphanesinin içe aktarılması gerekmektedir.

import matplotlib.pyplot as plt

Söz dizimi: scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

  • x, x ekseninde(yatayda) alacağı değerler listesidir.
  • y, y ekseninde(dikeyde) alacağı değerler listesidir. x ve y nin uzunlukları eşit olmalıdır. (len(x)=len(y))
  • s, noktaların boyutunu ifade eder. Sabir bir sayısal bir değer girilebileceği gibi s=x değeri gibi değişken bir değer de girilebilir. x değeri büyüdüğünde noktalarında büyüdüğü gözlemlenecektir.
  • c, gösterim çizgisinin rengini ifade eder. İki şekilde de (c veya color) yazılabilir. Çizimi yapılabilecek renklerden bazıları; blue, green, red, cyan, magenta, yellow, black, white'dır. Bu renklerin sadece baş harfleri de kullanılabilir.
  • marker, değerlerin x ve y sütununu kesmiş olduğu yerlerde konulan öğelerdir. Bu öğeler birçok farklı biçimde şekillendirilmiştir. Örneğin;
  • cmap, veya colormap renk haritasını temsil eder. "c" veya "color" parametresi float yapılda ise kullanılır.
  • norm, "c" yi ölçeklendirmek için kullanılır ayrıca "c" ninin float yapıda olması gerekmektedir.
  • alpha, noktanın saydamlığını belirtir.0-1 aralığında değer alabilir.
  • linewidth, grafik içersinde oluşan çizgilerin genişliğini tanımlar.
  • edgecolors, işaretcinin(marker) kenar çizgilerininin rengini temsil eder. 
  • data, x ve y sütununun bağlı olduğu DataFrame'yi temsil etmektedir.(Örn: data=df) .

Bir grafiğin nasıl elde edileceği bilgisi aşağıdaki örnekler içersinde detaylandırılarak anlatılmıştır. 

Örnek-1: Rastgele olarak 2 farkı değişken oluşturalım ve bu değişken değerlerini görselleştirelim.

#Gerekli kütüphaneler import edildi
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#Değişken ataması yapıldı
x=np.arange(20) #0 dan 20 ye kadar tam sayılar listesi
y=np.random.normal(10,1,20) #ortalaması 10, standart sapması 1, 20 tane data

print("x="+str(x))
print("y="+str(y))

Çıktı:

x=[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
y=[11.65098652 10.27491223 10.05435368  8.52959601 10.13237919  8.56661404
 10.22594265 11.79698309 10.73983879  8.79545272  9.80258823 12.44979312
 10.26200205 11.51927342 11.1083299  10.23642166 10.18774317  8.97323599
  8.59687386 10.49538039]

Değişken ataması yapıldığı için artık görselleştirme aşamasına geçilebilir. Görselleştirme aşamasında Figure ve Axes konusunda görülen yapının aynısı kullanılacak olup sadece ilgili grafik çizme yöntemi ne ise (burada Scatter Plot) ilgili eksene yerleştirilecektir.

plt.figure(figsize=(8,4))
plt.scatter(x,y,c="red",s=25,marker="x",linewidths=2)
plt.title("y'değerinin x'e göre değişimi grafiği")
plt.xlabel('X sutünu')
plt.ylabel('Y sutünu')
plt.savefig("resim1.png",dpi=128)

Çıktı:


Örnek-2: Rastgele olarak 3 farkı değişken oluşturalım ve bu değişken değerlerini görselleştirelim.

#Kütüphaneler import edildi
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

#Değişken atama işlemleri yapıldı
x=np.arange(20) #0 dan 20 ye kadar tam sayılar listesi
y=np.random.normal(10,1,20) #ortalaması 10, standart sapması 1, 20 tane data
z=np.random.normal(10,2,20) #ortalaması 10, standart sapması 2, 20 tane data

plt.figure(figsize=(8,4))
plt.scatter(x,y,c="y",s=25,marker="o",linewidths=2,label="x ve y")
plt.scatter(x,z,c="b",s=25,marker="x",linewidths=3,label="x ve z")
plt.title("y ve z'değerinin x'e göre değişimi grafiği")
plt.xlabel('X sutünu')
plt.ylabel('Y-Z sutünu')
plt.legend()
plt.savefig("resim2.png",dpi=500)

Çıktı:

Örnek-3: Rastgele olarak 0-1 aralığında 2 farkı değişken oluşturalım ve bu değişken değerlerininin birbirleri ile olan ilişkilerini görselleştirelim.

#Kütüphaneler import edildi
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

#Değişken atama işlemleri yapıldı
x = np.random.random(50)
y = np.random.random(50)

#Her marker'a rastgele olarak renk ve boyut kazandırıldı
colors = np.random.rand(50)
size = (50 * np.random.rand(50))**2 
linewidths=np.random.randint(1,10,(50))

plt.figure(figsize=(8,4))

plt.scatter(x, y, s=size, c=colors, alpha=0.5,linewidths=linewidths)
plt.title("Rasgele boyut ve renk içeren markers")
plt.xlabel('X sutünu')
plt.ylabel('Y sutünu')
plt.savefig("resim3.png",dpi=128)

Çıktı:

Örnek-4: Rastgele olarak 3 farkı değişken oluşturalım ve bu değişken değerlerininin birbirleri ile olan ilişkilerini yan yana olarak 3 tabloda görselleştirelim.

#Kütüphaneler import edildi
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

#Değişken atama işlemleri yapıldı
x=np.arange(20) #0 dan 20 ye kadar tam sayılar listesi
y=np.random.normal(10,1,20) #ortalaması 10, standart sapması 1, 20 tane data
z=np.random.normal(10,2,20) #ortalaması 10, standart sapması 2, 20 tane data

fig=plt.figure(figsize=(15,4))

x1=fig.add_subplot(131)
x1.scatter(x,y,c="red",s=25,marker="x",linewidths=2)
x1.set_title("y'değerinin x'e göre değişimi grafiği")
x1.set_xlabel('X sutünu')
x1.set_ylabel('Y sutünu')

x2=fig.add_subplot(132)
x2.scatter(x,z,c="b",s=30,marker="h",linewidths=3)
x2.set_title("z'değerinin x'e göre değişimi grafiği")
x2.set_xlabel('X sutünu')
x2.set_ylabel('Z sutünu')

x3=fig.add_subplot(133)
x3.scatter(y,z,c="y",s=25,marker="<",linewidths=2)
x3.set_title("z'değerinin y'e göre değişimi grafiği")
x3.set_xlabel('Y sutünu')
x3.set_ylabel('Z sutünu')

fig.savefig("resim4.png",dpi=128)

Çı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.