Matplotlib 放置文本,例如框架内的字幕

Posted

技术标签:

【中文标题】Matplotlib 放置文本,例如框架内的字幕【英文标题】:Matplotlib placement of text e.g. suptitle inside the frame 【发布时间】:2012-10-09 02:19:53 【问题描述】:

到目前为止,我已将字幕放在框架上方,如下所示:

如何将字幕从above框架放入框架中?

到目前为止,我有一个解决方案,它只打印一个文本并通过计算 xlim 和 ylim 将其设置在正确的位置。然而,这很容易出错,如果文本不同,它看起来很糟糕。有没有办法将附加标签设置到框架中?或者只是将文本放在框架下方并居中? 如果我不需要知道框架内显示的数据,那将非常方便。

【问题讨论】:

【参考方案1】:

您使用text 的解决方案也是我的首选解决方案。但是,您不需要根据 xlim 和 ylim 计算位置。如果您设置transform=ax.transAxes,则用于定位文本的坐标将被视为相对于轴边界框(0,0 是左下角)。像这样:

data = range(1,10);
fig = figure()
for i in range(6):
    ax = fig.add_subplot(2,3,i)

    ax.text(.5,.9,'centered title',
        horizontalalignment='center',
        transform=ax.transAxes)

    ax.plot(data)
show()

希望有帮助!

【讨论】:

所以如果我想在这些图的左上角添加 a b c d,它们都是不同的范围,我该怎么做?【参考方案2】:

你考虑过axes.title吗?您可以查看它的文档here。您还可以将 x 和 y 坐标作为关键字参数 ax.title("my title", x=0.5, y=0.6) 传递。

希望这会有所帮助。

【讨论】:

这似乎是最简单的解决方案。 甚至ax.title("my title", position=(0.5, 0.6)) 那就是matplotlib.pyplot.title,或者axis.set_title

以上是关于Matplotlib 放置文本,例如框架内的字幕的主要内容,如果未能解决你的问题,请参考以下文章

如何为 matplotlib 散点图放置单个标签?

将字体真棒跨度图标放置在锚点内的文本上方

如何使用 PHP 将文本附加到特定标签内的外部 html 文件?

具有紧凑布局和字幕的 Matplotlib savefig 在标题和图像之间产生额外的空间

matplotlib 中轴标签文本顶部的位置是啥?

Subtitles