Гибкий подход заключается в том, чтобы наносить метки отдельно, используя 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')
пример выравнивания метки
Просто отрегулируйте смещение (-0.8
в приведенном выше примере) в соответствии с самой длинной меткой.