2012-11-13 17 views
31

Czy istnieje prosty sposób umieszczenia etykiety osi Y po prawej stronie wykresu? Wiem, że można to zrobić dla etykiet zaznaczania przy użyciu ax.yaxis.tick_right(), ale chciałbym wiedzieć, czy można to zrobić również dla etykiety osi.etykieta osi y macplotlib po prawej stronie

Jeden pomysł, który przyszedł mi do głowy było wykorzystanie

ax.yaxis.tick_right() 
ax2 = ax.twinx() 
ax2.set_ylabel('foo') 

Jednak nie ma pożądany efekt umieszczenia wszystkie etykiety i etykiety (zaznaczyć oś) na prawej stronie, przy jednoczesnym zachowaniu zakres osi y. Krótko mówiąc, chciałbym przenieść wszystkie etykiety osi Y od lewej do prawej.

Odpowiedz

55

Wygląda jak można zrobić to z:

ax.yaxis.set_label_position("right") 

Zobacz here dla przykładu.

+0

To wystarczy. – Thucydides411

5

Jeśli chcesz podążać za przykładem podanym w matplotlib i stworzyć postać z etykiet po obu stronach osi, ale bez konieczności korzystania z funkcji subplots(), tu jest moje rozwiązanie:

from matplotlib import pyplot as plt 
import numpy as np 

ax1 = plt.plot() 
t = np.arange(0.01, 10.0, 0.01) 
s1 = np.exp(t) 
plt.plot(t,s1,'b-') 
plt.xlabel('t (s)') 
plt.ylabel('exp',color='b') 

ax2 = ax1.twinx() 
s2 = np.sin(2*np.pi*t) 
ax2.plot(t, s2, 'r.') 
plt.ylabel('sin', color='r') 
plt.show() 

+1

ta nie działa dla mnie: 'file "prueba.py", linia 11, ' ' AX2 = ax1.twinx()' 'AttributeError : 'list' obiekt ma atrybut„twinx'' –

+1

spróbuj plt.gca(). twinx() –

Powiązane problemy