任何10^5点的矢量格式表示都必然很大,因为每个点都是单独描述的,即使它位于许多其他点的顶部或下面。一般的解决方案是使用位图格式进行绘图,因为绘图中的每个像素要么设置要么不设置,无论上面有多少个点。输出表示的大小是一次近似值,不依赖于点数。
坚持gnuplot,我可能会使用
set terminal cairolatex png standalone
生成一个初始的绘图描述,然后由pdflatex生成一个最终的pdf,其中嵌入了位图。例如。:
# create a bitmapped version
set term cairolatex png standalone size 10cm, 7cm
set output 'cairolatex+png.tex'
set xrange [0:1]
set sample 100000
plot '+' using (rand(0)):(rand(0)) with dots
unset output
system("pdflatex cairolatex+png")
# create a vector version
set term tikz standalone size 10cm, 7cm
set output 'tikz.tex'
set sample 10000
replot
unset output
system("pdflatex tikz")
第一个绘图立即完成并生成一个较小的文件。第二个绘图需要几分钟,生成一个更大的文件,尽管只包含1/10的点数。
[236] ls -s1 *.pdf
416 cairolatex+png.pdf
844 tikz.pdf
尽管默认字体可能不同,但这两种字体都使用latex作为绘图的文本部分。