如何在 Matplotlib 中快速绘制数千个圆圈?

要在 Matplotlib 中快速绘制数千个圆圈,我们将不得不使用matplotlib.collections。在这种情况下,我们将使用CircleCollection

步骤

  • 从 matplotlib 中导入 collections 包以及pyplotnumpy

  • 设置图形大小并调整子图之间和周围的填充。

  • 为小圆圈的数量初始化变量“num” ,为圆圈的大小初始化“sizes”

  • 创建圆形补丁列表。

  • 在当前轴上添加圆形补丁艺术家。

  • 设置轴的边距。

  • 要显示图形,请使用show()方法。

示例

import numpy as np
importmatplotlib.pyplotas plt
importmatplotlib.collectionsas mc

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

num = 1000
sizes = 50 * np.random.random(num)
xy = 10 * np.random.random((num, 2))

patches = [plt.Circle(center, size) for center, size in zip(xy, sizes)]

fig, ax = plt.subplots()

collection = mc.CircleCollection(sizes, offsets=xy, transOffset=ax.transData, color='green')
ax.add_collection(collection)

ax.margins(0.01)

plt.show()
输出结果

它将产生以下输出