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
TypeErroralı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)veyadf.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.


Yorumlar (0)
Yorum Yaz