如何使用matplotlib显示文本

falq053o  于 2023-03-19  发布在  其他
关注(0)|答案(2)|浏览(152)

我想这样做:
我有这个python代码:

import numpy as np
import pylab as plt

a = np.array([1,2,3,4,5,6,7,8,9,10])
b = np.array([7,8,6,3,2,1,5,8,4,15])
c = plt.plot(a,b,'.')
d = 5
plt.text(2,3, "d = "+d) #This line is the problem because i have not the value of d !
plt.show()

所以实际上我只想显示d的值,我也想显示d的值,但是相对的,比如在右下角,但是没有坐标,用Python可以做到吗?

cbeh67ev

cbeh67ev1#

例如,您可以使用transform参数放置从0.01.0的相对坐标

plt.text(0.5,
         0.67,
         "d = {}".format(d),
         transform=plt.gca().transAxes)

在此本地系统中,(0, 0)位于绘图的左下角,(1, 1)位于绘图的右上角。Here is a good reference用于在绘图的不同位置放置和旋转文本。

wf82jlnq

wf82jlnq2#

文本

您可以使用text在图中放置文本。默认情况下,坐标是数据坐标,但您可以指定转换以切换到轴坐标。

plt.text(.96,.94,"d={}".format(d), bbox={'facecolor':'w','pad':5},
         ha="right", va="top", transform=plt.gca().transAxes )

注解

您可以使用annotate在图中的某个位置生成文本。与text相比,其优点是:(a)可以使用额外的箭头指向对象;(b)可以用简单的字符串来指定坐标系,而不是转换。

plt.annotate("d={}".format(d), xy=(p, 15), xytext=(.96,.94), 
            xycoords="data", textcoords="axes fraction",
            bbox={'facecolor':'w','pad':5}, ha="right", va="top")

定位文本

您可以使用偏移框中的AnchoredText

from matplotlib.offsetbox import AnchoredText
a = AnchoredText("d={}".format(d), loc=1, pad=0.4, borderpad=0.5)
plt.gca().add_artist(a)

相关问题