我正在尝试减小散点图的文件大小。我的代码看起来像:
plt.scatter(a1,b1)
plt.savefig('test.ps')
其中a1、b1是400000左右的数组,它给出的文件大小为7.8MB。
我试着加上
plt.rcParams['path.simplify'] = True
在这段代码之前,但文件仍然是7.8MB。这是一个如何保存为“.ps”文件的问题还是另一个问题?
最佳答案
一种方法是使用plot
而不是scatter
(使用plot
参数仍可以使用'o'
生成散点图),并使用rasterized
关键字参数,如下所示:
import numpy as np
import matplotlib.pyplot as plt
a1,b1 = np.random.randn(400000,2).T #mock data of similar size to yours
plt.plot(a1,b1,'o',rasterized=True)
plt.savefig("test.ps")
这将显著减小输出文件的大小。文字和线条艺术将保持矢量,只有点是光栅化的,所以这是一个很好的折衷。
但是,根据您希望实现的目标,最好对数据进行柱状图,并绘制数据图(例如
pyplot.hist2d
或pyplot.hexbin
)。关于python - 减少散点图的文件大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39974576/