logologo
Ai badge logo

Bu madde yapay zeka desteği ile üretilmiştir.

BlogGeçmiş
Blog
Avatar
Ana YazarYasin Şahin23 Nisan 2025 18:38

Matplotlib Kütüphanesi

fav gif
Kaydet
viki star outline

Matplotlib, Python programlama dili için geliştirilmiş en eski ve en yaygın kullanılan veri görselleştirme kütüphanelerinden biridir. Grafikler, çizgi grafikler, çubuk grafikler, pasta grafikler, histogramlar, scatter plotlar ve daha fazlasını oluşturmak için kullanılır.

Tarihçesi

Matplotlib, 2003 yılında John D. Hunter tarafından geliştirilmeye başlandı. Bilimsel verileri görselleştirmek isteyen Hunter, MATLAB'e benzer bir grafik aracı oluşturmak amacıyla bu kütüphaneyi yazdı. Zamanla akademik çevrelerde yaygınlaştı ve Python’un bilimsel ekosisteminin temel taşlarından biri hâline geldi.

John Hunter’ın 2012’de vefatından sonra geliştirici topluluğu projeye sahip çıkarak geliştirmeye devam etti.

Temel Özellikleri

  • 2D ve sınırlı olarak 3D grafik çizimi
  • Etkileşimli grafikler
  • Yüksek özelleştirme imkanı (renkler, yazı tipleri, çizgi stilleri vb.)
  • Çeşitli çıktı formatları (PNG, SVG, PDF, EPS)
  • GUI entegrasyonları (Tkinter, PyQt, wxPython vb.)
  • MATLAB benzeri API: Pyplot

Kullanım Alanları

  • Veri analizi ve görselleştirme
  • Bilimsel raporlama
  • Makine öğrenmesi ve AI çıktılarının gösterimi
  • Finansal ve ekonomik grafikler
  • Mühendislik ve simülasyon uygulamaları

Kurulum

pip install matplotlib

Temel Kullanım

1) Çizgi Grafiği Örnekleri

Farklı Renk ve Stil

import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 4, 9, 16, 25]
y2 = [0, 1, 2, 3, 4, 5]
plt.plot(x, y1, color='red', linestyle='--', marker='o', label='Kare')
plt.plot(x, y2, color='blue', linestyle='-', marker='s', label='Doğrusal')
plt.title("İki Farklı Fonksiyon")
plt.xlabel("X Ekseni")
plt.ylabel("Y Ekseni")
plt.legend()
plt.grid(True)
plt.show()

Tarih Bazlı Grafik

import matplotlib.dates as mdates
import datetime
tarihler = [datetime.datetime(2023, 1, i+1) for i in range(10)]
veriler = [i**0.5 for i in range(10)]
plt.plot(tarihler, veriler)
plt.gcf().autofmt_xdate()
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m'))
plt.title("Tarihe Göre Veri Değişimi")
plt.show()

2) Çubuk Grafik (Bar Plot) Örnekleri

Yatay Çubuk Grafiği

kategoriler = ['A', 'B', 'C', 'D']
degerler = [10, 20, 5, 15]
plt.barh(kategoriler, degerler, color='green')
plt.title("Yatay Bar Grafiği")
plt.show()

Gruplandırılmış Çubuk Grafik

import numpy as np
kategoriler = ['2021', '2022', '2023']
erkek = [30, 35, 40]
kadin = [25, 30, 38]
x = np.arange(len(kategoriler))
genislik = 0.4
plt.bar(x - genislik/2, erkek, width=genislik, label='Erkek', color='blue')
plt.bar(x + genislik/2, kadin, width=genislik, label='Kadın', color='pink')
plt.xticks(x, kategoriler)
plt.ylabel("Katılım Sayısı")
plt.title("Yıllara Göre Katılım")
plt.legend()
plt.show()

3) Histogram Örnekleri

Normal Dağılım Histogramı

veri = np.random.normal(0, 1, 1000)
plt.hist(veri, bins=30, color='skyblue', edgecolor='black')
plt.title("Normal Dağılım Histogramı")
plt.xlabel("Değer")
plt.ylabel("Frekans")
plt.show()

Histogram + Yoğunluk Eğrisi

