当我将文本添加到轴当前限制之外的 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());添加一点,使情节比需要的要大;然后执行上述操作。
添加回答
举报
0/150
提交
取消