我对 matplotlib 中的 yticklabels 有疑问。
我正在尝试制作垂直条形图 (plt.barh),然后尝试使用 ax.set_yticklabels 命令。我遇到的问题是它只将标签放在主要的刻度上!我传递的列表长度为 18,但它只标记了 10 个条形!!
请帮忙?
我对 matplotlib 中的 yticklabels 有疑问。
我正在尝试制作垂直条形图 (plt.barh),然后尝试使用 ax.set_yticklabels 命令。我遇到的问题是它只将标签放在主要的刻度上!我传递的列表长度为 18,但它只标记了 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()
您可以使用set_yticks
,但传递参数minor
True
或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
同样适用于set_yticklabels
...