【问题标题】:Matplotlib; adding circle to subplot - Issue/ConfusedMatplotlib;将圆圈添加到子图 - 问题/困惑
【发布时间】:2016-08-09 16:29:19
【问题描述】:

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

我有一个网格格式的子图(为了这篇文章,我只会说一个 2 x 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:

示例代码 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:

示例代码 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:

我真的不明白这种行为(为什么示例 2 有效,但示例 1 或 3 无效?),或者我正在做什么来导致它。任何人都可以解释一下吗?提前致谢。

【问题讨论】:

    标签: python matplotlib geometry subplot


    【解决方案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 ]
    
    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( )
    

    【讨论】:

    • 这是问题所在,谢谢 :) 我将圆圈创建移到我的子情节循环中,瞧,圆圈。干杯:)
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 2012-11-16
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多