我一直在尝试使用gnuplot绘制包含大约500,000个值的数据集。尽管绘图进展顺利,但它生成的SVG文件太大(大约25 MB)并且需要很长时间才能渲染。有什么办法可以改善文件大小吗?
我对SVG文件格式的理解模糊,我意识到这是因为SVG是一种矢量格式,因此必须单独存储500,000个点。
我也试过Scour并重新打印SVG但没有成功。
答案 0 :(得分:3)
呈现SVG文件所需的时间与其中的信息量成正比。因此,加速渲染的唯一方法是减少数据量
我认为摆弄已经生成的SVG文件有点单调乏味。我建议减少gnuplot的数据量。
也许every或其他一些数据减少有助于将数据拆分成多个图表...
答案 1 :(得分:1)
我建议将其保存为矢量图形格式,然后为稍后放入的文档选择分辨率。
这样做的主要原因是您可能有一天会在海报中使用该图像(例如)并以当前分辨率的数百倍打印它。
我通常将最终的pdf格式转换为djvu
格式。
pdf2djvu --dpi=600 -o my_file_600.djvu my_file.pdf
这让我可以指定整个文档的分辨率(包括文本),而不是分散在各处的不同分辨率。
缺点是它确实意味着原始文档的pdf很大。但是,如果您latex
制作原始pdf,可以减轻这种情况 - 因为您可以使用draft
选项直到完成,这样您的图像就不会在日常中导入编辑文本(渲染大图像会很烦人)。
答案 2 :(得分:0)
您是否尝试打印到PDF然后转换为SVG?
在Linux中,您可以使用imagemagick执行此操作,您甚至可以使用它来减小原始SVG文件的大小。