我想绘制一个二维数组(大约1000x1000),其中的值对应于一个色阶。所以我使用matplotlib.pcolor,它就是这样做的,但是由于某种原因,当它到达这些维度时,速度会非常慢(比如2分钟左右的绘图时间)。这是什么原因?将浮点值转换成int16左右有帮助吗?有没有其他的颜色?
from pylab import *
data=genfromtxt('data.txt',autostrip=True, case_sensitive=True)
pcolor(data,cmap='hot')
colorbar()
show()
data.txt包含数组。加载过程确实需要几秒钟,但是pcolor()和show()函数都肯定要用到主计算时间(每个函数大约60-90秒)。
imshow
将更快。pcolor
返回一个PolyCollection,对于一百万个元素来说,这个过程相当慢,而imshow只是一个图像。请注意,pcolor中的索引与imshow中的索引略有不同,不过根据使用pcolor的方式,您可能不需要担心它。而且,当从pcolor转到imshow时,通常需要在imshow中设置
interpolation="nearest"
(但对于如此大的图像,这也可能无关紧要)。作为未来谷歌用户的注意事项,还有^{} 和^{} 。
pcolormesh
的文档说明:^{} 应该更快,但在非直线轴方面灵活性稍差。
有关
pcolor
、pcolormesh
和imshow
之间的良好比较,请参见this page。相关问题 更多 >
编程相关推荐