繁体   English   中英

Matplotlib:Pcolor创造了巨大的图像

[英]Matplotlib: Pcolor creates huge images

我有一个二进制值的网格,形状(1000, 60) someLine (1000, 60) ,以及长度为(1000,) someLine行。

我正在密谋他们

plt.figure()
plt.pcolor(rejectionSpace, cmap=colorMap)
plt.plot(someLine)
plt.xticks(ticks, range(ticks.size))
plt.savefig('myFig.pdf', dpi=5)
plt.close()

然而,图像大小为15 MB。 为什么这么大? 什么是减小图像尺寸的最佳方法?

在这里,使用其他软件缩小:

myFig.pdf

如果光栅化pcolor对象,可以减小pdf的大小。

plt.pcolor(rejectionSpace, cmap=colorMap, rasterized=True)

当然,这可能会降低图像的质量。 您可以使用dpi选项更改图形的光栅化部分的dpisavefig ,因此您可能需要尝试使用它来查找文件大小和合适分辨率之间的平衡。

一个简单的测试:

In [1]: import matplotlib.pyplot as plt

In [2]: import numpy as np

In [3]: a=np.random.rand(500,500)

In [4]: plt.pcolor(a)

In [5]: plt.savefig('pcolor.pdf')

In [6]: plt.clf()

In [7]: plt.pcolor(a,rasterized=True)

In [7]: plt.savefig('pcolor_r.pdf', dpi=300)

$ ls -lh pcolor*
  5.1M Nov 20 11:46 pcolor.pdf
  994K Nov 20 11:47 pcolor_r.pdf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM