Matplotlib contourf导出大体积EPS矢量图无法用Inkscape打开求解决方案
解决matplotlib contourf导出大体积矢量图的方案
减少contourf等高线层级:contourf默认生成的层级数量过多,会让矢量图包含大量路径。手动指定
levels参数控制层级数,比如contourf(data, levels=20),根据数据调整合适数值,既能保留可视化效果,又能大幅降低文件体积。改用SVG格式并启用压缩:SVG对现代矢量编辑工具兼容性更好,导出时添加压缩参数:
fig.savefig('largecontourfplot.svg', format='svg', bbox_inches='tight', metadata={'compression': 'zlib'})zlib压缩能有效缩小SVG文件大小,同时维持矢量属性,Inkscape可正常打开编辑。
简化路径优化体积:导出前关闭contourf的抗锯齿(不影响矢量本质):
contourf(data, antialiased=False);导出后在Inkscape中使用「路径→简化」功能,自动合并相近路径、删除冗余节点,进一步压缩文件。EPS格式启用压缩参数:若坚持使用EPS,导出时指定LZW压缩:
fig.savefig('largecontourfplot.eps', format='eps', compression='lzw')LZW压缩可大幅减小EPS体积,能将100MB左右的文件压缩至几MB级别。
内容的提问来源于stack exchange,提问作者Archimedes_91
相关产品推荐
相关产品推荐

