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 pltEğer Seaborn bilgisayarda kurulu değilse:
pip install seaborn3. 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:
puanoy_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
Yorum Gönder