Tôi có một matplotlib thanh ngang được vẽ như sau:tùy biến chỉ là một bên của dấu tick ở matplotlib sử dụng gai
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")
này tạo ra hình ảnh này:
tôi muốn chỉ hiển thị các Xaxis, mà làm việc bằng cách sử dụng gai, nhưng bây giờ nó vẽ các dấu tick treo cho yaxis bên phải. Làm thế nào tôi có thể loại bỏ chúng? id thích giữ ytickmarks ở phía bên trái của cốt truyện và làm cho chúng đối mặt với nhau (hướng đối diện với các thanh). Tôi biết rằng tôi có thể loại bỏ các ytickmarks hoàn toàn bởi uncommenting dòng:
#ax.yaxis.set_tick_params(size=0)
nhưng tôi muốn giữ lại dấu ytick chỉ ở phía bên tay trái. cảm ơn bạn.
EDIT: Tôi đã đạt được giải pháp sau một số thử nghiệm và lỗi mặc dù tôi chắc chắn giải pháp của tôi có lẽ không phải là cách tốt nhất để làm điều đó, vì vậy hãy cho tôi biết suy nghĩ của bạn. tôi thấy rằng tôi có thể làm:
ax.spines["left"].axis.axes.tick_params(direction="outward")
để đặt hướng dấu tick. để thoát khỏi quyền trục y ve, tôi sử dụng:
ax.yaxis.set_ticks_position("left")