Python İle Pandas Kütüphanesi Kullanarak Veri Görselleştirme Nasıl Yapılır?

Gereksinimler ve Ortam Kurulumu

Çalışmalarımıza başlamadan önce sisteminizde Python 3.10 veya daha güncel bir sürümün yüklü olduğundan emin olmalısınız. Pandas ve görselleştirme için gerekli olan Matplotlib kütüphanelerini yüklemek için terminalinizde aşağıdaki komutu çalıştırmanız yeterlidir.

pip install pandas matplotlib

Kurulum tamamlandıktan sonra, kodlarınızı yazacağınız IDE (VS Code veya Jupyter Notebook gibi) içerisinde kütüphaneleri içe aktararak ortamınızı test edebilirsiniz. 2026 standartlarına göre güncel kütüphane sürümlerini kullanmak, performans ve güvenlik açısından kritik öneme sahiptir.

Pandas ile Temel Grafik Çizimi

Pandas, plot() metodu aracılığıyla veri çerçevelerindeki (DataFrame) sayısal verileri doğrudan görselleştirebilir. İlk adım olarak basit bir çizgi grafiği oluşturarak başlayalım. Bu yöntem, zaman serisi verilerini analiz etmek için en hızlı yoldur.

import pandas as pd
import matplotlib.pyplot as plt

# Örnek veri oluşturma
data = {'Gün': ['Pzt', 'Sal', 'Çar', 'Per', 'Cum'],
        'Satış': [120, 150, 130, 170, 200]}
df = pd.DataFrame(data)

# Çizgi grafiği çizdirme
df.plot(x='Gün', y='Satış', kind='line', marker='o')
plt.title('Haftalık Satış Grafiği')
plt.show()

Yukarıdaki kod bloğunda, kind='line' parametresi ile çizgi grafiği türünü belirledik. marker='o' ise veri noktalarını belirginleştirmek için kullanılır. plt.show() komutu ise grafiğin ekranda görüntülenmesini sağlar.

Sütun Grafikleri ile Veri Karşılaştırma

Kategorik verileri karşılaştırmak istediğinizde sütun grafikleri (bar charts) en iyi tercihtir. Pandas içerisinde kind='bar' parametresini kullanarak kolayca dikey veya yatay sütun grafikleri oluşturabilirsiniz.

# Sütun grafiği oluşturma
df.plot(x='Gün', y='Satış', kind='bar', color='skyblue')
plt.ylabel('Satış Miktarı')
plt.show()

Bu örnekte color parametresi ile grafiğin rengini özelleştirdik. Sütun grafikleri, özellikle farklı kategoriler arasındaki farkı görsel olarak vurgulamak için kullanılır.

Dağılım Grafikleri (Scatter Plots) ile İlişki Analizi

İki sayısal değişken arasındaki ilişkiyi veya korelasyonu görmek için dağılım grafiklerini kullanırız. kind='scatter' parametresi, her bir veri noktasını bir koordinat düzlemine yerleştirir.

# Dağılım grafiği için örnek veri
data_scatter = {'Reklam': [10, 20, 30, 40, 50],
                'Gelir': [100, 180, 250, 310, 420]}
df_scatter = pd.DataFrame(data_scatter)

# Dağılım grafiği çizimi
df_scatter.plot(x='Reklam', y='Gelir', kind='scatter', color='red')
plt.title('Reklam Harcaması vs Gelir')
plt.show()

Dağılım grafikleri, özellikle regresyon analizi yaparken değişkenlerin birbiriyle nasıl etkileşime girdiğini anlamak için vazgeçilmezdir.

Pandas Görselleştirme Yöntemleri Karşılaştırma Tablosu

Grafik Türü Kullanım Amacı Pandas Parametresi
Çizgi (Line) Zaman serisi ve trend analizi kind='line'
Sütun (Bar) Kategorik karşılaştırma kind='bar'
Dağılım (Scatter) Değişkenler arası ilişki kind='scatter'
Histogram Veri dağılımı (frekans) kind='hist'
Pasta (Pie) Oransal paylar kind='pie'

