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

Altın Konu Matplotlib’te Grafik Üstüne Yazı ve Font Ayarları

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’la grafik işine girdikten sonra en çok uğraştığım şeylerden biri aslında çizgi falan değil, direkt yazı kısmı olmuştu. Grafik güzel çiziliyor ama üstüne düzgün açıklama koymak, eksenleri anlamlı hale getirmek falan işin asıl “okunabilirlik” kısmı. Matplotlib’de de bu iş baya temel bir yer tutuyor, yani her şeyin içine gömülü gibi düşünmek lazım.

İlk kısımda olay tamamen matplotlibrc denen ayar dosyasıyla başlıyor. Bu dosya Matplotlib açılır açılmaz devreye giriyor ve bütün varsayılan ayarları oradan çekiyor. Yani fontlar, çizgi kalınlıkları, renkler, her şey orada.

İstersen bunu değiştirip kendi “default grafik stilini” bile oluşturabiliyorsun ama çoğu zaman insanlar direkt rcParams üzerinden oynuyor çünkü script içinde anlık değiştirmek daha pratik oluyor. Ben de genelde öyle yapıyordum, tek tek dosyayla uğraşmak biraz ağır geliyor.

0_gv0UfDFgb2gi0Iyc.png



mpl.rcParams dediğin şey aslında sistemin o anki tüm grafik ayarlarını gösteriyor. Bir nevi oyun içi config menüsü gibi düşün. Renk paletinden yazı fontuna kadar ne varsa listeleniyor. İstersen değiştiriyorsun, istersen default’a geri dönüyorsun. Özellikle grafik çıktısı tutarlılığı istiyorsan burası kritik oluyor, yoksa her plot farklı karakterde çıkabiliyor.

Asıl olay 3.2 kısmında başlıyor, yani grafiğin üstüne yazı koyma işi. En basic komut plt.text(). Koordinat veriyorsun, bir de string yazıyorsun, o kadar ama burada iki farklı dünya var: biri direkt veri koordinatları, diğeri ise ekranın kendi 0-1 aralığı. Mesela (0.5, 0.5) dediğin şey aslında grafiğin tam ortası gibi çalışıyor.

Bu ilk başta kafa karıştırıyor ama bir süre sonra alışıyorsun. Bir de yazıyı “stilize etme” kısmı var. horizontalalignment, verticalalignment gibi ayarlarla yazıyı hizalıyorsun. Hatta bbox verip arkasına kutu bile koyabiliyorsun.



mojibake.Cm0uMCu-.jpeg



Bu özellikle grafik üstü açıklamalarda baya işe yarıyor, yoksa yazı veriyle çakışıp okunmaz hale geliyor. O eski projelerde bunu çok yaşamıştım, grafiği çiziyorsun ama yazı kayboluyor resmen. Daha gelişmiş tarafında xlabel, ylabel, title gibi klasik şeyler var.

Bunlar zaten her grafikte standart. Bir de figtext ve suptitle gibi Figure seviyesinde çalışan şeyler var, yani tek bir eksene değil tüm görsele etki ediyorlar. annotate ise biraz daha “oyun içi marker” gibi, belirli bir noktayı işaretleyip açıklama ekliyorsun, bazen ok bile ekleniyor. Örnek kısımda bir cardioid eğrisi çiziliyor.

Üstüne farklı şekillerde üç ayrı text eklenmiş: biri direkt veri koordinatında, biri çerçeveli kutu içinde, biri de eksen dönüşümüne bağlı relative koordinatta. Burada farkı net görüyorsun aslında, aynı yazı ama üç farklı davranış. Bir de küçük ama sinir bozucu bir detay var, save fonksiyonunda Windows hatası almış. ./pictures/png klasörü yoksa oluşturuyor ama Windows tarafında path bazen sıkıntı çıkarabiliyor.

O dönem bunu çok yaşamıştım, küçük bir klasör hatası bütün plot kaydını çökertiyor. Genel olarak bakınca Matplotlib’de yazı işi basit gibi başlıyor ama kontrol seviyesi baya yüksek. Bir noktadan sonra sadece grafik değil, neredeyse tasarım yapıyorsun gibi oluyor.
 

Ekli dosyalar

  • images.png
    images.png
    6.1 KB · Görüntüleme: 0
Son düzenleme:
Paylaşım için teşekkürler :)
 

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

Geri
Üst