2013-08-15 20 views
6

Tôi có một vấn đề liên quan đến yticklabels trong matplotlib.yticklabels chỉ tại các ve lớn matplotlib

Tôi đang cố gắng tạo một thanh dọc (plt.barh) và sau đó thử sử dụng lệnh ax.set_yticklabels. Vấn đề mà tôi có là nó chỉ đặt nhãn ở các ve lớn! Danh sách mà tôi vượt qua có chiều dài 18, tuy nhiên nó chỉ gắn nhãn 10 trong số các thanh !!

Trợ giúp xin vui lòng?

Trả lời

9

bạn cần phải thiết lập yticks trước khi bạn đặt yticklabels:

from numpy import * 
import matplotlib.pyplot as plt 

fig = plt.figure() 

ax = fig.add_subplot(111) 
x=random.uniform(0,5,size=5) 

#plot 
ax.barh(arange(len(x)),x,1) 

#set ticks 
T=arange(len(x))+0.5 
ax.set_yticks(T) 

#set labels 
labels=['a','b','c','d','e'] 
ax.set_yticklabels(labels) 

plt.show() 
+0

Cảm ơn bạn, chỉ là những gì tôi đang tìm kiếm! – jonas

1

Bạn có thể sử dụng set_yticks, nhưng đi qua các lập luận minorTrue hoặc False:

majorticks = [1., 2., 3.] 
minorticks = [1.5, 2.5] 
ax.set_yticks(minorticks, minor=True) 
ax.set_yticks(majorticks, minor=False) # The default in version 1.3.0 

Các công trình tương tự cho set_yticklabels ...

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