如何使用Matplotlib加速大量矩形的绘图?

时间:2015-11-24 22:43:48

标签: python matplotlib plot

我需要使用Matplotlib绘制大量矩形对象。 这是一个简单的代码,有n个随机生成的矩形。

$query = mysqli_query($con,"SELECT * FROM ticket
                            INNER JOIN manager
                            ON ticket.difficulty = manager.level
                            WHERE ticket.status = 'open'");

n = 10000需要几秒钟,但如果我们将矩形数增加到100K则需要花费太多时间。 有什么建议可以改善它,或者在合理的时间内制作情节的不同方法?

1 个答案:

答案 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()