尝试绘制箭头时,我在 matplotlib 中发现了一种罕见的行为。如果你制作如下图:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
arrow = patches.FancyArrow(0.,0.,0.4,0.6)
fig = plt.figure(1)
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.add_line(arrow)
plt.show()
您将在第一个轴上完美地看到箭头。但是当试图在第二个轴上添加相同的箭头时:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
arrow = patches.FancyArrow(0.,0.,0.4,0.6)
fig = plt.figure(1)
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.add_line(arrow)
ax2.add_line(arrow)
plt.show()
你会注意到箭头没有被绘制出来。
如果我们尝试制作相同的图形,但现在使用箭头对象的不同副本:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
arrow1 = patches.FancyArrow(0.,0.,0.4,0.6)
arrow2 = patches.FancyArrow(0.,0.,0.4,0.6)
fig = plt.figure(1)
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.add_line(arrow1)
ax2.add_line(arrow2)
plt.show()
可以看到两个箭头,每个面板中都有一个。因此,似乎不同的方法和对象之间存在依赖关系。有人知道这里发生了什么吗?FancyArrow 是越野车吗?谢谢。