Uygulama: Seaborn ile film puanları görselleştirme


Bu uygulamada öğrenciler, bir film veri setini Seaborn kullanarak görselleştirecek ve grafiklerden anlamlı sonuçlar çıkarmayı öğrenecekler.

Uygulamada özellikle üç grafik kullanılacaktır:

  • Histogram: Film puanlarının dağılımı
  • Bar Chart: Film türlerinin karşılaştırılması
  • Scatter Plot: Film puanı ile oy sayısı arasındaki ilişkinin incelenmesi

1. Uygulamanın Amacı

Uygulama sonunda öğrenci:

  • Pandas DataFrame oluşturabilecek,
  • Seaborn ile grafik oluşturabilecek,
  • Histogram kullanarak film puanlarının dağılımını inceleyebilecek,
  • Bar chart ile film türlerini karşılaştırabilecek,
  • Scatter plot ile iki sayısal değişken arasındaki ilişkiyi inceleyebilecek,
  • Grafiklerden yorum çıkarabilecek.

2. Gerekli Kütüphaneler

Öncelikle gerekli kütüphaneleri içe aktaralım:

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt

Eğer Seaborn bilgisayarda kurulu değilse:

pip install seaborn

3. Film Veri Setimizi Oluşturalım

Uygulamada küçük bir film veri seti kullanacağız.

