Matplotlib’de uzun etiketler veya üst üste binen metinlerle uğraşırken x ekseni tik etiketlerini döndürmek yaygın bir işlemdir. Bu makale, çeşitli çizim senaryoları için esneklik sunarak, net ve okunabilir görselleştirmeler elde etmenin birkaç yöntemini ele almaktadır.
İçerik Tablosu
plt.xticks()
Kullanımıfig.autofmt_xdate()
Kullanımıax.set_xticklabels()
Kullanımıplt.setp()
Kullanımıax.tick_params()
Kullanımı- Etiket Hizalamasını Optimize Etme
plt.xticks()
Kullanımı
Bu, x ekseni tik etiketlerini döndürmek için en basit yaklaşımdır. rotation
parametresi döndürme açısını doğrudan kontrol eder.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
y = np.random.rand(10)
labels = ['Çok Uzun Etiket ' + str(i) for i in x]
plt.plot(x, y)
plt.xticks(x, labels, rotation=45, ha='right') # ha='right' etiketleri sağa hizalar
plt.xlabel("X ekseni")
plt.ylabel("Y ekseni")
plt.title("X Ekseni Etiketlerini Döndürme")
plt.tight_layout() # Üst üste binen etiketleri önler
plt.show()
ha='right'
bağımsız değişkeni, döndürme sonrasında doğru hizalama için çok önemlidir. plt.tight_layout()
, üst üste binen etiketleri önlemeye ve genel okunabilirliği iyileştirmeye yardımcı olur.
fig.autofmt_xdate()
Kullanımı
Özellikle tarih etiketleri için tasarlanan fig.autofmt_xdate()
, optimum okunabilirlik için döndürme ve hizalamayı otomatik olarak ayarlar.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime
dates = [datetime.date(2024, 1, i) for i in range(1, 11)]
values = np.random.rand(10)
fig, ax = plt.subplots()
ax.plot(dates, values)
fig.autofmt_xdate(rotation=45)
plt.show()
Bu yöntem, zaman serisi verileriyle çalışırken, tarih biçimlendirmesini ve etiket yerleşimini otomatik olarak ele alarak işlemi basitleştirir.
ax.set_xticklabels()
Kullanımı
Bu yöntem, döndürmeden önce etiketleri özelleştirmenize izin vererek daha fazla kontrol sunar.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
y = np.random.rand(10)
labels = ['Etiket ' + str(i) for i in x]
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticklabels(labels, rotation=70)
plt.show()
plt.setp()
Kullanımı
plt.setp()
, döndürme dahil olmak üzere mevcut tik etiketi özelliklerini değiştirmenin özlü bir yolunu sağlar.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
y = np.random.rand(10)
fig, ax = plt.subplots()
ax.plot(x, y)
plt.setp(ax.get_xticklabels(), rotation=30)
plt.show()
ax.tick_params()
Kullanımı
Döndürme dahil olmak üzere çeşitli tik özellikleri üzerinde ince ayarlı kontrol için ax.tick_params()
en çok yönlü seçenektir.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
y = np.random.rand(10)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.tick_params(axis='x', labelrotation=60)
plt.show()
Etiket Hizalamasını Optimize Etme
Seçilen yönteme bakılmaksızın, doğru hizalama okunabilirlik için çok önemlidir. plt.xticks()
veya ax.set_xticklabels()
içindeki ha
(yatay hizalama) parametresi (‘sol’, ‘orta’, ‘sağ’), yatay konumu kontrol eder. Grafik için en uygun hizalamayı bulmak için deney yapın. Üst üste binen etiketleri önlemek için her zaman plt.tight_layout()
kullanmayı düşünün.
Bu tekniklerde ustalaşarak, karmaşık veya uzun x ekseni etiketleri olsa bile, net ve bilgilendirici Matplotlib grafikleri oluşturabilirsiniz.