将坐标系显式转换为绝对坐标。例如:
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
fig, ax = plt.subplots()
# 坐标不一致
rect1 = Rectangle((0.5, 0.5), 1, 1, fill=False)
rect2 = Rectangle((1, 1), 1, 1, fill=False)
ax.add_patch(rect1)
ax.add_patch(rect2)
ax.set_xlim((0, 3))
ax.set_ylim((0, 3))
plt.show()
输出的结果中两个矩形的大小和位置不一致,如下图所示:
我们可以使用transData
来将坐标系转换为绝对坐标:
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
fig, ax = plt.subplots()
# 把坐标系显式转换为绝对坐标
rect1 = Rectangle((0.5, 0.5), 1, 1, transform=ax.transData, fill=False)
rect2 = Rectangle((1, 1), 1, 1, transform=ax.transData, fill=False)
ax.add_patch(rect1)
ax.add_patch(rect2)
ax.set_xlim((0, 3))
ax.set_ylim((0, 3))
plt.show()
这样两个矩形的大小和位置就是一致的了,如下图所示: