首页 > 解决方案 > 轴刻度旋转取决于 Matplotlib 中的位置

问题描述

调用plt.spines.set_position()似乎覆盖了刻度标签旋转,而不是标签本身。在我打电话之前.set_position()rotation=似乎按预期工作:

df = pd.DataFrame({
    'type': ['A', 'B', 'C'],
    'height': [1, 2, 3]
})

fig, ax = plt.subplots(1, figsize=(8,2))

df.plot(kind='bar', ax=ax)

ax.set_xticklabels(['zero', 'one', 'two'], rotation=90)

在此处输入图像描述

当我打电话时.set_position(),标签仍然出现,但它们恢复到原来的旋转:

ax.spines['bottom'].set_position(('outward', 10))

在此处输入图像描述

有没有办法.set_position()在保留标签旋转的同时调用?

标签: pythonmatplotlib

解决方案


这很简单。将 set_xticklabels 语句放在 set_position() 之后:

df = pd.DataFrame({
    'type': ['A', 'B', 'C'],
    'height': [1, 2, 3]
})

fig, ax = plt.subplots(1, figsize=(8,2))
df.plot(kind='bar', ax=ax)
ax.spines['bottom'].set_position(('outward', 10))
ax.set_xticklabels(['zero', 'one', 'two'], rotation=90)

plt.show()

在此处输入图像描述


推荐阅读