Как вы выравниваете метки галочки в matplotlib? - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь создать инфографику c с помощью matplotlib, и я хочу выровнять по левому краю все метки галочки оси Y.

enter image description here

I want to move all the tick labels to the left — I want them all to begin from the same x-location as District of Columbia.

I tried to do that using Axes.set_yticklabels, но не могу понять, как это сделать.

Ответы [ 2 ]

1 голос
/ 10 июля 2020

А вы пробовали использовать set_horizontalalignment() для каждой отметки на оси?

for tick in ax.yaxis.get_majorticklabels():
    tick.set_horizontalalignment("left")
1 голос
/ 09 июля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...