我目前正在编写一个必须生成一组图的程序。每个图上必须有 3 个同心圆,其半径由数据集确定。此外,还必须添加另一个可以具有不同中心的红色圆圈。但是,我遇到了各种问题。除非圆的半径太大,否则我应该在图上看到 3 个黑色和 1 个红色圆圈,但我没有。
我隔离了制作情节的一段代码,这里是 -
import matplotlib.pyplot as plt
fig1 = plt.figure(1, figsize=(6,6))
plt.xlim(-30,30)
plt.ylim(-30,30)
rcircle1 = plt.Circle( (0,0), 6.0, edgecolor="black", facecolor="white")
rcircle2 = plt.Circle( (0,0), 12.0, edgecolor="black", facecolor="white")
rcircle3 = plt.Circle( (0,0), 18.0, edgecolor="black", facecolor="white")
bcircle = plt.Circle( (8.5,-5.8) ,2, edgecolor="red", facecolor="white")
ax = fig1.gca()
ax.add_artist(rcircle1)
ax.add_artist(rcircle2)
ax.add_artist(rcircle3)
ax.add_artist(bcircle)
fig1.savefig("Model.png", dpi=150)
上面的输出是 -
我尝试查看与相关的各种 Class 变量Circle()
,add_artist()
但无法找到可能影响此行为的内容。
我目前的工作是以下代码 -
import numpy as np
import matplotlib.pyplot as plt
th = np.arange(-3.14,3.14,0.01)
fig1 = plt.figure(1,figsize=(6,6))
plt.xlim(-30,30)
plt.ylim(-30,30)
plt.plot( 6*np.cos(th), 6*np.sin(th), color="black")
plt.plot( 12*np.cos(th), 12*np.sin(th), color="black")
plt.plot( 18*np.cos(th), 18*np.sin(th), color="black")
# (8,5, -5,8)
plt.plot( 2*np.cos(th) + 8.5, 2*np.sin(th) - 5.8, color="red")
fig1.savefig("Hard.png", dpi=150)
上面代码生成的输出正是我想要的!
虽然这确实有效,但它违背了Circle()
在 matplotlib 中使用类似方法的目的。谁能评论为什么第一个代码没有像我预期的那样工作?