2013-08-15 9 views
6

Mam problem dotyczący yticklabels w matplotlib.yticklabels tylko przy dużych kleszczach matplotlib

Próbuję zrobić pionową plamę (plt.barh), a następnie próbuję użyć komendy ax.set_yticklabels. Problemem, który mam, jest to, że umieszcza etykiety tylko przy głównych kleszczach! Lista, którą przechodzę ma długość 18 lat, ale zawiera tylko 10 taktów !!

Pomoc proszę?

Odpowiedz

9

trzeba ustawić yticks przed ustawieniem 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

Dziękuję, właśnie tego szukałem! – jonas

1

Można użyć set_yticks, ale przechodząc argument minorTrue lub 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 

Te same pracuje dla set_yticklabels ...

Powiązane problemy