小编典典

matplotlib.pcolor非常慢。备择方案?

python

我想绘制一个2D数组(大约1000x1000),其值与色标相对应。因此,我使用了matplotlib.pcolor,它只是这样做了,但是由于某种原因,当达到这些尺寸时(例如绘制2分钟左右),它的速度非常慢。是什么原因呢?将float值转换为int16会有帮助吗?是否有pcolor的替代品?

from pylab import *

data=genfromtxt('data.txt',autostrip=True, case_sensitive=True)
pcolor(data,cmap='hot')
colorbar()
show()

data.txt包含数组。加载过程确实需要花费几秒钟,但是pcolor()和show()函数都肯定会占用主要的计算时间(每个大概60-90秒)。


阅读 215

收藏
2020-12-20

共1个答案

小编典典

imshow 会更快。 pcolor会传回PolyCollection,使用100万个元素的速度将相当慢,而imshow只是一幅图像。

请注意,pcolor中的索引编制与imshow稍有不同,尽管您可能不必担心,具体取决于您使用pcolor的方式。而且,通常当从pcolor转到imshow时,一个人希望设置interpolation="nearest"为imshow(但是对于如此大的图像,这也可能没有关系)。

2020-12-20