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

2024-06-02 08:45:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

enter image description here

我想把所有的记号标签移到左边——我想让它们都从与District of Columbia相同的x位置开始

我试着用^{}来做这件事,但我不知道怎么做


Tags: of信息matplotlib标签刻度district记号columbia
2条回答

是否尝试对轴上的每个记号使用set_horizontalalignment()

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

一种灵活的方法是使用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')

label alignment example

只需根据您的最长标签调整偏移量(-0.8

相关问题 更多 >