1. 用户的 data 坐标系
当调用
ax.set_xlimit(x_min,x_max)
以及ax.set_ylimit(y_min,y_max)
时,即建立起了用户data
坐标系。左下角坐标为(x_min,y_min)
,右上角坐标为(x_max,y_max)
。有时候你可能并没有显式调用
.set_xlimit()
以及.set_ylimit()
。其实matplotlib
会隐式调用它们来设置坐标轴的数据范围。import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)
type(ax.transData)
ax.transData.transform((5, 0))
你可以调用
ax.transData
返回data
坐标系的坐标转换对象。对该坐标转换对象调用.transform(point)
方法会返回point
在display
坐标系下的坐标。其中point
是点在data
坐标系下的坐标(x,y)
。你也可以给.transform()
方法一次传入多个点的坐标,此时输出也是对应于display
坐标系下的一系列坐标。你可以对
ax.trandData
返回的坐标转换对象调用.inverted()
方法。该方法返回的是一个坐标逆转换对象。对该坐标逆转换对象调用.transform(point)
方法会返回point
在data
坐标系下的坐标。其中point
是点在display
坐标系下的坐标(x,y)
。你也可以给.transform()
方法一次传入多个点的坐标,此时输出也是对应于data
坐标系下的一系列坐标。当你调用了
ax.set_xlim()
或者ax.set_ylim()
时,坐标转换对象会实时更新。