Güvenlik Uyarısı: Harici veri setlerini (CSV, Excel, SQL) okurken mutlaka dosya yollarını doğrulayın. Kullanıcıdan alınan verilerle grafik oluşturuyorsanız, verinin temizlendiğinden ve zararlı karakterler içermediğinden emin olun. Üretim ortamlarında veri görselleştirme servisleri için yetkilendirme katmanlarını mutlaka devreye alın.

Grafikleri Özelleştirme ve Kaydetme

Oluşturduğunuz grafikleri profesyonel bir rapora dönüştürmek için başlıklar, eksen etiketleri ve ızgara çizgileri ekleyebilirsiniz. Ayrıca savefig() metodu ile grafikleri diskine kaydedebilirsiniz.

ax = df.plot(x='Gün', y='Satış', kind='bar', title='Haftalık Rapor')
ax.set_xlabel('Günler')
ax.set_ylabel('Adet')
plt.grid(True, linestyle='--', alpha=0.6)
plt.savefig('satis_grafigi.png', dpi=300)
plt.show()

Burada dpi=300 parametresi, grafiğin yüksek çözünürlüklü olarak kaydedilmesini sağlar. Bu, baskı veya sunum kalitesi için oldukça önemlidir.

Sıkça Sorulan Sorular

Pandas ile neden Matplotlib kullanıyoruz?

Pandas, görselleştirme motoru olarak Matplotlib'i kullanır. Pandas, daha az kodla hızlı grafik çizmenizi sağlayan bir arayüz sunarken, Matplotlib ise bu grafikleri en ince detayına kadar özelleştirmenize olanak tanır.

Grafiklerde Türkçe karakter sorunu yaşarsam ne yapmalıyım?

Matplotlib'in varsayılan yazı tipleri Türkçe karakterleri desteklemeyebilir. Bu durumda plt.rcParams['font.family'] = 'sans-serif' ayarını yaparak veya destekleyen bir yazı tipi yolu belirterek sorunu çözebilirsiniz.

Çok büyük veri setlerini görselleştirmek performansı düşürür mü?

Evet, milyonlarca satırlık veriyi doğrudan tek bir grafikte çizdirmek bellek (RAM) sorunlarına yol açabilir. Bu durumlarda veriyi örneklemeli (sampling) veya toplulaştırmalısınız (aggregation).

Pandas ile interaktif grafikler yapılabilir mi?

Pandas'ın kendi plot() metodu statik grafikler üretir. Eğer interaktif (üzerine gelince veri gösteren) grafikler istiyorsanız, Pandas ile uyumlu çalışan Plotly veya Bokeh gibi kütüphanelere göz atabilirsiniz.

Grafikleri web sitesinde yayınlamak için en iyi format nedir?

Web projelerinde grafiklerin hızlı yüklenmesi için genellikle SVG veya optimize edilmiş PNG formatları tercih edilir. SVG, vektörel olduğu için yakınlaştırıldığında bozulmaz.

Kod Güvenliği Sorumluluk Reddi: Bu makalede paylaşılan kod örnekleri eğitim amaçlıdır. Veri işleme süreçlerinde, özellikle SQL veritabanlarından veri çekerken SQL Injection saldırılarına karşı parametreli sorgular kullanmayı ihmal etmeyin.

İleri Seviye Görselleştirme: Çoklu Grafik Düzenleri (Subplots)

Pandas ile çalışırken bazen tek bir grafik yerine, verinin farklı boyutlarını aynı anda incelemek için yan yana veya alt alta dizilmiş grafiklere ihtiyaç duyarsınız. subplots parametresi, Matplotlib'in gücünü doğrudan Pandas'a taşımanıza olanak tanır. Bu yöntem, özellikle karşılaştırmalı analizlerde verinin farklı segmentlerini tek bir bakışta görmenizi sağlar.

Aşağıdaki örnekte, aynı veri seti üzerinde farklı sütunları nasıl bağımsız grafikler olarak çizebileceğinizi görebilirsiniz:

