Matplotlib - 移动 x 轴标签

3

我有一个numpy记录数组:

a = np.array([(29.40818036, '1'), (34.96458222, '2'), (16.05225074, '3'),
       (13.23025364, '4'), (6.340924671, '5+')], 
       dtype=[('f0', '<f8'), ('f1', 'S2')])

我正在绘制一个如下所示的条形图:

plt.bar(np.arange(5)+0.5,a['f0'],width=1,color='0.95')
plt.ylim(0,40)
plt.xlim(0.5,5.5)
ax=plt.gca()
ax.set_xticklabels(a['f1'])

问题:

enter image description here

注意到x轴的值与柱形图上的不对齐,a['f1']中的第一个值('1')缺失。

a['f1']['1' '2' '3' '4' '5+'] - 我本来期望这五个字符串可以放在五个柱形图下面。但实际上它们被向左推移了一位,导致'1'丢失了。我在寻找一种方法来将这些值向右推移。

最佳的x轴刻度标签调整方式是什么?

1个回答

2

首先,您需要设置刻度位置:

ax.set_xticks(np.arange(5) + 1.)
ax.set_xticklabels(a['f1'])

1
对我来说,设置 ax.set_xticks(np.arange(5) + 1.5)plt.xlim(1,6) 很有效。谢谢。 - Lee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接