我试图用matplotlib在同一个图上绘制一个圆和一个矩形。
相反,我得到一个空的情节。我该怎么办?
这是我的代码:
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.axes()
circle = plt.Circle((0, 0), radius=0.75, fc='y')
plt.axis('scaled')
rectangle = plt.Rectangle((10, 10), 100, 100, fc='r')
plt.gca().add_patch(rectangle)
答案 0 :(得分:1)
您需要设置轴限制。您可以使用plt.autoscale()
或plt.xlim
和plt.ylim
执行此操作。您还需要添加圆形补丁。在脚本末尾添加以下行:
plt.gca().add_patch(circle)
plt.autoscale()
答案 1 :(得分:1)
您的代码主要是有效的。唯一的问题是
plt.axis('scaled')
仔细检查您的轴限制 - 此行仅适用于普通绘图对象,而不适用于修补程序,因此如果删除此行,您应该会看到矩形(尽管您还忘记添加圆圈粘贴代码),只要您更新轴限制(我使用下面的plt.axis([-1, 120, -1, 120])
来实现此目的)。
完整的工作清单是:
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.axes()
circle = plt.Circle((0, 0), radius=0.75, fc='y')
plt.gca().add_patch(circle)
rectangle = plt.Rectangle((10, 10), 100, 100, fc='r')
plt.gca().add_patch(rectangle)
plt.axis([-1, 120, -1, 120])
或者,plt.autoscale
也可以根据tom的建议设置数据限制。