6 python numpy matplotlib python-2.7 python-3.x
我想这样做:
我有这个 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()
Run Code Online (Sandbox Code Playgroud)
所以实际上我只想显示 d 的值,我也想显示 d 的值,但相对例如在右下角而不是一些坐标。可以用 Python 做到这一点吗?
非常感谢 !
您可以使用transform参数的相对坐标从地方0.0到1.0例如
plt.text(0.5,
0.67,
"d = {}".format(d),
transform=plt.gca().transAxes)
Run Code Online (Sandbox Code Playgroud)
在这个局部系统中(0, 0)是图的左下角和(1, 1)右上角。这是在绘图的不同位置放置和旋转文本的很好参考。
您可以使用text在图中放置文本。默认情况下,坐标是数据坐标,但您可以指定转换以切换到例如轴坐标。
plt.text(.96,.94,"d={}".format(d), bbox={'facecolor':'w','pad':5},
ha="right", va="top", transform=plt.gca().transAxes )
Run Code Online (Sandbox Code Playgroud)
您可以使用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")
Run Code Online (Sandbox Code Playgroud)
您可以使用AnchoredTextfrom offsetbox:
from matplotlib.offsetbox import AnchoredText
a = AnchoredText("d={}".format(d), loc=1, pad=0.4, borderpad=0.5)
plt.gca().add_artist(a)
Run Code Online (Sandbox Code Playgroud)