matplotlib contourf图像文件的大小

时间:2015-10-21 02:33:29

标签: matplotlib

我在matplotlib中有一个大约5兆的轮廓图。关于如何减小尺寸的任何建议?

1 个答案:

答案 0 :(得分:1)

问题是您有contourf

的许多元素

对于某些类型的Axes个对象,您可以在调用绘图功能时将rasterized选项设置为True。例如,使用pcolormesh,您可以使用

plt.pcolormesh(some_array,rasterized=True)

然而,对于contourf这似乎不起作用,但有一种解决方法。您可以将zorder设置为某个较低的数字,然后将rasterization_zorder的{​​{1}}设置为高于该数字的某个数字,当您保存该数字时,Axes返回QuadContourSet将被栅格化。

例如:

contourf

下面,我在绘制plt.contourf(some_array,zorder=-9) plt.gca().set_rasterization_zorder(-1) 形状np.random.rand数组后显示一些示例文件大小。

(500,500)

其中包含以下三个文件:

import matplotlib.pyplot as plt
import numpy as np

my_array = np.random.rand(500,500)

plt.contourf(my_array)
plt.savefig('contourf1.pdf')
plt.close()

plt.contourf(my_array,rasterized=True) # this won't work
plt.savefig('contourf2.pdf')
plt.close()

plt.contourf(my_array,zorder=-9)
plt.gca().set_rasterization_zorder(-1)
plt.savefig('contourf3.pdf')
plt.close()

注意第三个文件的文件小得多。