У меня горизонтальная полоса matplotlib, нарисованная следующим образом:
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")
Создает это изображение:
Я хотел показать только ось, которая работала с использованием шипов, но теперь она наносит эти висячие отметки для правых яси. Как я могу удалить это? Я хотел бы сохранить метки на левой стороне графика и вывести их наружу (направление, противоположное столбцам). Я знаю, что могу полностью удалить эти метки, раскомментировав строку:
#ax.yaxis.set_tick_params(size=0)
но я хочу оставить метки ytick только на левой стороне. спасибо.
РЕДАКТИРОВАТЬ : Я нашел решение после проб и ошибок, хотя я уверен, что мое решение, вероятно, не лучший способ сделать это, поэтому, пожалуйста, дайте мне знать, что вы думаете еще. я обнаружил, что могу сделать:
ax.spines["left"].axis.axes.tick_params(direction="outward")
, чтобы установить направление метки. чтобы избавиться от правильных тиков по оси Y, я использую:
ax.yaxis.set_ticks_position("left")