Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Python’da matplotlib mantığı

devemoji

Hüküm haktan yanadır.
Telefon Numarası Onaylanmış Üye
Yönetici
Katılım
4 Ocak 2016
Konular
191
Mesajlar
901
Çözüm
7
Online süresi
1mo 29d
Reaksiyon Skoru
891
Altın Konu
73
Başarım Puanı
214
MmoLira
7,078
DevLira
18
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Python’da grafik işiyle biraz uğraşan herkesin yolu matplotlib’le kesişiyor zaten. İlk başta karışık geliyor ama mantığını çözünce bayağı rahat ilerliyor. Ben de ilk kurcaladığımda neyin ne olduğunu anlamakta zorlanmıştım. Özellikle pyplot ile başlayınca iş daha akıcı hale geliyor.


Matplotlib aslında Python için iki boyutlu grafik kütüphanesi, farklı formatlarda kaliteli görseller üretmek mümkün. Kurulumu da basit, çoğu dağıtımda hazır geliyor, özellikle Anaconda kullananlar direkt içinde buluyor. Kod tarafında genelde import matplotlib as mpl diye çağrılıyor, sonra sürüm kontrolü falan yapılabiliyor. İçinde bir sürü modül var, bunlar da kendi içinde class ve fonksiyonlara bölünmüş, yani yapı bayağı katmanlı. Mantık olarak gerçek hayatta çizim yapmaya benziyor. Önce bir zemin var, sonra araçlar, sonra ne çizeceğine karar veriyorsun ve adım adım ilerliyorsun. Burada sanatçı gibi davranan şey matplotlib’in kendisi, kullanıcı daha çok yöneten tarafta kalıyor. Ne çizileceğini söylüyorsun, nasıl çizileceğini kütüphane hallediyor. Bu yüzden üst seviye fonksiyonlarla başlamak daha mantıklı, mesela pyplot kullanarak tek komutla histogram çizmek mümkün oluyor. İşin olayı zaten bu hiyerarşi. Mesela bir histogram aslında bir sürü dikdörtgenden oluşuyor ama sen tek satır kod yazıyorsun. Normalde o dikdörtgenlerin koordinatını, boyutunu falan tek tek hesaplamak gerekirdi. Bu yapı sayesinde üst seviye grafikler, alt seviyedeki basit şekillerin birleşimi olarak geliyor. Her şeyi sıfırdan çizmek zorunda kalmıyorsun, yoksa ciddi vakit giderdi.


images.png



Pyplot arayüzü de MATLAB komutlarına benzer şekilde hazırlanmış. Zaten matplotlib ilk başta MATLAB’a alternatif olarak düşünülmüş. Bir dönem pyplot ve numpy’yi birleştiren pylab diye bir yapı vardı ama çok önerilmiyor. Gizli import işleri yüzünden kafayı karıştırabiliyor, o yüzden çoğu kişi ya direkt pyplot ya da nesne yönelimli (OOP) kullanım tercih ediyor. Daha ileri işlerde, özellikle GUI entegrasyonu gibi konularda, pyplot tek başına yetmiyor. O noktada matplotlib’in OOP yapısına girmen gerekiyor. Bu biraz daha karmaşık çünkü class ve method mantığını bilmek lazım ama kontrol tamamen sende oluyor. Yine de basit işlerde pyplot bırakılmıyor, hızlı iş görmek için ideal. Matplotlib’te en üst seviye obje Figure. Bunun içinde Axes var, onun içinde de Axis yapısı geliyor. Yani Figure → Axes → Axis şeklinde ilerleyen bir yapı var, biraz matruşka gibi iç içe. Figure genel tuval gibi, Axes çizim alanı, Axis de koordinat sistemi kısmı. Tick ve label gibi detaylar da bu yapıların altına yerleşiyor.

maxresdefault.jpg



Bir de Artists olayı var, aslında ekranda gördüğün her şey bu sınıfa giriyor. Yazılar, çizgiler, şekiller hepsi birer Artist. Bunlar render sırasında canvas üzerine çiziliyor. Aynı Artist’i birden fazla Axes’te kullanamıyorsun, her şey bağlı olduğu alanda kalıyor. API tarafında da üç ana parça var: FigureCanvas, Renderer ve Artist. Canvas çizim yüzeyi, Renderer nasıl çizileceğini biliyor, Artist ise neyin çizileceğini belirliyor. Günlük kullanımda zamanın büyük kısmı zaten Artist’lerle geçiyor. Yani çizgiyi, yazıyı, grafiği ayarlayan kısım burası. Artist’ler de kendi içinde primitive ve container diye ayrılıyor. Primitive dediğin çizgi, dikdörtgen, yazı gibi temel şeyler. Container ise bunları tutan yapılar, yani Figure, Axes, Axis gibi. Özellikle Axes en çok uğraşılan kısım oluyor, grafiklerin asıl döndüğü yer burası. Genelde workflow şöyle ilerliyor: bir Figure oluşturuyorsun, içine bir ya da daha fazla Axes koyuyorsun, sonra o Axes üzerinden grafik çiziyorsun. Eğer otomatik gelen eksen ayarları hoşuna gitmezse Axis ve Tick tarafına girip ince ayar yapıyorsun. Bu sistemi bir kere kafada oturtunca matplotlib eskisi gibi karmaşık gelmiyor.
 

Ekli dosyalar

  • maxresdefault.jpg
    maxresdefault.jpg
    61.6 KB · Görüntüleme: 0
düz çeviri.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst