我绘制了大约一百万个半径不同的小圆圈。我想将所有重叠的圆圈涂成红色,将所有不重叠的圆圈涂成蓝色。我想我可以通过获取每个圆心之间的距离,然后计算该距离是否小于所讨论的两个圆的半径之和来实现此目的,但这会花费非常< / strong>长时间迭代超过100万个数据点。
我正在使用matplotlib.patches.Circle绘制圆圈。有这样做的有效方法吗?
到目前为止,我的尝试看起来像这样:
fig = plt.figure()
ax = fig.add_subplot(111,projection='mollweide')
plt.grid(True)
circles = [Circle(xy=(ra[i]*np.pi/180,dec[i]*np.pi/180),radius = angle[i],color = 'red', alpha = 0.6)
for i in range(N)]
for c in circles:
ax.add_artist(c)
plt.show()