gpt4 book ai didi

python - 使用 matplotlib 绘制圆圈时出错

转载 作者:行者123 更新时间:2023-12-01 01:53:31 26 4
gpt4 key购买 nike

我想使用 python 在随机生成的点数组(在 [0,1] 之间)顶部绘制一个(半透明)圆。我希望圆的中心位于 (0.5, 0.5)

这是我编写的代码:

import numpy as np
import matplotlib.pyplot as plt

x_gal = np.random.rand(20)
y_gal = np.random.rand(20)

x_rand = np.random.rand(5*20)
y_rand = np.random.rand(5*20)

plt.figure(1)
plt.plot( x_gal, y_gal, ls=' ', marker='o', markersize=5, color='r' )
plt.plot( 0.5, 0.5, ls=' ', marker='o', markersize=5, color='r' )
plt.plot( x_rand, y_rand, ls=' ', marker='o', markersize=5, color='b' )
plt.axis('off')

circle1 = plt.Circle((0.5, 0.5), 0.2, color='r', alpha=0.5)
plt.add_artist(circle1)

plt.tight_layout()
plt.show()

如果代码中没有引用circle1的行,我会得到正常的输出(没有所需的圆圈)。但是,当我在代码中包含引用 circle1 的行时,我得到以下错误输出。

AttributeError: 'module' object has no attribute 'add_artist'

我在这里缺少什么?任何帮助将不胜感激。

最佳答案

您需要使用axes中的add_artist,以下是使用plt.gcf获取当前坐标区的最快方法,获取当前图形,以及get_gca,获取当前轴,我还建议 plt.axis('equal') 绘制圆形与椭圆形:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

x_gal = np.random.rand(20)
y_gal = np.random.rand(20)

x_rand = np.random.rand(5*20)
y_rand = np.random.rand(5*20)

plt.figure(1)
plt.plot( x_gal, y_gal, ls=' ', marker='o', markersize=5, color='r' )
plt.plot( 0.5, 0.5, ls=' ', marker='o', markersize=5, color='r' )
plt.plot( x_rand, y_rand, ls=' ', marker='o', markersize=5, color='b' )
plt.axis('off')
plt.axis('equal')

circle1 = plt.Circle((0.5, 0.5), 0.2, color='r', alpha=0.5)
plt.gcf().gca().add_artist(circle1)

plt.tight_layout()
plt.show()

enter image description here

关于python - 使用 matplotlib 绘制圆圈时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50495298/

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