优化Gnuplot的SVG输出

时间:2011-09-27 04:30:43

标签: image svg gnuplot

我一直在尝试使用gnuplot绘制包含大约500,000个值的数据集。尽管绘图进展顺利,但它生成的SVG文件太大(大约25 MB)并且需要很长时间才能渲染。有什么办法可以改善文件大小吗?

我对SVG文件格式的理解模糊,我意识到这是因为SVG是一种矢量格式,因此必须单独存储500,000个点。

我也试过Scour并重新打印SVG但没有成功。

3 个答案:

答案 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文件的大小。

或者有在线转换器,例如http://image.online-convert.com/convert-to-svg