Veri Görselleştirme
Dersin Amacı
Bu dersin sonunda öğrenciler:
- Veri görselleştirmenin neden önemli olduğunu açıklayabilecek,
- Histogram, bar chart ve scatter plot arasındaki farkları anlayabilecek,
- Hangi veri türünde hangi grafik türünün kullanılacağını seçebilecek,
- Python ile
Seabornkullanarak grafik oluşturabilecek, - Grafiklerden temel yorumlar çıkarabilecek,
- Görselleştirmelerin veri analizi ve Yapay Zekâ çalışmalarındaki önemini kavrayabileceklerdir.
1. Veri Görselleştirme Nedir?
Veri analizinde elimizde çoğu zaman çok sayıda sayı bulunur.
Örneğin bir film veri setinde şöyle bilgiler olabilir:
| Film | Tür | Puan | Oy Sayısı | Süre |
|---|---|---|---|---|
| Film A | Drama | 8.2 | 125000 | 120 |
| Film B | Komedi | 6.8 | 85000 | 105 |
| Film C | Aksiyon | 7.9 | 230000 | 135 |
| Film D | Drama | 9.1 | 410000 | 145 |
| Film E | Komedi | 7.2 | 54000 | 98 |
Tabloya baktığımızda bazı bilgiler görülebilir.
Ancak veri sayısı 10.000 filme çıktığında tabloyu incelemek oldukça zorlaşır.
İşte burada veri görselleştirme devreye girer.
Veri görselleştirme, verileri grafik ve görsel öğeler kullanarak insanların daha kolay anlayabileceği bir biçime dönüştürme işlemidir.
Örneğin:
Tablo → Grafik → Örüntü → Yorum → Karar
Bu zincir veri analizinin temel mantıklarından biridir.
2. Neden Veri Görselleştirme?
İnsan beyni görsel örüntüleri sayısal tablolardan daha hızlı algılayabilir.
Örneğin elimizde şu film puanları olsun:
6.27.18.47.89.15.98.77.56.88.9
Bu değerleri tek tek incelemek yerine grafik oluşturduğumuzda şu sorulara daha kolay cevap verebiliriz:
- Puanlar hangi aralıkta yoğunlaşıyor?
- Çok düşük puanlı filmler var mı?
- Çok yüksek puanlı filmler var mı?
- Puanlar birbirine yakın mı?
- İki değişken arasında ilişki var mı?
- Hangi film türü daha yüksek puan alıyor?
Dolayısıyla görselleştirme yalnızca “güzel grafik oluşturmak” değildir.
Asıl amaç:
Verideki yapıyı görünür hâle getirmektir.
3. Python'da Görselleştirme Ekosistemi
Python'da veri görselleştirme için birçok kütüphane kullanılabilir.
Önemli olanlardan bazıları:
- Matplotlib
- Seaborn
- Plotly
- Bokeh
Bu derste özellikle Seaborn kullanacağız.
Seaborn Nedir?
Seaborn, Python'da istatistiksel veri görselleştirme amacıyla kullanılan bir kütüphanedir.
Özellikle Pandas DataFrame'leri ile çalışırken oldukça kullanışlıdır.
Kurulum:
pip install seabornTemel kullanım:
import seaborn as snsimport matplotlib.pyplot as pltBurada:
import seaborn as snsSeaborn'u sns adıyla kullanmamızı sağlar.
import matplotlib.pyplot as pltise grafiklerin gösterilmesi ve düzenlenmesi için kullanılır.
4. Grafik Seçmek Neden Önemlidir?
Her veri için aynı grafik kullanılmaz.
Bu çok önemli bir noktadır.
Örneğin:
| Soru | Uygun Grafik |
|---|---|
| Puanlar nasıl dağılıyor? | Histogram |
| Türlere göre kaç film var? | Bar Chart |
| Puan ile oy sayısı arasında ilişki var mı? | Scatter Plot |
| Kategorileri karşılaştırmak | Bar Chart |
| Sayısal dağılımı görmek | Histogram |
| İki sayısal değişkeni karşılaştırmak | Scatter Plot |
Dolayısıyla veri görselleştirmenin temel sorularından biri şudur:
“Elimdeki veriyle hangi soruya cevap vermek istiyorum?”
Grafik türü bundan sonra seçilmelidir.
5. Histogram
Histogram, bir sayısal değişkenin değerlerinin hangi aralıklarda yoğunlaştığını gösterir.
Örneğin film puanlarımız:
5.15.86.26.46.87.07.17.37.57.88.08.28.48.79.19.3
Histogram bize şu sorunun cevabını verir:
Film puanları hangi aralıklarda yoğunlaşıyor?
Basit Histogram
import seaborn as snsimport matplotlib.pyplot as pltpuanlar = [5.1, 5.8, 6.2, 6.4, 6.8, 7.0, 7.1, 7.3, 7.5, 7.8, 8.0, 8.2, 8.4, 8.7, 9.1, 9.3]sns.histplot(puanlar)plt.show()Burada:
sns.histplot(puanlar)puanların dağılımını grafik hâline getirir.
6. Histogram Nasıl Okunur?
Histogramı incelerken şu soruları sorabiliriz:
1. Değerler nerede yoğunlaşıyor?
Örneğin filmlerin çoğu:
7.0 – 8.5aralığındaysa bu aralıkta yoğunlaşma olduğunu söyleyebiliriz.
2. Dağılım geniş mi?
Puanlar:
5 – 10arasında geniş bir alana yayılmışsa değişkenlik daha fazladır.
3. Uç değer var mı?
Örneğin çoğu film 6–8 arasında iken birkaç film 9.8 puana sahipse bunlar dikkat çekici değerler olabilir.
7. Histogram ve Bin Kavramı
Histogramda değerler belirli aralıklara ayrılır.
Bu aralıklara bin denir.
Örneğin:
sns.histplot(puanlar, bins=5)Burada veri 5 gruba ayrılmaya çalışılır.
Daha fazla bin:
sns.histplot(puanlar, bins=10)kullanıldığında dağılım daha ayrıntılı görülebilir.
Ancak çok fazla bin kullanmak grafiği gereksiz derecede karmaşıklaştırabilir.
Bu nedenle:
Grafiğin amacı veriyi anlaşılır hâle getirmektir; grafiği karmaşıklaştırmak değil.
8. Bar Chart
Bar chart yani çubuk grafik, kategorileri karşılaştırmak için kullanılır.
Örneğin film türlerimiz:
DramaKomediAksiyonDramaDramaKomediAksiyon
olsun.
Burada şu soruyu sorabiliriz:
Hangi türden kaç film var?
Örneğin:
Drama █████████Komedi █████Aksiyon ███████
9. Seaborn ile Bar Chart
Öncelikle örnek bir DataFrame oluşturalım:
import pandas as pdveri = pd.DataFrame({ "tur": [ "Drama", "Komedi", "Aksiyon", "Drama", "Drama", "Komedi", "Aksiyon", "Drama", "Komedi" ]})Daha sonra:
sns.countplot(data=veri, x="tur")plt.show()kullanabiliriz.
Burada:
x="tur"ifadesi kategorik değişkenimizin tur olduğunu belirtir.
countplot() ise kategorilerin kaç kez tekrarlandığını gösterir.
10. Bar Chart ile Ortalama Puan Karşılaştırma
Bar chart yalnızca frekans göstermek için kullanılmaz.
Örneğin her film türünün ortalama puanını karşılaştırabiliriz.
sns.barplot( data=df, x="tur", y="puan")plt.show()Bu grafik:
Film türlerinin ortalama puanlarını karşılaştırmamızı sağlar.
Örneğin:
Drama █████████ 8.1Aksiyon ████████ 7.7Komedi ███████ 7.1
gibi bir sonuç elde edilebilir.
Burada dikkat edilmesi gereken nokta:
Grafikteki çubukların yüksekliği veri hakkında bir karşılaştırma sunar.
11. Scatter Plot
Şimdi daha farklı bir soru soralım.
Film puanı ile oy sayısı arasında bir ilişki var mı?
Örneğin:
Film Puanı Oy Sayısı7.2 50.0007.8 80.0008.1 120.0008.7 250.0009.1 400.000
Bu durumda iki sayısal değişkenimiz vardır:
puanoy_sayisi
Bu tür durumlarda scatter plot kullanabiliriz.
Scatter plot, Türkçede saçılım grafiği olarak da adlandırılır.
12. Seaborn ile Scatter Plot
sns.scatterplot( data=df, x="puan", y="oy_sayisi")plt.show()Burada:
x → puany → oy_sayisi
şeklindedir.
Her nokta bir filmi temsil eder.
13. Scatter Plot Nasıl Okunur?
Grafikte noktaların genel hareketine bakabiliriz.
Örneğin puan arttıkça oy sayısı da artıyorsa:
•••••
pozitif yönlü bir ilişki görülebilir.
Tersi durumda:
•••••
negatif yönlü bir ilişki olabilir.
Noktalar tamamen dağınıksa belirgin bir doğrusal ilişki olmayabilir.
Burada önemli bir kavram vardır:
Korelasyon, nedensellik anlamına gelmez.
Örneğin:
“Film puanı arttıkça oy sayısı artıyor.”
şeklinde bir ilişki gözlemlemek, yüksek puanın doğrudan daha fazla oy oluşturduğunu kanıtlamaz.
14. İnteraktif Korelasyon Görselleştirmesi
İki sayısal değişken arasındaki ilişkinin yönünü ve gücünü daha yakından incelemek için aşağıdaki etkileşimli görselleştirmeyi kullanabilirsiniz:
Noktaların yönü ve birbirine ne kadar yakın olduğu, ilişkinin gücü hakkında fikir verir.
15. Gerçek Uygulama: Film Puanları
Şimdi dersimizin uygulamasına geçelim.
Amacımız:
Bir film veri setini Seaborn kullanarak farklı grafiklerle incelemek.
Örnek veri:
import pandas as pddf = pd.DataFrame({ "film": [ "Film A", "Film B", "Film C", "Film D", "Film E", "Film F", "Film G", "Film H", "Film I", "Film J" ], "tur": [ "Drama", "Komedi", "Aksiyon", "Drama", "Komedi", "Aksiyon", "Drama", "Aksiyon", "Komedi", "Drama" ], "puan": [ 8.2, 6.8, 7.9, 9.1, 7.2, 8.0, 8.7, 7.6, 6.9, 8.9 ], "oy_sayisi": [ 125000, 85000, 230000, 410000, 54000, 180000, 310000, 150000, 62000, 350000 ]})Verimizi inceleyelim:
print(df)16. Film Puanlarının Histogramı
sns.histplot( data=df, x="puan", bins=5)plt.title("Film Puanlarının Dağılımı")plt.xlabel("Film Puanı")plt.ylabel("Film Sayısı")plt.show()Burada öğrencilerden şu soruların cevaplarını istemek faydalı olacaktır:
- Filmlerin çoğu hangi puan aralığında?
- En düşük puan nedir?
- En yüksek puan nedir?
- Puanlar birbirine yakın mı?
17. Film Türlerinin Bar Chart ile Gösterilmesi
sns.countplot( data=df, x="tur")plt.title("Film Türlerinin Dağılımı")plt.xlabel("Film Türü")plt.ylabel("Film Sayısı")plt.show()Öğrencilerden:
En fazla hangi film türü bulunmaktadır?
sorusunu cevaplamalarını isteyebiliriz.
18. Film Puanı – Oy Sayısı İlişkisi
Şimdi scatter plot oluşturalım:
sns.scatterplot( data=df, x="puan", y="oy_sayisi")plt.title("Film Puanı ve Oy Sayısı İlişkisi")plt.xlabel("Film Puanı")plt.ylabel("Oy Sayısı")plt.show()Burada öğrencilerden:
Puan yükseldikçe oy sayısında genel olarak bir değişim gözleniyor mu?
sorusunu cevaplamalarını isteyebiliriz.
19. Grafiğe Kategorik Bilgi Eklemek
Seaborn'un güçlü taraflarından biri, grafiğe ek bilgiler eklemeyi kolaylaştırmasıdır.
Örneğin film türlerini farklı gruplar şeklinde gösterebiliriz:
sns.scatterplot( data=df, x="puan", y="oy_sayisi", hue="tur")plt.show()Buradaki:
hue="tur"ifadesi çok önemlidir.
Çünkü artık grafik yalnızca:
puan ↔ oy sayısıilişkisini değil, aynı zamanda:
puan ↔ oy sayısı ↔ film türüilişkisini de incelememizi sağlar.
20. Grafiklere Başlık ve Etiket Eklemek
İyi bir grafik yalnızca veri içermemelidir.
Okuyucu grafiğin ne anlattığını anlayabilmelidir.
Örneğin:
plt.title("Film Puanları")plt.xlabel("Puan")plt.ylabel("Film Sayısı")kullanabiliriz.
Bu nedenle grafik hazırlarken en azından şunları düşünmeliyiz:
- Grafik başlığı var mı?
- X ekseni anlaşılır mı?
- Y ekseni anlaşılır mı?
- Birimler gerekiyorsa belirtilmiş mi?
- Kategoriler anlaşılır mı?
- Grafik gereksiz ayrıntılar içeriyor mu?
21. Veri Görselleştirmede Sık Yapılan Hatalar
Hata 1: Her veri için aynı grafiği kullanmak
Yanlış yaklaşım:
“Her şeyi bar chart ile gösterelim.”
Doğru yaklaşım:
Verinin yapısına ve soruya göre grafik seçmek.
Hata 2: Çok fazla renk kullanmak
Her kategoriyi farklı renkte göstermek bazen grafiği okunamaz hâle getirir.
Renk:
Bilgi taşımak için kullanılmalıdır.
Sadece süsleme amacıyla kullanılmamalıdır.
Hata 3: Grafik başlığı kullanmamak
Şu grafik:
██████████████████
tek başına çok fazla şey söylemeyebilir.
Ama:
Film Türlerine Göre Film Sayıları
başlığı grafiğin amacını açıklar.
Hata 4: Yanlış grafik seçmek
Örneğin 1000 kişinin yaş dağılımını göstermek için kategorik bar chart yerine histogram daha uygun olabilir.
Hata 5: Grafikten gereğinden fazla sonuç çıkarmak
Bir grafik bize bir ilişki gösterebilir.
Ama bu ilişkinin nedenini tek başına açıklamayabilir.
Örneğin:
“İki değişken birlikte artıyor.”
demek başka,
“Bir değişken diğerine neden oluyor.”
demek başkadır.
22. Yapay Zekâ ile Veri Görselleştirmenin İlişkisi
Bu ders Yapay Zekâ kursunun içinde olduğu için öğrencilerin şu bağlantıyı kurması önemlidir:
Ham Veri↓Veri Temizleme↓Veri Analizi↓Veri Görselleştirme↓Örüntüleri Anlama↓Modelleme↓Yapay Zekâ
Makine öğrenmesi modelleri verilerden örüntüler öğrenir.
İnsan ise öncelikle veriyi anlamalıdır.
Bu nedenle görselleştirme:
Model kurmadan önce veriyi tanımamızı sağlayan önemli araçlardan biridir.
Örneğin bir makine öğrenmesi modeline film puanlarını verirken:
- Eksik değerler var mı?
- Aykırı değerler var mı?
- Değişkenler arasında ilişki var mı?
- Veri dengeli mi?
- Bazı kategoriler aşırı temsil ediliyor mu?
gibi soruları sormamız gerekir.
Görselleştirme bu soruların bazılarına hızlı cevaplar sağlayabilir.
23. 2 Saatlik Ders Akışı
Bu konuyu iki saatlik ders olarak aşağıdaki şekilde işleyebilirsiniz.
1. Bölüm – 20 dakika
Veri Görselleştirme Nedir?
- Veri görselleştirmenin amacı
- Tablo ve grafik arasındaki fark
- Grafik seçme mantığı
- Yapay zekâ ile ilişkisi
2. Bölüm – 25 dakika
Histogram
- Dağılım
- Bin kavramı
- Puan dağılımı
- Seaborn
histplot()
3. Bölüm – 25 dakika
Bar Chart
- Kategorik veriler
- Frekans
- Ortalama karşılaştırması
countplot()barplot()
4. Bölüm – 25 dakika
Scatter Plot
- İki sayısal değişken
- Nokta grafiği
- İlişki
- Korelasyon kavramı
scatterplot()
5. Bölüm – 25 dakika
Uygulama
Öğrenciler:
- Film verisini oluşturur.
- Veriyi DataFrame'e aktarır.
- Film puanlarının histogramını oluşturur.
- Film türlerini bar chart ile gösterir.
- Puan–oy sayısı scatter plot'u oluşturur.
- Türleri
hueile ayırır. - Grafiklerden kısa yorumlar çıkarır.
24. Uygulama Görevi
🎬 Film Verilerini Görselleştirme
Öğrencilere aşağıdaki görev verilebilir:
Elinizdeki film veri setini kullanarak en az üç farklı grafik oluşturun ve grafiklerden elde ettiğiniz bulguları açıklayın.
Görev 1
Film puanlarının dağılımını histogram ile gösterin.
Görev 2
Film türlerinin dağılımını bar chart ile gösterin.
Görev 3
Film puanı ile oy sayısı arasındaki ilişkiyi scatter plot ile gösterin.
Görev 4
Scatter plot üzerinde film türlerini hue kullanarak farklı kategorilerde gösterin.
Görev 5
Her grafik için en az bir cümlelik yorum yazın.
Örneğin:
“Filmlerin büyük bölümü 7–9 puan aralığında yoğunlaşmaktadır.”
veya:
“Film puanı ile oy sayısı arasında pozitif yönlü bir ilişki gözlenmektedir.”
25. Öğrencinin Kazanması Beklenen Temel Beceriler
Ders sonunda öğrencinin yalnızca şu kodları ezberlemesi hedeflenmemelidir:
sns.histplot()sns.countplot()sns.scatterplot()Asıl hedef şudur:
“Bu veriyle hangi soruyu cevaplamak istiyorum ve bunu göstermek için hangi grafik daha uygun?”
Bu düşünce biçimi, veri analizi açısından kod ezberlemekten çok daha değerlidir.
26. Dersin Anahtar Kavramları
Öğrencilerin ders sonunda şu kavramları bilmeleri beklenir:
27. Mini Değerlendirme
Ders sonunda öğrencilerle şu sorular tartışılabilir:
Cevap: Histogram.
Cevap: Bar chart.
Cevap: Scatter plot.
Cevap: Genellikle bir gözlemi/veri kaydını temsil eder.
Cevap: Hayır.
28. Sonuç
Veri görselleştirme, veri analizinin yalnızca estetik tarafı değildir.
İyi hazırlanmış bir grafik:
- Büyük veri kümelerini anlamayı kolaylaştırır.
- Örüntüleri ortaya çıkarır.
- Dağılımları gösterir.
- Değişkenler arasındaki ilişkileri incelemeyi sağlar.
- Aykırı değerlerin fark edilmesine yardımcı olur.
- Analiz sonuçlarının başkalarına aktarılmasını kolaylaştırır.
Özellikle Yapay Zekâ çalışmalarında veri görselleştirme önemli bir adımdır.
Öğrencilerin şu düşünceyi benimsemesi hedeflenmelidir:
“Önce veriyi gör, sonra veriyi yorumla, daha sonra model kur.”
Tabii. Bu durumda makaleyi yalnızca üç temel grafik türüne odaklanacak şekilde sadeleştirmek daha doğru olur. Özellikle temel Python bilen öğrenciler için amaç, grafiklerin kodunu ezberletmekten çok “hangi durumda hangi grafiği kullanmalıyım?” sorusunu öğretmek olmalı.
3. Veri Görselleştirme (2 Saat)
Konular
- Histogram
- Scatter Plot (Saçılım Grafiği)
- Bar Chart (Çubuk Grafik)
Uygulama
Seaborn ile film puanları ve film türlerini görselleştirme
1. Veri Görselleştirme Nedir?
Veri analizi yaptığımızda elimizde çoğunlukla çok sayıda sayı ve kategori bulunur.
Örneğin:
Film Tür Puan Oy SayısıFilm A Drama 8.2 125000Film B Komedi 6.8 85000Film C Aksiyon 7.9 230000Film D Drama 9.1 410000Film E Komedi 7.2 54000
Bu tablo küçük olduğu için anlaşılması kolaydır.
Ancak elimizde 10.000 film olduğunu düşünelim.
Bu durumda veriyi yalnızca tablo üzerinden incelemek zorlaşır.
Grafikler bize verinin genel yapısını daha hızlı görme imkânı verir.
Veri görselleştirme, verileri grafikler kullanarak daha kolay anlaşılır hâle getirme işlemidir.
Bu derste üç temel grafik kullanacağız:
VERİ│┌─────────┼─────────┐↓ ↓ ↓Histogram Bar Chart Scatter Plot│ │ │Dağılım Kategoriler İlişki
2. Histogram
Histogram Ne İçin Kullanılır?
Histogram, sayısal verilerin dağılımını incelemek için kullanılır.
Örneğin bir sınıftaki öğrencilerin sınav notları:
45, 52, 58, 61, 65, 67, 68, 70,72, 73, 75, 76, 78, 80, 82, 85,87, 90, 92
Burada şu soruya cevap arayabiliriz:
Öğrencilerin notları hangi aralıklarda yoğunlaşmaktadır?
Bu durumda histogram uygundur.
Histogramın temel amacı:
Dağılımı görmek.
3. Histogram Mantığı
Histogram değerleri belirli aralıklara ayırır.
Örneğin:
40–5050–6060–7070–8080–9090–100
Her aralıkta kaç veri bulunduğunu gösterir.
Örneğin:
40–50 ██50–60 ███60–70 █████70–80 ███████80–90 █████90–100 ██
Buradan verilerin 70–80 aralığında yoğunlaştığını söyleyebiliriz.
4. Seaborn ile Histogram
Öncelikle Seaborn'u yükleyelim:
import seaborn as snsimport matplotlib.pyplot as pltÖrnek verimiz:
notlar = [ 45, 52, 58, 61, 65, 67, 68, 70, 72, 73, 75, 76, 78, 80, 82, 85, 87, 90, 92]Histogram:
sns.histplot(notlar)plt.show()Daha kontrollü bir histogram:
sns.histplot( notlar, bins=6)plt.title("Öğrenci Notlarının Dağılımı")plt.xlabel("Not")plt.ylabel("Öğrenci Sayısı")plt.show()Buradaki bins, verilerin kaç aralığa bölüneceğini belirler.
5. Histogram Ne Zaman Kullanılır?
Histogram kullanmak için genellikle elimizde sayısal bir değişken bulunmalıdır.
Örneğin:
- Öğrenci notları
- Yaş
- Maaş
- Boy uzunluğu
- Film puanı
- Sınav süresi
- Ürün fiyatı
Temel soru:
“Sayısal değerler nasıl dağılıyor?”
Cevap:
Histogram.
6. Bar Chart
Şimdi ikinci grafik türümüze geçelim.
Bar Chart Nedir?
Bar chart yani çubuk grafik, kategorileri karşılaştırmak için kullanılır.
Örneğin elimizde şu film türleri olsun:
DramaKomediAksiyonDramaDramaKomediAksiyonKomediDrama
Burada:
- Drama
- Komedi
- Aksiyon
birer kategoridir.
Şu soruyu sorabiliriz:
Hangi türden kaç film var?
Bu durumda bar chart kullanabiliriz.
7. Bar Chart Mantığı
Örneğin sonuç:
Drama ███████ 4Komedi █████ 3Aksiyon ███ 2
Burada kategorilerin büyüklüklerini karşılaştırıyoruz.
Bar chart'ın temel amacı:
Kategorileri karşılaştırmak.
8. Seaborn ile Bar Chart
Bir DataFrame oluşturalım:
import pandas as pddf = pd.DataFrame({ "tur": [ "Drama", "Komedi", "Aksiyon", "Drama", "Drama", "Komedi", "Aksiyon", "Komedi", "Drama" ]})Şimdi:
sns.countplot( data=df, x="tur")plt.show()countplot() her kategorinin kaç kez bulunduğunu gösterir.
9. Bar Chart ile Ortalama Karşılaştırması
Bar chart yalnızca kategori sayılarını göstermek için kullanılmaz.
Örneğin film türlerinin ortalama puanlarını karşılaştırabiliriz:
sns.barplot( data=df, x="tur", y="puan")plt.show()Burada grafik:
Her film türünün ortalama puanını
karşılaştırır.
Bu önemli bir ayrımdır:
countplot → kaç tane?barplot → değerleri karşılaştır
10. Bar Chart Ne Zaman Kullanılır?
Bar chart şu durumlarda kullanılabilir:
- Film türlerinin sayısını karşılaştırmak
- Bölümlerdeki öğrenci sayılarını karşılaştırmak
- Ürün satışlarını karşılaştırmak
- Şehirlerin nüfuslarını karşılaştırmak
- Kategorilerin ortalamalarını karşılaştırmak
Temel soru:
“Kategorileri karşılaştırmak istiyor muyum?”
Cevap evetse:
Bar Chart.
11. Scatter Plot
Şimdi üçüncü ve çok önemli grafik türümüze geçelim.
Scatter Plot Nedir?
Scatter plot, Türkçede saçılım grafiği olarak adlandırılır.
İki sayısal değişken arasındaki ilişkiyi incelemek için kullanılır.
Örneğin öğrenciler için:
Çalışma Saati Sınav Notu2 553 604 655 726 787 85
Burada iki sayısal değişken vardır:
- Çalışma saati
- Sınav notu
Şu soruyu sorabiliriz:
Çalışma süresi ile sınav notu arasında bir ilişki var mı?
Bu durumda scatter plot kullanabiliriz.
12. Scatter Plot Mantığı
Her nokta bir gözlemi temsil eder.
Örneğin:
Sınav Notu100 |90 | ●80 | ●70 | ●60 | ●50 | ●+--------------------2 3 4 5 6 7Çalışma Saati
Noktaların genel olarak yukarı doğru ilerlemesi:
Çalışma süresi arttıkça sınav notlarının da artma eğiliminde olduğunu
gösterebilir.
13. Seaborn ile Scatter Plot
Örnek DataFrame:
df = pd.DataFrame({ "calisma_saati": [2, 3, 4, 5, 6, 7], "sinav_notu": [55, 60, 65, 72, 78, 85]})Grafiği oluşturalım:
sns.scatterplot( data=df, x="calisma_saati", y="sinav_notu")plt.title("Çalışma Saati ve Sınav Notu")plt.xlabel("Çalışma Saati")plt.ylabel("Sınav Notu")plt.show()14. Scatter Plot Nasıl Yorumlanır?
Scatter plot'ta öncelikle noktaların genel dağılımına bakılır.
Pozitif ilişki
●●●
X arttıkça Y de artma eğilimindedir.
Negatif ilişki
●●●
X arttıkça Y azalma eğilimindedir.
Belirgin ilişki yok
● ●●● ●●
Noktalar belirgin bir yön göstermeyebilir.
Ancak burada önemli bir kural vardır:
Korelasyon, nedensellik anlamına gelmez.
Birlikte değişen iki değişken arasında mutlaka neden-sonuç ilişkisi olduğunu söyleyemeyiz.
15. Film Veri Seti Üzerinde Uygulama
Şimdi üç grafik türünü aynı veri setinde kullanalım.
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltdf = pd.DataFrame({ "film": [ "Film A", "Film B", "Film C", "Film D", "Film E", "Film F", "Film G", "Film H", "Film I", "Film J" ], "tur": [ "Drama", "Komedi", "Aksiyon", "Drama", "Komedi", "Aksiyon", "Drama", "Aksiyon", "Komedi", "Drama" ], "puan": [ 8.2, 6.8, 7.9, 9.1, 7.2, 8.0, 8.7, 7.6, 6.9, 8.9 ], "oy_sayisi": [ 125000, 85000, 230000, 410000, 54000, 180000, 310000, 150000, 62000, 350000 ]})16. Uygulama 1 – Film Puanlarının Histogramı
sns.histplot( data=df, x="puan", bins=5)plt.title("Film Puanlarının Dağılımı")plt.xlabel("Film Puanı")plt.ylabel("Film Sayısı")plt.show()Öğrencilere sorulabilecek sorular:
- Film puanları hangi aralıkta yoğunlaşıyor?
- En düşük puan kaç?
- En yüksek puan kaç?
- Dağılım geniş mi?
17. Uygulama 2 – Film Türlerinin Bar Chart'ı
sns.countplot( data=df, x="tur")plt.title("Film Türlerinin Dağılımı")plt.xlabel("Film Türü")plt.ylabel("Film Sayısı")plt.show()Öğrenciler:
En fazla hangi tür film bulunmaktadır?
sorusunu cevaplar.
18. Uygulama 3 – Puan ve Oy Sayısı
Şimdi iki sayısal değişkeni karşılaştıralım:
sns.scatterplot( data=df, x="puan", y="oy_sayisi")plt.title("Film Puanı ve Oy Sayısı")plt.xlabel("Film Puanı")plt.ylabel("Oy Sayısı")plt.show()Bu grafik sayesinde:
Film puanı ile oy sayısı arasında bir ilişki olup olmadığını
inceleyebiliriz.
19. Üç Grafiği Birbirinden Ayırmayı Öğrenelim
Öğrencilerin aklında şu tablo kalmalıdır:
| Grafik | Kullanım Amacı | Örnek |
|---|---|---|
| Histogram | Sayısal verinin dağılımı | Film puanlarının dağılımı |
| Bar Chart | Kategorileri karşılaştırma | Film türlerinin sayısı |
| Scatter Plot | İki sayısal değişken arasındaki ilişki | Puan ↔ Oy sayısı |
Daha basit bir ifadeyle:
Histogram↓"Değerler nasıl dağılıyor?"Bar Chart↓"Kategoriler nasıl karşılaştırılıyor?"Scatter Plot↓"İki değişken arasında ilişki var mı?"
20. Öğrenci İçin Hızlı Karar Ağacı
Bir grafik seçmeniz gerektiğinde şu üç soruyu sorun:
1. Sayısal verinin dağılımını mı görmek istiyorum?
→ Histogram
2. Kategorileri mi karşılaştırıyorum?
→ Bar Chart
3. İki sayısal değişken arasındaki ilişkiyi mi inceliyorum?
→ Scatter Plot
Bu üç soruyu doğru cevaplayabilen öğrenci, veri görselleştirmenin temel mantığını büyük ölçüde kavramış olur.
21. Ders İçin Mini Alıştırma
Aşağıdaki durumlarda hangi grafik kullanılmalıdır?
A
Bir sınıftaki 50 öğrencinin sınav notlarının dağılımını göstermek.
Cevap: Histogram
B
Bir okulda bölümlere göre öğrenci sayılarını karşılaştırmak.
Cevap: Bar Chart
C
Öğrencilerin günlük çalışma süresi ile sınav notları arasındaki ilişkiyi incelemek.
Cevap: Scatter Plot
D
Bir film veri setinde film türlerinin kaç tane olduğunu göstermek.
Cevap: Bar Chart
E
Filmlerin puanlarının hangi aralıkta yoğunlaştığını görmek.
Cevap: Histogram
F
Film puanı ile oy sayısı arasındaki ilişkiyi incelemek.
Cevap: Scatter Plot
22. 2 Saatlik Uygulama Planı
İlk 20 dakika – Veri Görselleştirmeye Giriş
- Veri görselleştirme nedir?
- Neden grafik kullanırız?
- Sayısal ve kategorik veri ayrımı
30 dakika – Histogram
- Histogram mantığı
- Dağılım
- Bin
- Seaborn
histplot() - Film puanları uygulaması
30 dakika – Bar Chart
- Kategoriler
- Frekans
countplot()barplot()- Film türleri uygulaması
30 dakika – Scatter Plot
- İki sayısal değişken
- Noktalar
- İlişki
scatterplot()- Puan–oy sayısı uygulaması
Son 10 dakika – Değerlendirme
Öğrencilere farklı veri örnekleri verilir ve:
“Bu veri için hangi grafik türünü seçersiniz? Neden?”
sorusu yöneltilir.
23. Dersin Ana Mesajı
Öğrencilerin bu dersin sonunda üç grafik türünü şu şekilde hatırlaması yeterlidir:
📊 Histogram → Dağılımı gör.
📊 Bar Chart → Kategorileri karşılaştır.
📍 Scatter Plot → İki değişken arasındaki ilişkiyi incele.
Ve en önemli nokta:
İyi bir veri analisti yalnızca grafik oluşturmaz; doğru soruya doğru grafiği seçer ve grafikten anlamlı bir yorum çıkarır.

Yorumlar
Yorum Gönder