matplotlib中y-label和title之间交叉的注释/文本

时间:2014-05-19 13:23:04

标签: python matplotlib plot

我在matplotlib子图中定位一个简单的文本字段,现在已经挣扎了将近一整天。我的目标是在子图的左上角放置一个单字母的文本字段(例如," A")。但是,它应该在情节之外。

我知道我可以通过例如手动指定值来相对于轴定位它。然而,我的目标是自动化这个过程,因为我必须处理大量数据。

我的想法是使用ylabel的x坐标和标题的y坐标 - 然而,并没有太大的成功。

举个例子:

enter image description here

我想添加" A"确切地说" ylabel"和#34;标题"想象中的十字架。

1 个答案:

答案 0 :(得分:0)

现在想做同样的事情,但在文档中或在谷歌搜索后找不到任何有用的东西,所以最终在matplotlib目录下的ight_layout.py中查看了tight_layout的代码。您要查找的功能是 axes.get_tightbbox 。这是您想做什么的方法:

from matplotlib import pyplot as plt
from matplotlib.transforms import TransformedBbox

fig = plt.gcf()
ax  = fig.gca()
renderer = fig.canvas.get_renderer()

# Get the bounding box in pixel coordinates
bb = ax.get_tightbbox(renderer)

# Transform the bbox to figure coordinates
bb = TransformedBbox(bb, fig.transFigure.inverted())

# Write text at the top left corner using figure coordinates.
plt.text(bb.x0, bb.y1, "HELLO", transform=fig.transFigure, verticalalignment="top", horizontalalignment="left")