2013-02-05 34 views
14

Có cách nào trong matplotlib để đặt bọ ve giữa các nhãn và trục theo mặc định trong Xuất xứ không? Phần ví dụ trực tuyến không hiển thị một ô duy nhất có tính năng này. Tôi thích có ve bên ngoài khu vực âm mưu bởi vì đôi khi âm mưu ẩn ve khi bên trong.Các điểm đánh dấu matplotlib có liên quan đến trục

+0

chặt chẽ liên quan đến http://stackoverflow.com/questions/14705904/matplotlib-ticks-thickness – tacaswell

Trả lời

27

Để cài đặt chỉ là ve chính:

ax = plt.gca() 
ax.get_yaxis().set_tick_params(direction='out') 
ax.get_xaxis().set_tick_params(direction='out') 
plt.draw() 

để đặt tất cả ve (nhỏ và lớn),

ax.get_yaxis().set_tick_params(which='both', direction='out') 
ax.get_xaxis().set_tick_params(which='both', direction='out') 
plt.draw() 

để đặt cả x và trục y cùng một lúc:

ax = plt.gca() 
ax.tick_params(direction='out') 

axis level docaxes level doc

Để thay đổi các nhãn đánh dấu tương ứng với các dấu tick sử dụng pad. Hãy so sánh

ax.tick_params(direction='out', pad=5) 
plt.draw() 

với

ax.tick_params(direction='out', pad=15) 
plt.draw() 
+0

ảnh cuối cùng dường như hoạt động tốt. Bây giờ tôi phải tìm một cách để di chuyển các nhãn tick bằng khoảng cách tương tự. Trong thực tế, tôi đặt nhầm hai dòng mã 'ax.tick_params (trong đó =' cả hai ', hướng =' out ', chiều dài = 25, chiều rộng = 6)' và đáng ngạc nhiên là nó đã giảm kích thước của ô theo số lượng cần thiết để có một âm mưu hoàn hảo. Nhưng tôi không biết tại sao. – user1850133

+0

Bạn có nhớ bao gồm một 'plt.draw()'? Bạn có thể điều chỉnh khoảng trống giữa nhãn và đánh dấu bằng 'pad' kwarg. – tacaswell

+0

tại đây http://matplotlib.org/api/pyplot_api.html?highlight=pyplot.draw#matplotlib.pyplot.draw; họ nói rằng plt.draw() là không cần thiết là chuỗi sửa đổi kết thúc bằng show(); mặc dù tôi đã thử nó trước khi kiểm tra định nghĩa của plt.draw(): nó không thay đổi gì cả. 'pad' là gì? – user1850133

0

Tôi đoán bạn cần điều này:

Bằng việc đối tượng âm mưu phụ bạn có thể chơi với bọ ve của bạn

ax = plt.subplot(111) 
yax = ax.get_yaxis() 
plt.xticks(y_pos, city) 
xtickNames=ax.set_xticklabels(city) 
plt.setp(xtickNames, rotation=45, fontsize=10) 

Following is the output with 45 degrees rotated ticks

Các vấn đề liên quan