用python随机画多个圆_python – 如何快速绘制数千个圆圈?

本文介绍了如何使用matplotlib的Collection优化批量绘制数千个圆圈,对比了使用scatter和单独绘制圆的方法,推荐使用PatchCollection或EllipseCollection,特别是EllipseCollection在速度上有显著优势。通过对不同方法的性能测试,展示了在数据坐标中保持圆圈形状和大小的实现方式。
摘要由CSDN通过智能技术生成

这里的关键是使用Collection.在您的情况下,您想要制作PatchCollection.

Matplotlib通过使用集合优化绘制许多类似的艺术家.它比单独绘制每一个要快得多.此外,该剧情不会包含数千名个人艺术家,只有一个系列.这加快了每次绘制绘图时需要对每个艺术家进行操作的许多其他杂项操作.

散射实际上比你当前的方法快得多,因为它会添加一个集合而不是单独的艺术家.但是,它还会绘制尺寸不在数据坐标中的标记.

为了解决这个问题,您可以使用与分散相同的方法,但手动创建集合.

举个例子:

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.collections

num = 5000

sizes = 0.2 * np.random.random(num)

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

# Note that the patches won't be added to the axes, instead a collection will

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

fig, ax = plt.subplots()

coll = matplotlib.collections.PatchCollection(patches, facecolors='black')

ax.add_collection(coll)

ax.margins(0.01)

plt.show()

DGbge.png

这对我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值