- Katılım
- 4 Ocak 2016
- Konular
- 163
- Mesajlar
- 818
- Online süresi
- 1ay 29g
- Reaksiyon Skoru
- 761
- Altın Konu
- 59
- Başarım Puanı
- 214
- TM Yaşı
- 10 Yıl 3 Ay 18 Gün
- MmoLira
- 3,698
- DevLira
- 3
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. 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.
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.
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.
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.
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.
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.







