我在 matplotlib 中绘制了一个 contourf 图形,其大小约为 5 兆字节。有什么建议可以缩小它的大小吗?
我在 matplotlib 中绘制了一个 contourf 图形,其大小约为 5 兆字节。有什么建议可以缩小它的大小吗?
contourf
元素过多。Axes
对象,您可以在调用绘图函数时将rasterized
选项设置为True
。例如,使用pcolormesh
,您可以使用。plt.pcolormesh(some_array,rasterized=True)
plt.contourf(some_array,zorder=-9)
plt.gca().set_rasterization_zorder(-1)
以下是绘制形状为(500,500)
的np.random.rand
数组后的一些示例文件大小。
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()
这将生成以下三个文件:
$ ls -l contour?.pdf
-rw-r--r-- 1 tom 22804867 Oct 21 10:59 contourf1.pdf
-rw-r--r-- 1 tom 22808387 Oct 21 11:01 contourf2.pdf
-rw-r--r-- 1 tom 851117 Oct 21 11:03 contourf3.pdf
contourf
。请参阅我的答案以了解解决方法。 - tmdavison