Перемещение всех меток по оси X на несколько пикселей вправо (выравнивание повернутых меток)

Я делаю гистограмму с длинными метками, которые я повернул на 45 градусов и выровнял по правому краю. Однако метки делений все еще немного отстоят от делений, что делает график странным. Как переместить все метки на несколько пунктов вправо?

Вот мой текущий код:

import seaborn as sns
import pylab as plt
plt.figure()
ax = sns.barplot(x="item", y="dist", hue="dset", data=df)
plt.xticks(rotation=45, ha='right')
plt.tight_layout()

EDIT: Пожалуйста, взгляните на выровненный по правому краю участок на stackoverflow.com/a/14854007/1452257 для примера. Я также могу скопировать код/изображение в этот пост, если хотите.


person pir    schedule 15.12.2017    source источник
comment
Можете ли вы показать скриншот сюжета, который вы получаете? Кроме того, вы можете создать минимальный, полный и проверяемый пример.   -  person DavidG    schedule 15.12.2017
comment
В основном это выглядит как выровненный по правому краю график (stackoverflow.com/a/14854007/1452257), но только с более длинным этикетки. Я хочу переместить метки на несколько пикселей вправо, чтобы это была не самая крайняя правая часть метки, выровненная с галочкой, а центр последнего символа.   -  person pir    schedule 15.12.2017
comment
Вы имеете в виду va='top'?   -  person ImportanceOfBeingErnest    schedule 15.12.2017
comment
Спасибо. Я только что попробовал va='top', но заметной разницы не увидел. Предположим, я хотел немного переместить метки осей для какой-то другой цели - нет ли простого способа сделать это?   -  person pir    schedule 15.12.2017
comment
Возможно многое. Но не совсем понятно, что вы имеете в виду. Выровненный по правому краю график в ссылке выглядит нормально. Я повторяю здесь первый комментарий, но без минимально воспроизводимого примера, картинки и четкого описания, что такое не так с этим сюжетом тут все гадают.   -  person ImportanceOfBeingErnest    schedule 15.12.2017
comment
@pir, взгляните на этот ответ и посмотрите, поможет ли он вам: stackoverflow.com/a/48326438/1144382   -  person Thomas Fauskanger    schedule 18.01.2018
comment
Мне не приходило в голову, что это было желаемым результатом здесь. Я думаю, мы можем пометить его как дубликат гораздо более четкого вопроса.   -  person ImportanceOfBeingErnest    schedule 19.01.2018


Ответы (1)


Из ответа ImportanceOfBeingErnest здесь, я получил следующее при переводе галочек в общем произвольном виде:

import matplotlib.transforms as mtrans
# ...
trans = mtrans.Affine2D().translate(20, 0)
for t in ax.get_xticklabels():
    t.set_transform(t.get_transform()+trans)
person Community    schedule 18.01.2018