import seaborn as sns
veri = np.random.normal(0, 1, 1000)
sns.histplot(veri, kde=True, color="orange")
plt.title("Histogram + KDE")
plt.show()

4) Pasta Grafiği (Pie Chart) Örnekleri

Dilim Ayırmalı Pasta Grafiği

etiketler = ['Python', 'C++', 'Java', 'Rust']
oranlar = [40, 25, 20, 15]
patlat = [0.1, 0, 0, 0]
plt.pie(oranlar, labels=etiketler, autopct='%1.1f%%', explode=patlat)
plt.title("Dillerin Kullanım Yüzdesi")
plt.show()

5) Scatter (Saçılım) Grafikleri

Renkli ve Boyutlu Noktalar

x = np.random.rand(100)
y = np.random.rand(100)
renk = np.random.rand(100)
boyut = 1000 * np.random.rand(100)
plt.scatter(x, y, c=renk, s=boyut, alpha=0.5, cmap='viridis')
plt.colorbar()
plt.title("Gelişmiş Scatter Plot")
plt.show()

6) 3D Grafik Örneği

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
ax.plot_surface(X, Y, Z, cmap='plasma')
ax.set_title("3D Yüzey Grafiği")
plt.show()

7) Subplot ve Çoklu Grafikler

2x2 Subplot

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot([1, 2, 3], [1, 4, 9])
axs[0, 0].set_title("Çizgi")
axs[0, 1].bar(['A', 'B', 'C'], [5, 7, 3])
axs[0, 1].set_title("Bar")
axs[1, 0].hist(np.random.randn(100))
axs[1, 0].set_title("Histogram")
axs[1, 1].scatter(np.random.rand(10), np.random.rand(10))
axs[1, 1].set_title("Scatter")
plt.tight_layout()
plt.show()

8) Matplotlib ile Gerçek-Zamanlı Grafik (Canlı Güncelleme)

import time
x = []
y = []
plt.ion()  # interaktif mod
fig, ax = plt.subplots()
for i in range(20):
    x.append(i)
    y.append(i ** 2)
    ax.clear()
    ax.plot(x, y, marker='o')
    ax.set_title("Canlı Güncellenen Grafik")
    plt.pause(0.5)
plt.ioff()
plt.show()

9) Matplotlib + Pandas Entegrasyonu

import pandas as pd
df = pd.DataFrame({
    "Yıl": [2020, 2021, 2022, 2023],
    "Satış": [100, 150, 180, 220]
})
df.plot(x='Yıl', y='Satış', kind='line', marker='o', title='Yıllık Satış')
plt.grid(True)
plt.show()

Matplotlib’in Python Ekosistemindeki Yeri

  • NumPy: Matplotlib genellikle NumPy dizileri ile birlikte çalışır.
  • Pandas: Pandas veri çerçeveleri ile kolay grafik çizimi sağlar.
  • Seaborn: Matplotlib üzerine inşa edilmiş, istatistiksel görselleştirmeye odaklı daha şık grafikler çizer.
  • Jupyter Notebook: Grafiklerin interaktif şekilde gösterilmesini sağlar (%matplotlib inline).

Matplotlib, veri bilimi, yapay zeka ve mühendislik alanlarında Python'un görselleştirme standardı haline gelmiştir. Özellikle akademik yayınlarda ve bilimsel raporlamalarda sıklıkla tercih edilir.


Matplotlib, Python’un görselleştirme dünyasının temel yapı taşlarından biridir. Özelleştirilebilir yapısı, geniş kullanım alanı ve diğer kütüphanelerle olan entegrasyonu sayesinde hem yeni başlayanlar hem de uzmanlar için vazgeçilmezdir.

Kaynakça

Matplotlib. Matplotlib Documentation. Erişim Tarihi 23 Nisan 2025. https://matplotlib.org/stable/contents.html

Matplotlib. Matplotlib GitHub Repository. Erişim Tarihi 23 Nisan 2025. https://github.com/matplotlib/matplotlib

Matplotlib. Matplotlib Official Website. Erişim Tarihi 23 Nisan 2025. https://matplotlib.org/

Sen de Değerlendir!

0 Değerlendirme

Blog İşlemleri

KÜRE'ye Sor