如何在 matplotlib 中对齐刻度标签?

Ale*_*lex 6 python matplotlib

我正在尝试使用 matplotlib 构建信息图,并且我想左对齐所有 y 轴刻度标签。

\n

在此输入图像描述

\n

我想将所有刻度标签移至左侧 \xe2\x80\x94 我希望它们全部从与 相同的 x 位置开始District of Columbia

\n

我尝试使用 来做到这一点Axes.set_yticklabels,但我不知道该怎么做。

\n

Arn*_*rne 2

一种灵活的方法是单独绘制标签,用ax.text(). 这是一个简单的例子:

import matplotlib.pyplot as plt

y = [0, 1, 2]
width = [2, 2, 3]
labels = ['Colorado', 'Massachusetts', 'DC']

fig, ax = plt.subplots()
ax.barh(y=y, width=width)
ax.set_yticks(y)
ax.set_yticklabels([]) 

for i, yi in enumerate(y):
    ax.text(-0.8, yi, labels[i], horizontalalignment='left', verticalalignment='center')
Run Code Online (Sandbox Code Playgroud)

标签对齐示例

-0.8只需根据最长的标签调整偏移量(在上面的示例中)即可。