Matplotlib Nedir?
Matplotlib, Python'da veri görselleştirme için en popüler ve güçlü kütüphanelerden biridir. Çizgi grafikler, çubuk grafikler, pasta grafikler, histogramlar ve daha birçok grafik türünü oluşturmak için kullanılır. Matplotlib, esnek yapısı ve geniş kullanıcı topluluğu ile veri görselleştirme projelerinde sıkça tercih edilir.
Matplotlib'in Kurulumu
Matplotlib kütüphanesini kullanabilmek için öncelikle Python ortamınıza kurmanız gerekmektedir. Kurulum için aşağıdaki komutu kullanabilirsiniz:
pip install matplotlib
Matplotlib ile İlk Grafik
Basit bir çizgi grafiği oluşturalım. Aşağıdaki örnek, x ve y verilerini kullanarak bir çizgi grafiği nasıl oluşturabileceğinizi göstermektedir.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# Grafik oluşturma
plt.plot(x, y)
plt.title('Basit Çizgi Grafiği')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
import matplotlib.pyplot as plt ile Matplotlib'in pyplot modülünü içe aktarıyoruz.
plt.plot(x, y) ile x ve y verilerini kullanarak bir çizgi grafiği oluşturuyoruz.
plt.title('Basit Çizgi Grafiği') ile grafiğe bir başlık ekliyoruz.
plt.xlabel('X Ekseni') ve plt.ylabel('Y Ekseni') ile x ve y eksenlerine etiket ekliyoruz.
plt.show() ile grafiği görüntülüyoruz.
Çizgi Grafiği (Line Plot)
Çizgi grafikleri, verilerin zaman içindeki değişimini göstermek için kullanılır. Aşağıda basit bir çizgi grafiği örneği verilmiştir.
pythonKodu kopyala
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
# Grafik oluşturma
plt.plot(x, y, marker='o')
plt.title('Çizgi Grafiği')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.grid(True)
plt.show()
Açıklama:
plt.plot(x, y, marker='o') ile veri noktalarını göstermek için işaretçiler ekliyoruz.
plt.grid(True) ile grafikte ızgara çizgilerini etkinleştiriyoruz.
Çubuk Grafiği (Bar Plot)
Çubuk grafikleri, kategorik verileri karşılaştırmak için kullanılır. Aşağıda basit bir çubuk grafiği örneği verilmiştir.
import matplotlib.pyplot as plt
# Verileri tanımlama
categories = ['A', 'B', 'C', 'D', 'E']
values = [5, 7, 3, 8, 4]
# Grafik oluşturma
plt.bar(categories, values, color='skyblue')
plt.title('Çubuk Grafiği')
plt.xlabel('Kategori')
plt.ylabel('Değer')
plt.show()
Açıklama:
plt.bar(categories, values, color='skyblue') ile kategorilere göre çubuklar oluşturuyoruz ve renk belirliyoruz.
Pasta Grafiği (Pie Chart)
Pasta grafikleri, verilerin parçalarının bütüne oranını göstermek için kullanılır. Aşağıda basit bir pasta grafiği örneği verilmiştir.
import matplotlib.pyplot as plt
# Verileri tanımlama
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
# Grafik oluşturma
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
plt.title('Pasta Grafiği')
plt.axis('equal')
plt.show()
Açıklama:
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140) ile pasta grafiği oluşturuyoruz.
plt.axis('equal') ile grafiği dairesel olarak ayarlıyoruz.
Histogram (Histogram)
Histogramlar, verilerin dağılımını göstermek için kullanılır. Aşağıda basit bir histogram örneği verilmiştir.
import matplotlib.pyplot as plt
import numpy as np
# Verileri tanımlama
data = np.random.randn(1000)
# Grafik oluşturma
plt.hist(data, bins=30, color='purple', alpha=0.7)
plt.title('Histogram')
plt.xlabel('Değer')
plt.ylabel('Frekans')
plt.show()
Açıklama:
np.random.randn(1000) ile normal dağılımlı 1000 rastgele sayı oluşturuyoruz.
plt.hist(data, bins=30, color='purple', alpha=0.7) ile histogram oluşturuyoruz ve 30 binlik kullanıyoruz.
Dağılım Grafiği (Scatter Plot)
Dağılım grafikleri, iki değişken arasındaki ilişkiyi göstermek için kullanılır. Aşağıda basit bir dağılım grafiği örneği verilmiştir.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 6, 7]
# Grafik oluşturma
plt.scatter(x, y, color='red')
plt.title('Dağılım Grafiği')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
plt.scatter(x, y, color='red') ile x ve y verilerini kullanarak dağılım grafiği oluşturuyoruz ve renk belirliyoruz.
Grafik Özelleştirmeleri
Başlık ve Eksen Etiketleri
Grafiklerinize başlık ve eksen etiketleri eklemek, verilerinizi daha anlaşılır hale getirir.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Grafik oluşturma
plt.plot(x, y)
plt.title('Grafik Başlığı')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
plt.title('Grafik Başlığı') ile grafiğe bir başlık ekliyoruz.
plt.xlabel('X Ekseni') ve plt.ylabel('Y Ekseni') ile eksenlere etiket ekliyoruz.
Grafik Boyutu ve Çözünürlüğü
Grafiklerin boyutunu ve çözünürlüğünü ayarlayarak daha iyi görselleştirmeler elde edebilirsiniz.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Grafik oluşturma
plt.figure(figsize=(10, 6), dpi=80)
plt.plot(x, y)
plt.title('Grafik Boyutu ve Çözünürlüğü')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
plt.figure(figsize=(10, 6), dpi=80) ile grafik boyutunu (10 inç genişlik ve 6 inç yükseklik) ve çözünürlüğünü (80 DPI) ayarlıyoruz.
Renkler ve Stil
Grafiklerinizi renklendirmek ve stil eklemek, görsel çekiciliği artırabilir.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Grafik oluşturma
plt.plot(x, y, color='green', linestyle='--', marker='o')
plt.title('Renkler ve Stil')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
plt.plot(x, y, color='green', linestyle='--', marker='o') ile çizgi rengini, stilini ve işaretçileri belirliyoruz.
Efsane (Legend) Ekleme
Grafiklerde birden fazla veri serisi varsa, efsane eklemek verilerin anlaşılmasını kolaylaştırır.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 3, 6, 10, 15]
# Grafik oluşturma
plt.plot(x, y1, label='Seri 1', color='blue')
plt.plot(x, y2, label='Seri 2', color='red')
plt.title('Efsane Ekleme')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.legend()
plt.show()
Açıklama:
plt.plot(x, y1, label='Seri 1', color='blue') ve plt.plot(x, y2, label='Seri 2', color='red') ile iki veri serisini farklı renklerle çiziyoruz.
plt.legend() ile efsane ekliyoruz.
Grafiklerde İleri Düzey Özelleştirmeler
Alt Grafikler (Subplots)
Birden fazla grafiği tek bir figürde göstermek için alt grafikler kullanılır.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 3, 6, 10, 15]
# Alt grafikler oluşturma
fig, axs = plt.subplots(2, 1, figsize=(8, 8))
axs[0].plot(x, y1, color='blue')
axs[0].set_title('Alt Grafik 1')
axs[1].plot(x, y2, color='red')
axs[1].set_title('Alt Grafik 2')
plt.show()
Açıklama:
fig, axs = plt.subplots(2, 1, figsize=(8, 8)) ile 2 satırlı ve 1 sütunlu alt grafikler oluşturuyoruz.
axs[0].plot(x, y1, color='blue') ile ilk alt grafiği ve axs[1].plot(x, y2, color='red') ile ikinci alt grafiği çiziyoruz.
Çoklu Grafikler
Aynı figürde birden fazla grafik göstermek için çoklu grafikler kullanılır.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 3, 6, 10, 15]
# Grafik oluşturma
plt.plot(x, y1, label='Seri 1', color='blue')
plt.plot(x, y2, label='Seri 2', color='red')
plt.title('Çoklu Grafikler')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.legend()
plt.show()
Açıklama:
plt.plot(x, y1, label='Seri 1', color='blue') ve plt.plot(x, y2, label='Seri 2', color='red') ile iki veri serisini aynı grafikte çiziyoruz.
plt.legend() ile efsane ekliyoruz.
Logaritmik Eksenler
Logaritmik eksenler, geniş bir veri aralığını daha iyi görselleştirmek için kullanılır.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 10, 100, 1000, 10000]
y = [10, 100, 1000, 10000, 100000]
# Grafik oluşturma
plt.plot(x, y)
plt.xscale('log')
plt.yscale('log')
plt.title('Logaritmik Eksenler')
plt.xlabel('X Ekseni (Log)')
plt.ylabel('Y Ekseni (Log)')
plt.show()
Açıklama:
plt.xscale('log') ve plt.yscale('log') ile x ve y eksenlerini logaritmik ölçeğe ayarlıyoruz.
Anotasyonlar (Annotations)
Grafiklerde belirli noktaları vurgulamak için anotasyonlar kullanılır.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Grafik oluşturma
plt.plot(x, y)
plt.title('Anotasyonlar')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
# Anotasyon ekleme
plt.annotate('Önemli Nokta', xy=(3, 6), xytext=(4, 7),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()
Açıklama:
plt.annotate('Önemli Nokta', xy=(3, 6), xytext=(4, 7), arrowprops=dict(facecolor='black', shrink=0.05)) ile belirli bir noktaya anotasyon ekliyoruz.
Grafik Kaydetme (Save Figure)
Oluşturduğunuz grafikleri dosya olarak kaydetmek için savefig fonksiyonunu kullanabilirsiniz.
import matplotlib.pyplot as plt
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Grafik oluşturma
plt.plot(x, y)
plt.title('Grafik Kaydetme')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
# Grafik kaydetme
plt.savefig('grafik.png', dpi=300)
plt.show()
Açıklama:
plt.savefig('grafik.png', dpi=300) ile grafiği 'grafik.png' olarak 300 DPI çözünürlüğünde kaydediyoruz.
Bu bölümde, Matplotlib ile veri görselleştirme konusunu detaylı bir şekilde ele aldık. Temel grafik türlerinden, grafik özelleştirmelerine ve ileri düzey grafik oluşturma tekniklerine kadar birçok konuyu işledik. Bir sonraki bölümde, Seaborn kütüphanesini kullanarak daha estetik ve karmaşık grafikler oluşturmayı öğreneceğiz.
Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !