Python 将所有x轴记号标签向右移动几个像素(对齐旋转的标签)

Python 将所有x轴记号标签向右移动几个像素(对齐旋转的标签),python,matplotlib,labels,Python,Matplotlib,Labels,我正在做一个带有长标签的条形图,我将其旋转了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_layo

我正在做一个带有长标签的条形图,我将其旋转了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()
编辑:请查看stackoverflow.com/a/14854007/1452257中右对齐的子批次以获取示例。如果您愿意,我也可以将代码/图像复制到这篇文章。

从的回答中,我得到了以下关于以一般、任意方式翻译勾号标签的信息:

import matplotlib.transforms as mtrans
# ...
trans = mtrans.Affine2D().translate(20, 0)
for t in ax.get_xticklabels():
    t.set_transform(t.get_transform()+trans)
从他的回答中,我得到了以下关于以一般、任意的方式翻译勾号标签的信息:

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

你能给我看一下你得到的情节的截图吗?另外,您可以创建一个。它基本上看起来像这里右对齐的绘图(),但只是带有更长的标签。我想将标签向右移动几个像素,使其不是标签最右端与记号对齐的部分,而是最后一个字符的中心。你的意思是
va='top'
?很多都是可能的。但你的意思还不太清楚。链接中的右对齐打印看起来很好。我在这里重复第一条评论,但是没有一个简单的图片和一个清晰的描述,这个情节到底出了什么问题,这里都是猜测。我没有想到这是这里想要的结果。我想我们可以把它标记为更清晰问题的复制品。你能给我看一下你得到的情节截图吗?另外,您可以创建一个。它基本上看起来像这里右对齐的绘图(),但只是带有更长的标签。我想将标签向右移动几个像素,使其不是标签最右端与记号对齐的部分,而是最后一个字符的中心。你的意思是
va='top'
?很多都是可能的。但你的意思还不太清楚。链接中的右对齐打印看起来很好。我在这里重复第一条评论,但是没有一个简单的图片和一个清晰的描述,这个情节到底出了什么问题,这里都是猜测。我没有想到这是这里想要的结果。我想我们可以把它标记为更清晰问题的复制品。