Python 如何在matplotlib中对齐记号标签?

Python 如何在matplotlib中对齐记号标签?,python,matplotlib,Python,Matplotlib,我正在尝试使用matplotlib构建一个信息图,我想左对齐所有y轴的刻度标签 我想把所有的记号标签移到左边-我想让它们都从与哥伦比亚特区相同的x位置开始 我试着用ax.text()来做,但我不知道怎么做。一种灵活的方法是使用ax.text()分别绘制标签。下面是一个简单的例子: 导入matplotlib.pyplot作为plt y=[0,1,2] 宽度=[2,2,3] 标签=['Colorado'、'Massachusetts'、'DC'] 图,ax=plt.子批次() 最大杆数(y=y,宽

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

我想把所有的记号标签移到左边-我想让它们都从与哥伦比亚特区相同的x位置开始


我试着用ax.text()来做,但我不知道怎么做。

一种灵活的方法是使用
ax.text()
分别绘制标签。下面是一个简单的例子:

导入matplotlib.pyplot作为plt
y=[0,1,2]
宽度=[2,2,3]
标签=['Colorado'、'Massachusetts'、'DC']
图,ax=plt.子批次()
最大杆数(y=y,宽度=宽度)
ax.设置锁定(y)
ax.设置标签([])
对于枚举(y)中的i,yi:
ax.text(-0.8,yi,标签[i],水平对齐='left',垂直对齐='center')


只需根据最长标签调整偏移量(
-0.8)即可。

是否尝试对轴上的每个记号使用
设置水平对齐()

for tick in ax.yaxis.get_majorticklabels():
    tick.set_horizontalalignment("left")

谢谢,这一个可以工作,但是标签现在与行重叠-可能最好使用
ax.text()
以获得更大的灵活性(如前面提到的@Arne)。图片: