Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib.patches.FancyArrow是否表现不好?_Python_Matplotlib - Fatal编程技术网

Python matplotlib.patches.FancyArrow是否表现不好?

Python matplotlib.patches.FancyArrow是否表现不好?,python,matplotlib,Python,Matplotlib,我在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(arr

我在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()

可以看到两个箭头,每个面板中都有一个箭头。因此,不同的方法和对象之间似乎存在依赖关系。有人知道这里发生了什么?花式手推车吗?谢谢

它们的行为很好,您只是使用了错误,您不能将同一艺术家对象添加到多个
轴上。
[将来,这将由库强制执行]

将艺术家添加到轴中时,
艺术家
的内部各部分会混淆。例如,返回
axes
艺术家所处的位置,如果将其添加到多个轴中,这将很难跟踪


这与为什么在图形之间移动轴很困难有关(并且)

matplotlib中的其他箭头肯定表现不好。@seaotternerd您的意思是什么?您能更具体一点吗?我知道你可以通过get_axes得到轴,但我不需要它,我实际上知道轴(axis1和axis2引用它们)。然后,每个轴都有自己的方法来添加线。所以,我的问题是,为什么当你将同一条线添加到一个轴上时,你可以看到它,但当我尝试将它添加到两个轴上时,它会消失。@Alejandro请参见编辑
get_axes
只是我想到的第一个显示内部是混合的示例。