Python 如何根据所述轴上的位置设置轴标签的位置?

Python 如何根据所述轴上的位置设置轴标签的位置?,python,matplotlib,Python,Matplotlib,我想将我的轴标签状态数移到左边,这样它实际上超过了我的状态数。其他类似的问题/答案建议使用labelpad,但这会使文本上下移动,而不是左/右移动。如何将标题移到右侧 我还尝试了horizontalalignmentkwarg,其中a。似乎将右侧和左侧对齐方式颠倒了,而且标题移动得不够远,也没有提供任何实际的控制权 我看到我可以使用set[uxy]()设置\ux和\uy文本实例的\ux属性,但这似乎有点不方便。是否有一种方便的方法可以设置标题相对于X轴上的值的位置 您可以绘制title对象的图形

我想将我的轴标签
状态数
移到左边,这样它实际上超过了我的状态数。其他类似的问题/答案建议使用
labelpad
,但这会使文本上下移动,而不是左/右移动。如何将标题移到右侧

我还尝试了
horizontalalignment
kwarg,其中a。似乎将
右侧
左侧
对齐方式颠倒了,而且标题移动得不够远,也没有提供任何实际的控制权

我看到我可以使用
set[uxy]()
设置
\ux
\uy
文本
实例的
\ux
属性,但这似乎有点不方便。是否有一种方便的方法可以设置标题相对于X轴上的值的位置


您可以绘制title对象的图形,并将其各自的position属性设置为任意值。 一个简单的例子是:

%matplotlib内联
将matplotlib.pyplot作为plt导入
plt.绘图([1,2,3])
ti=plt.title('foo')
ti.设置位置((0.2,1))
这将创建一个类似于

请注意,位置是在相对坐标中设置的

@theppredator(loc:{'center','left','right'},请参阅)建议的位置参数也以类似的方式工作

更新 要设置文本在数据坐标系而不是轴坐标系中的位置,可以使用简单的转换。有关详细信息,请参阅。最简单的示例如下:

%matplotlib inline
import matplotlib.pyplot as plt
f,ax = plt.subplots(1)
ax.plot([1,2,3])
ti=ax.set_title('foo')
ti.set_position(ax.transLimits.transform((0.5,3)))
这将标题置于(0.5,3)的中心,如下图所示

不知道
plt.title(loc='left')
work?
.set\u position
jsut同时设置
\u x
\u y
,它不允许我直接相对于轴上的点进行设置。我想我需要从绘图点转换到图形坐标的坐标。@will抱歉,我错过了你问题的最后一段。我已经更新了我的答案回答添加data2axes转换。我还没有机会尝试,但它可能允许我在实际绘图区域之外使用coords,对吗?是的,可以在绘图区域之外使用coords,但是根据您的后端,标题是否可见取决于您的后端。IPython内联后端是可以接受的,并且会自动增加图像的大小。这对其他后端不适用。