mam matplotlib poziomy pasek sporządzone w następujący sposób:dostosowywania tylko jedna strona znacznikami w matplotlib użyciu kolce
import matplotlib.pyplot as plt
from numpy import *
from scipy import *
bars = arange(5) + 0.1
vals = rand(5)
print bars, vals
plt.figure(figsize=(5,5), dpi=100)
spines = ["bottom"]
ax = plt.subplot(1, 1, 1)
for loc, spine in ax.spines.iteritems():
if loc not in spines:
spine.set_color('none')
# don't draw ytick marks
#ax.yaxis.set_tick_params(size=0)
ax.xaxis.set_ticks_position('bottom')
plt.barh(bars, vals, align="center")
plt.savefig("test.png")
ta produkuje ten obraz:
Chciałem pokazać tylko OśX, które pracował przy użyciu kolców, ale teraz rysuje te wiszące znaczniki dla praworęcznej yaksji. Jak mogę je usunąć? Id zachowa znaki na lewej stronie działki i sprawi, że będą skierowane na zewnątrz (kierunek przeciwny do słupków). Wiem, że mogę całkowicie usunąć ytickmarks przez odkomentowanie linię:
#ax.yaxis.set_tick_params(size=0)
ale chcę zachować ślady ytick tylko na lewym skrzydle. Dziękuję Ci.
EDIT: I osiągnął roztworze po pewnym prób i błędów, chociaż jestem pewien, że moje rozwiązanie nie jest prawdopodobnie najlepszym sposobem, aby to zrobić, więc proszę dać mi znać, co myślisz jeszcze. Zauważyłem, że mogę zrobić:
ax.spines["left"].axis.axes.tick_params(direction="outward")
, aby ustawić kierunek znaczników. pozbyć prawej osi y kleszcze, używam:
ax.yaxis.set_ticks_position("left")