Python Matplotlib Y Ekseni Grafiğin Sağ Tarafında işaretleniyor


112

Basit bir çizgi grafiğim var ve y ekseni işaretlerini grafiğin (varsayılan) sol tarafından sağ tarafa taşımam gerekiyor. Bunun nasıl yapılacağına dair herhangi bir fikrin var mı?

Yanıtlar:


192

kullanım ax.yaxis.tick_right()

Örneğin:

from matplotlib import pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
plt.plot([2,3,4,5])
plt.show()

görüntü açıklamasını buraya girin


Harika cevap, +1 alırsınız, resim için size bir +1 daha veririm ama ben sadece 1 ile sınırlıyım.
lukecampbell

onlar sharey = Doğru tarafından bastırılması gerektiğine rağmen bu bile geri gelmek için kene isimlerini neden olduğunu ilginç
Endolit

Ya hem sol hem de sağ keneleri ve etiketleri istersem?
AstroFloyd

1
Nedenini çözmedim, ancak alt planlarınız varsa bu bozulur sharey=True.
Steven C. Howell

Keneler solda görünmesi için komut nedir ve sağ? Teşekkürler!
tommy.carstensen

99

Doğru etiketleri kullanın ax.yaxis.set_label_position("right"), yani:

f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.plot([2,3,4,5])
ax.set_xlabel("$x$ /mm")
ax.set_ylabel("$y$ /mm")
plt.show()

57

joaquin'in cevabı işe yarıyor, ancak eksenlerin sol tarafındaki keneleri kaldırmak gibi bir yan etkiye sahip. Bunu düzeltmek için tick_right()bir çağrı ile takip edin set_ticks_position('both'). Gözden geçirilmiş bir örnek:

from matplotlib import pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
plt.plot([2,3,4,5])
plt.show()

Sonuç, her iki tarafında işaretli bir grafiktir, ancak sağda etiketleri işaretleyin.

görüntü açıklamasını buraya girin


24

Sadece birinin sorduğu durumda (benim yaptığım gibi), bu, subplot2grid kullanıldığında da mümkündür. Örneğin:

import matplotlib.pyplot as plt
plt.subplot2grid((3,2), (0,1), rowspan=3)
plt.plot([2,3,4,5])
plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')
plt.show()

Bunu gösterecek:

görüntü açıklamasını buraya girin


4
Bu da işe ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')yarar. Ama hareket etmiyorylabel
Eric

1
Her zaman plt.gca()mevcut eksen nesnesini almak için kullanabilirsiniz . Bu nedenle şunları kullanırsınız:plt.gca().yaxis.set_label_position("right")
sannaj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.