7

我对 matplotlib 中的 yticklabels 有疑问。

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

请帮忙?

4

2 回答 2

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()
于 2013-08-15T09:07:42.797 回答
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...

于 2013-08-15T09:05:38.367 回答