我需要使用Matplotlib绘制大量矩形对象。 这是一个简单的代码,有n个随机生成的矩形。
$query = mysqli_query($con,"SELECT * FROM ticket
INNER JOIN manager
ON ticket.difficulty = manager.level
WHERE ticket.status = 'open'");
n = 10000需要几秒钟,但如果我们将矩形数增加到100K则需要花费太多时间。 有什么建议可以改善它,或者在合理的时间内制作情节的不同方法?
答案 0 :(得分:3)
使用PatchCollection
一次性将所有修补程序添加到绘图中会产生大约2-3倍的加速,其中n = 10,000,我不确定它将扩展到更大的数字的程度如下:
from matplotlib.collections import PatchCollection
import matplotlib
import matplotlib.pyplot as plt
import random
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')
plt.xlim([0, 1001])
plt.ylim([0, 1001])
n=10000
patches = []
for i in range(0,n):
x = random.uniform(1, 1000)
y = random.uniform(1, 1000)
patches.append(matplotlib.patches.Rectangle((x, y),1,1,))
ax.add_collection(PatchCollection(patches))
plt.show()