我正在尝试使用 matplotlib 构建信息图,并且我想左对齐所有 y 轴刻度标签。
\n\n我想将所有刻度标签移至左侧 \xe2\x80\x94 我希望它们全部从与 相同的 x 位置开始District of Columbia。
我尝试使用 来做到这一点Axes.set_yticklabels,但我不知道该怎么做。
一种灵活的方法是单独绘制标签,用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只需根据最长的标签调整偏移量(在上面的示例中)即可。