df = pd.DataFrame({    "film": [        "Film A",        "Film B",        "Film C",        "Film D",        "Film E",        "Film F",        "Film G",        "Film H",        "Film I",        "Film J",        "Film K",        "Film L"    ],    "tur": [        "Drama",        "Komedi",        "Aksiyon",        "Drama",        "Komedi",        "Aksiyon",        "Drama",        "Aksiyon",        "Komedi",        "Drama",        "Aksiyon",        "Komedi"    ],    "puan": [        8.2,        6.8,        7.9,        9.1,

Veriyi görelim:

print(df)

4. Veriyi İlk Kez İnceleyelim

Grafik oluşturmadan önce veriyi tanımak önemlidir.

print(df.head())

Sütunların veri tiplerini inceleyelim:

print(df.info())

Temel istatistikleri görelim:

print(df.describe())

Örneğin puan sütununun:

  • ortalamasını,
  • minimum değerini,
  • maksimum değerini,
  • standart sapmasını

görebiliriz.

Bu noktada öğrencilere şu mesaj verilmelidir:

Grafik oluşturmadan önce veriyi tanımak, veri analizinin önemli bir parçasıdır.


5. Histogram – Film Puanlarının Dağılımı

İlk sorumuz:

Film puanları hangi aralıklarda yoğunlaşıyor?

Bunun için histogram kullanacağız.

sns.histplot(    data=df,    x="puan",    bins=6)plt.title("Film Puanlarının Dağılımı")plt.xlabel("Film Puanı")plt.ylabel("Film Sayısı")plt.show()

Öğrencilere Sorulacak Sorular

  • Film puanları hangi aralıkta yoğunlaşmaktadır?
  • En düşük film puanı nedir?
  • En yüksek film puanı nedir?
  • Puanlar birbirine yakın mıdır?

Burada öğrencilerin yalnızca grafiği oluşturması değil, grafiği yorumlaması beklenmelidir.


6. Bar Chart – Film Türlerinin Dağılımı

İkinci sorumuz:

Veri setinde hangi film türünden kaç tane bulunmaktadır?

Bunun için countplot() kullanabiliriz.

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 grafik üzerinden:

  • Drama kaç film?
  • Komedi kaç film?
  • Aksiyon kaç film?

sorularını cevaplayabilir.


7. Türlere Göre Ortalama Film Puanı

Şimdi biraz daha anlamlı bir analiz yapalım.

Sorımız:

Hangi film türünün ortalama puanı daha yüksek?

Bunun için barplot() kullanabiliriz.

sns.barplot(    data=df,    x="tur",    y="puan")plt.title("Film Türlerine Göre Ortalama Puan")plt.xlabel("Film Türü")plt.ylabel("Ortalama Puan")plt.show()

Bu grafik bize kategoriler arasında ortalama puan karşılaştırması yapma imkânı verir.

Öğrencilerden şu yorumu yapmaları istenebilir:

“Veri setindeki ortalama puanı en yüksek film türü ............ türüdür.”


8. Scatter Plot – Puan ve Oy Sayısı

Şimdi iki sayısal değişkeni karşılaştıralım.

Değişkenlerimiz:

  • puan
  • oy_sayisi

Sorımız:

Film puanı ile oy sayısı arasında bir ilişki var 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()

Grafikte:

  • Her nokta bir filmi,
  • X ekseni film puanını,
  • Y ekseni oy sayısını

göstermektedir.


9. Film Türlerini Grafiğe Ekleyelim

Scatter plot'u daha anlamlı hâle getirebiliriz.

Film türlerini hue parametresiyle gösterebiliriz:

sns.scatterplot(    data=df,    x="puan",    y="oy_sayisi",    hue="tur")plt.title("Film Puanı ve Oy Sayısı")plt.xlabel("Film Puanı")plt.ylabel("Oy Sayısı")plt.show()

Burada:

hue="tur"

ifadesi film türlerini farklı gruplar olarak göstermemizi sağlar.

Böylece aynı grafik üzerinde:

Puan + Oy Sayısı + Film Türü

bilgilerini birlikte inceleyebiliriz.


10. Film Puanlarını Sıralayalım

Görselleştirmeye ek olarak Pandas ile en yüksek puanlı filmleri bulabiliriz:

en_iyi = df.sort_values(    "puan",    ascending=False)print(en_iyi[["film", "tur", "puan"]])

İlk 5 filmi görmek için:

print(    en_iyi[["film", "tur", "puan"]].head(5))

Bu işlem bize:

En yüksek puanlı 5 filmi

gösterecektir.


11. Üç Grafik – Üç Farklı Soru

Uygulamanın en önemli noktası budur.

Histogram

sns.histplot(data=df, x="puan")

Şu soruyu cevaplar:

Film puanları nasıl dağılıyor?


Bar Chart

sns.countplot(data=df, x="tur")

Şu soruyu cevaplar:

Hangi türden kaç film var?


Scatter Plot

sns.scatterplot(    data=df,    x="puan",    y="oy_sayisi")

Şu soruyu cevaplar:

Film puanı ile oy sayısı arasında ilişki var mı?

Öğrencilerin özellikle bu bağlantıyı kurması sağlanmalıdır.


12. Öğrenci Görevi

Şimdi öğrencilerden aşağıdaki çalışmayı yapmalarını isteyebiliriz.

🎬 Film Analizi Görevi

Verilen film veri setini kullanarak:

Görev 1

Film puanlarının histogramını oluşturun.

Görev 2

Film türlerinin kaç kez tekrarlandığını bar chart ile gösterin.

Görev 3

Film türlerinin ortalama puanlarını bar chart ile karşılaştırın.

Görev 4

Film puanı ile oy sayısı arasındaki ilişkiyi scatter plot ile gösterin.

Görev 5

Scatter plot'ta film türlerini hue kullanarak ayırın.

Görev 6

En yüksek puanlı üç filmi bulun.

Görev 7

Oluşturduğunuz her grafik için bir cümlelik yorum yazın.


13. Beklenen Yorumlara Örnek

Öğrencilerin grafiklerden sadece görsel sonuç değil, analitik yorum çıkarması istenmelidir.

Örneğin:

Histogram: Film puanlarının büyük bölümü 7–9 aralığında toplanmaktadır.

Bar Chart: Veri setinde Drama ve Komedi türleri Aksiyon türüne göre daha fazla temsil edilmektedir.

Ortalama Puan Grafiği: Türlerin ortalama puanları birbirinden farklıdır.

Scatter Plot: Film puanı ile oy sayısı arasında belirgin bir ilişki olup olmadığı noktaların dağılımı incelenerek değerlendirilebilir.

Burada özellikle “kesin olarak neden olur” gibi nedensellik ifade eden yorumlardan kaçınılmalıdır.


14. Uygulamanın Tam Kodu

Öğrenciler uygulamanın sonunda aşağıdaki kodu tek bir Python dosyasında çalıştırabilirler:

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt# -----------------------------# 1. Veri Setini Oluştur# -----------------------------df = pd.DataFrame({    "film": [        "Film A", "Film B", "Film C",        "Film D", "Film E", "Film F",        "Film G", "Film H", "Film I",        "Film J", "Film K", "Film L"    ],    "tur": [        "Drama", "Komedi", "Aksiyon",        "Drama", "Komedi", "Aksiyon",        "Drama", "Aksiyon", "Komedi",        "Drama", "Aksiyon", "Komedi"    ],    "puan": [        8.2, 6.8, 7.9,        9.1, 7.2, 8.0,        8.7, 7.6, 6.9,        8.9, 7.8, 7.4    ],    "oy_sayisi": [        125000, 85000, 230000,        410000, 54000, 180000,        310000, 150000, 62000,        350000, 210000, 97000

🎯 Uygulamanın Öğrenciye Kazandırması Gereken Düşünce

Bu uygulamada hedef yalnızca:

sns.histplot()sns.barplot()sns.scatterplot()

komutlarını öğrenmek değildir.

Asıl kazanım şudur:

Veri → Soru → Uygun Grafik → Grafik Okuma → Yorum

Öğrenci şu üçlü ayrımı doğru yapabiliyorsa uygulamanın temel amacı gerçekleşmiştir:

Histogram → dağılım

Bar Chart → kategorileri karşılaştırma

Scatter Plot → iki sayısal değişken arasındaki ilişki

Yorumlar

Bu blogdaki popüler yayınlar

Yapay Zekâ Uygulama Alanları

Görsel ve Video Üretiminde Üretken Yapay Zekâ Araçları

AI ve Toplum – Eğitim, Sağlık, Endüstri ve Kamu Hizmetlerinde Yapay Zekâ