为了账号安全,请及时绑定邮箱和手机立即绑定

将文本添加到 matplotlib 绘图时自动调整绘图限制

将文本添加到 matplotlib 绘图时自动调整绘图限制

ibeautiful 2021-10-19 16:28:27
当我将文本添加到轴当前限制之外的 matplotlib 图中时,轴不会调整并且文本将在图轴之外。有没有办法让我(几乎)自动调整轴的限制,使文本落在轴内?这是一个最小(非)工作示例:import numpy as npimport matplotlib.pyplot as pltplt.figure()plt.scatter([1, 2, 3, 4, 5], [3, 2, 4, 1, 5])plt.text(5, 3, "This text goes outside the plot.")plt.text(3, 6, "This text is entirely outside the plot.")plt.show()最小的例子当然是人为的,可以手动解决。在我的真实情况下:该过程在不同的数据上重复多次。它经常重复,我不想为每个案例手动找出好的限制。文本的放置是有意义的并且基于数据,因此将文本移动到轴内的某个位置是没有意义的——我需要更改轴以适应文本。注意:这本身不是问题,但我特别将 matplotlib 与 Jupyter notebooks 和%matplotlib notebook命令结合使用,其中绘图的可见部分仅限于轴内的部分(带有一些填充)。结果,上面添加的两个文本行被截断或根本不可见。不过,我觉得这是两个独立的问题,因此在一个问题中处理这两个问题可能不合适;如果我能解决前一个问题,我想后一个问题也能解决。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您可以使用以下内容:


axes = plt.gca()

axes.set_xlim([xmin,xmax])

axes.set_ylim([ymin,ymax])

设置轴的限制。如果这些限制存储为变量,则您可以将文本设置为相对于这些变量。例如,如果您设置:


xmax, ymax = 10, 10

然后你可以设置你的文字是一样的位置xmax - 2和ymax - 2。


这将使您的情节更大,并保证文本在里面。


如果你不知道你想要的图的大小(例如你不知道你的数据的限制),你可以自动找到你的数据的最大值(使用max());添加一点,使情节比需要的要大;然后执行上述操作。


查看完整回答
反对 回复 2021-10-19
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我会使用的最直接的解决方案是通过使用其他一些演示方法(如 imagemagick)来添加标题,在情节之外做笔记。


查看完整回答
反对 回复 2021-10-19
  • 3 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信