gpt4 book ai didi

python - matplotlib.patches.FancyArrow 表现不佳吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:47 25 4
gpt4 key购买 nike

我在尝试绘制箭头时在 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 有问题吗?谢谢。

最佳答案

它们表现得很好,你只是用错了,你不能将同一个艺术家对象添加到多个 axes [将来,这将由图书馆强制执行]。

当您将艺术家添加到轴时,艺术家 的内部结构有些零碎。例如get_axes返回 Artist 所在的 axes,如果您将它添加到多个轴,这将变得难以跟踪。

这与为什么在图形之间移动轴很难(After creating an array of matplotlib.figure.Figure, how do I draw them as subplots of One figure?How do I include a matplotlib Figure object as subplot?)有关

关于python - matplotlib.patches.FancyArrow 表现不佳吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com