yticklabels仅在主要刻度matplotlib

jon*_*nas 7 python matplotlib

关于matplotlib中的yticklabels我有一个问题.

我正在尝试制作一个垂直条形图(plt.barh),然后尝试使用ax.set_yticklabels命令.我遇到的问题是它只将标签放在主要标记处!我通过的列表长度为18,但它只标出了10个吧!

请帮忙?

use*_*220 12

你需要在设置yticks之前设置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()
Run Code Online (Sandbox Code Playgroud)