Matplotlib, görselleştirme oluşturmak için güçlü bir Python kütüphanesidir. Bununla birlikte, birden çok alt grafikle çalışırken, efsaneleri yönetmek karmaşık hale gelebilir. Bu makale, tüm alt grafiklerinizde tek, birleşik bir efsane oluşturmak için etkili yöntemler sunmaktadır.
İçerik Tablosu
- Matplotlib’te Alt Grafikleri Anlamak
- Yöntem 1:
fig.legend()
kullanımı - Yöntem 2: Efsane Yerleşimi ve Görünümünün Özelleştirilmesi
- Yöntem 3: Alt Grafik Başına Birden Çok Çizginin İşlenmesi
- Sonuç
- SSS
Matplotlib’te Alt Grafikleri Anlamak
Alt grafikler, tek bir şekilde birden çok grafiği düzenler. Matplotlib’te, bunları matplotlib.pyplot.subplots()
kullanarak oluşturursunuz; bu, bir şekil nesnesi ve bir dizi eksen nesnesi (alt grafik başına bir tane) döndürür.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2) # 2x2 alt grafik ızgarası
# Her alt grafikte veri çizimi
axes[0, 0].plot([1, 2, 3], [4, 5, 6], label='Çizgi 1')
axes[0, 1].plot([1, 2, 3], [7, 8, 9], label='Çizgi 2')
axes[1, 0].plot([1, 2, 3], [10, 11, 12], label='Çizgi 1')
axes[1, 1].plot([1, 2, 3], [13, 14, 15], label='Çizgi 2')
plt.show()
Bu, her birinin kendi efsanesine sahip 2×2 bir ızgara oluşturur. Bunları tek bir efsanede birleştireceğiz.
Yöntem 1: fig.legend()
kullanımı
En basit yaklaşım, şekil nesnesinin legend()
yöntemini kullanır. Bu, tüm efsane tutamaklarını ve etiketlerini toplamayı gerektirir.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2)
lines1, = axes[0, 0].plot([1, 2, 3], [4, 5, 6], label='Çizgi 1')
lines2, = axes[0, 1].plot([1, 2, 3], [7, 8, 9], label='Çizgi 2')
lines3, = axes[1, 0].plot([1, 2, 3], [10, 11, 12], label='Çizgi 1')
lines4, = axes[1, 1].plot([1, 2, 3], [13, 14, 15], label='Çizgi 2')
# Benzersiz tutamakları ve etiketleri toplama
handles = [lines1, lines2]
labels = [h.get_label() for h in handles]
fig.legend(handles, labels, loc='upper right')
plt.show()
Not: Efsanede çoğaltmaları önlemek için yalnızca benzersiz tutamaklar kullanıyoruz. loc
, efsanenin konumunu belirtir.
Yöntem 2: Efsane Yerleşimi ve Görünümünün Özelleştirilmesi
Efsanenin konumunu, kenarlığını, yazı tipi boyutunu ve daha fazlasını özelleştirebilirsiniz.
import matplotlib.pyplot as plt
# ... (Yöntem 1'den çizim kodu) ...
fig.legend(handles, labels, loc='lower center', bbox_to_anchor=(0.5, -0.1), ncol=2, frameon=True, fontsize=12)
plt.show()
Burada, efsaneyi alt merkeze yerleştirdik, bbox_to_anchor
ile dikey konumu ayarladık, iki sütun (ncol=2
) kullandık, bir kenarlık ekledik (frameon=True
) ve yazı tipi boyutunu artırdık.
Yöntem 3: Alt Grafik Başına Birden Çok Çizginin İşlenmesi
Bir alt grafik içinde birden çok çizgi için, tüm ilgili tutamakları ve etiketleri toplayın.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
line1, = ax.plot([1, 2, 3], [4, 5, 6], label='Çizgi 1')
line2, = ax.plot([1, 2, 3], [7, 8, 9], label='Çizgi 2')
line3, = ax.plot([1, 2, 3], [10, 11, 12], label='Çizgi 3')
fig.legend([line1, line2, line3], [line1.get_label(), line2.get_label(), line3.get_label()], loc='best')
plt.show()
Sonuç
Tüm alt grafikler için tek bir efsane oluşturmak, Matplotlib görselleştirmelerinizin netliğini ve okunabilirliğini artırır. Yukarıda gösterilen fig.legend()
ve uygun tutamak/etiket yönetimi kullanan yöntemler, efsane yerleşimi ve görünümü üzerinde kontrol sunar.
SSS
- S: Farklı çizgi stillerim varsa ne olur? C: Efsane bu farklılıkları otomatik olarak yansıtacaktır.
- S: Aynı etiket için farklı renkler kullanabilir miyim? C: Evet, ancak efsane etiket başına yalnızca bir renk gösterecektir. Farklılaştırmak için farklı etiketler kullanın.
- S: Efsanem grafiklerle örtüşüyor. C:
bbox_to_anchor
,loc
, yazı tipi boyutu veya şekil boyutunu ayarlayın.