import pandas as pd
import matplotlib.pyplot as plt

# Örnek veri seti oluşturma
data = {'Ay': ['Ocak', 'Şubat', 'Mart', 'Nisan'],
        'Satis': [100, 150, 120, 180],
        'Gider': [80, 90, 70, 110]}
df = pd.DataFrame(data)

# 1 satır, 2 sütunlu bir düzen oluşturma
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(12, 5))

# İlk grafiği birinci eksene çizme
df.plot(x='Ay', y='Satis', ax=axes[0], kind='bar', color='skyblue', title='Aylık Satışlar')

# İkinci grafiği ikinci eksene çizme
df.plot(x='Ay', y='Gider', ax=axes[1], kind='line', marker='o', color='salmon', title='Aylık Giderler')

plt.tight_layout()
plt.show()

Veri Görselleştirme Süreçlerinde Hata Ayıklama ve Optimizasyon

Pandas ile grafik oluştururken karşılaşılan en yaygın sorunlar genellikle veri tipi uyumsuzlukları veya eksik değerlerden (NaN) kaynaklanır. Görselleştirme aşamasına geçmeden önce verinizi temizlemek, grafiklerinizin doğruluğunu doğrudan etkiler.

Grafik Hatalarını Giderme İpuçları

  • Veri Tipi Kontrolü: Eğer grafik çizdirirken TypeError alıyorsanız, ilgili sütunun sayısal (int veya float) olduğundan emin olun. df['sutun'].astype(float) komutu ile dönüşüm yapabilirsiniz.
  • Eksik Değerler: Pandas, varsayılan olarak eksik değerleri görmezden gelir ancak bu durum grafiklerde kopukluklara neden olabilir. df.fillna(0) veya df.dropna() yöntemleri ile veriyi görselleştirmeye hazır hale getirin.
  • Bellek Yönetimi: Çok büyük veri setlerinde tüm veriyi çizdirmek yerine, df.sample(n=1000) ile veriden rastgele örneklem alarak grafik performansını artırabilirsiniz.

Aşağıdaki kod bloğu, görselleştirme öncesi verinin temizlenmesi ve güvenli bir şekilde çizdirilmesi için bir şablon sunar:

# Veri temizleme ve güvenli çizim örneği
def temizle_ve_ciz(df, sutun_adi):
    # Sayısal olmayan değerleri temizle
    df[sutun_adi] = pd.to_numeric(df[sutun_adi], errors='coerce')
    
    # Eksik değerleri ortalama ile doldur
    df[sutun_adi] = df[sutun_adi].fillna(df[sutun_adi].mean())
    
    # Çizim
    df[sutun_adi].plot(kind='hist', bins=20)
    plt.title(f"{sutun_adi} Dağılımı")
    plt.show()

# Kullanım:
# temizle_ve_ciz(df, 'Fiyat')

Bu teknikleri uygulayarak, görselleştirme süreçlerinizi daha profesyonel hale getirebilir ve karmaşık veri setlerinde dahi hızlı sonuçlar alabilirsiniz.

Sonuç

Python ile Pandas kütüphanesini kullanarak veri görselleştirme yapmak, veri analitiği yolculuğunuzda size büyük hız kazandıracaktır. Bu rehberde öğrendiğiniz temel grafik türleri ve özelleştirme teknikleri, günlük analizleriniz için yeterli bir temel oluşturur. Bir sonraki adım olarak, Seaborn kütüphanesini inceleyerek daha estetik ve istatistiksel açıdan zengin grafikler oluşturmayı deneyebilirsiniz. Veri görselleştirme, verinin hikayesini anlatmanın en güçlü yoludur; bu nedenle pratik yapmaya devam edin.

Bu yazıya tepkinizi paylaşın:
Selin Yılmaz

Zaman yönetimi ve üretkenlik ipuçları üzerine uzmanlaşmış bir içerik yazarıyım. Günlük yaşamı kolaylaştıran etkili yöntemleri okuyucularla paylaşarak hayat kalitesini artırmayı hedefliyorum.

Yorumlar (0)

Yorum Yaz