yticklabels仅在主要刻度matplotlib

时间:2013-08-15 08:13:34

标签: python matplotlib

我在matplotlib中有关于yticklabels的问题。

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

请帮忙吗?

2 个答案:

答案 0 :(得分:10)

在设置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()

答案 1 :(得分:1)

您可以使用set_yticks,但传递参数minor TrueFalse

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

同样适用于set_yticklabels ...