0
采取随机散点图与具有随机偏移注释:Matplotlib:直接获取坐标轴的方法 - 注释框的坐标?
import matplotlib.pyplot as mpp
import random as rd
X = [1,3,2,5,4,2,3,1,2,3]
Y = [4,1,3,2,6,5,2,5,1,5]
L = ['A','B','C','D','E','F','G','H','I','J']
fig,ax = mpp.subplots()
ax.scatter(X,Y)
for i,txt in enumerate(L):
r1 = rd.choice([-10,5])
r2 = rd.choice([-10,5])
a = ax.annotate(txt,(X[i],Y[i]),size=8,textcoords='offset points',xytext=(r1,r2))
fig.show()
我试图找到这些注释的轴坐标,但我没有任何运气,文本实例的最古怪的变量只足够返回偏移:
print(ax.texts[0].xy)
print(ax.texts[0].xyann)
print(ax.texts[0]._x,ax.texts[0]._y)
print(ax.texts[0].get_position())
print(ax.texts[0].get_unitless_position())
print(ax.texts[0]._get_xy_display())
print(ax.texts[0].clipbox)
返回:
(1, 4)
(-10, 5)
-10 5
(-10, 5)
(-10.0, 5.0)
[-10. 5.]
None
我知道我可以使用像THI变换得到的轴坐标S:
ax.figure.canvas.draw()
bb = ax.texts[0].get_window_extent()
co = ax.transAxes.inverted().transform(bb)
但我更喜欢它,如果有让他们直接的方式,尤其是因为我无法相信坐标不某处文本实例中,因为userland-和显示书面轴同样也在那里。
但是,如何显示坐标未知解释轴坐标未知?由于轴和图形坐标是0和1之间的相对坐标,因此它们与显示大小无关,并且可以很容易地保存在某个变量中。轴的'ax.get_position()'确实返回轴的图形坐标,但是相同的文本对象的方法只返回用户区坐标“xy”中初始位置的偏移量'xyann'。 – Khris
由于文本位于偏移点,其坐标位于偏移点。所以变换链可以是offset-> data-> display-> axes。我没有看到存储其图形坐标的轴(这很有用,因为它们定义轴的位置)与文本有关。换句话说,如果您在偏移坐标中定义轴的位置,它也不会知道它的图形坐标。 – ImportanceOfBeingErnest
如果我在偏移坐标中定义我的坐标轴的位置,它仍然会偏离某个定义的点,并且获得坐标图应该很容易。 困扰我的另一件事是,你必须在这里通过显示进行转换。为什么不可能直接从数据转换为坐标轴? – Khris