gpt4 book ai didi

python - Matplotlib;向子图添加圆圈 - 问题/困惑

转载 作者:行者123 更新时间:2023-11-30 22:51:52 25 4
gpt4 key购买 nike

有点奇怪,我显然错过了一些东西,但我得到了一些非常奇怪的行为,而且我无法弄清楚我做错了什么。

我有一个带有网格格式子图的图(为了这篇文章,我只说一个 2 × 2 网格)。我想在每个上绘制一些东西并添加一个圆圈。应该很容易,但它并不像我预期的那样。

示例代码1:

import matplotlib.pyplot as plt

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ]
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ]

circle = plt.Circle( ( 0, 0 ), 1 )

fig, axes = plt.subplots( 2, 2 )

axes[ 0, 0 ].plot( x, y )
axes[ 1, 1 ].plot( x, y )

axes[ 0, 0 ].add_patch( circle )
axes[ 1, 1 ].add_patch( circle )

plt.show( )

输出1:

Output 1

示例代码2:

import matplotlib.pyplot as plt

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ]
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ]

circle = plt.Circle( ( 0, 0 ), 1 )

fig, axes = plt.subplots( 2, 2 )

axes[ 0, 0 ].plot( x, y )
axes[ 1, 1 ].plot( x, y )

axes[ 0, 0 ].add_patch( circle )
#axes[ 1, 1 ].add_patch( circle )

plt.show( )

输出2:

Output 2

示例代码3:

import matplotlib.pyplot as plt

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ]
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ]

circle = plt.Circle( ( 0, 0 ), 1 )

fig, axes = plt.subplots( 2, 2 )

axes[ 0, 0 ].plot( x, y )
axes[ 1, 1 ].plot( x, y )

#axes[ 0, 0 ].add_patch( circle )
axes[ 1, 1 ].add_patch( circle )

plt.show( )

输出3:
Output 3

我真的不明白这种行为(为什么示例 2 有效,但示例 1 或 3 不起作用?),或者我正在做什么导致它发生。任何人都可以透露一些信息吗?提前致谢。

最佳答案

您对两个不同的补丁使用相同的“圆形”图,我认为这会产生问题,它会引发错误

Can not reset the axes. You are probably trying to re-use an artist in more than one Axes which is not supported

您需要为每个子图创建不同的圆圈,

import matplotlib.pyplot as plt

x = [ -1.0, -0.5, 0.0, 0.5, 1.0 ]
y = [ 0.7, 0.2, 1.0, 0.0, 0.0 ]

circle1 = plt.Circle( ( 0, 0 ), 1 )
circle2 = plt.Circle( ( 0, 0 ), 1 )

fig, axes = plt.subplots( 2, 2 )

axes[ 0, 0 ].plot( x, y )
axes[ 1, 1 ].plot( x, y )

axes[ 0, 0 ].add_patch( circle1 )
axes[ 1, 1 ].add_patch( circle2 )

plt.show( )

关于python - Matplotlib;向子图添加圆圈 - 问题/困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856061/

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