回答问题

如何将文本放在 matplotlib 图形的左上角(或右上角),例如左上角的图例在哪里,或者在图的顶部但在左上角?例如。如果它是plt.scatter(),那么将在散布的正方形内的东西放在最左上角。

例如,我想在理想情况下不知道所绘制散点图的比例的情况下执行此操作,因为它会从数据集更改为数据集。我只是希望它的文本大致在左上角,或者大致在右上角。使用图例类型定位时,无论如何它都不应与任何散点图点重叠。

Answers

您可以使用text

text(x, y, s, fontsize=12)

text坐标可以相对于轴给出,因此文本的位置将与绘图的大小无关:

默认转换指定文本在数据坐标中,或者,您可以在轴坐标中指定文本(0,0 是左下角,1,1 是右上角)。下面的示例将文本放置在轴的中心:

text(0.5, 0.5,'matplotlib',
     horizontalalignment='center',
     verticalalignment='center',
     transform = ax.transAxes)

为了防止文本干扰你分散的任何点,afaik 更加困难。更简单的方法是将 y_axis(ylim((ymin,ymax))中的 ymax)设置为比您的点的最大 y 坐标高一点的值。这样,您将始终拥有用于文本的空闲空间。

编辑:这里有一个例子:

In [17]: from pylab import figure, text, scatter, show
In [18]: f = figure()
In [19]: ax = f.add_subplot(111)
In [20]: scatter([3,5,2,6,8],[5,3,2,1,5])
Out[20]: <matplotlib.collections.CircleCollection object at 0x0000000007439A90>
In [21]: text(0.1, 0.9,'matplotlib', ha='center', va='center', transform=ax.transAxes)
Out[21]: <matplotlib.text.Text object at 0x0000000007415B38>
In [22]:

在此处输入图像描述

ha 和 va 参数设置文本相对于插入点的对齐方式。 IE。 hau003d'left' 是一个很好的设置,可以防止在手动缩小(变窄)框架时长文本超出左轴。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