Mam prosty wykres liniowy i muszę przesunąć znaczniki osi y z (domyślnej) lewej strony wykresu na prawą stronę. Jakieś przemyślenia, jak to zrobić?
Mam prosty wykres liniowy i muszę przesunąć znaczniki osi y z (domyślnej) lewej strony wykresu na prawą stronę. Jakieś przemyślenia, jak to zrobić?
Odpowiedzi:
Posługiwać się ax.yaxis.tick_right()
na przykład:
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()
sharey=True
.
odpowiedź joaquina działa, ale ma efekt uboczny polegający na usunięciu kleszczy z lewej strony osi. Aby to naprawić, tick_right()
zadzwoń pod numer set_ticks_position('both')
. Poprawiony przykład:
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()
Wynikiem jest wykres z zaznaczeniami po obu stronach, ale etykiety znaczników po prawej stronie.
Na wypadek, gdyby ktoś zapytał (tak jak ja), jest to również możliwe, gdy używa się subplot2grid. Na przykład:
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()
Pokaże to:
ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')
również z. Ale to nie ruszaylabel
plt.gca()
aby uzyskać bieżący obiekt osi. Dlatego użyjesz:plt.gca().yaxis.set_label_position("right")