2016-01-30 120 views
2

我正在为我的模拟做一个视频,其中每个帧都是模拟图片和图形。我使用gnuplot创建图形,然后首先运行模拟以确定要使用的x和y范围,然后将范围硬编码到绘图脚本中。它可以正常工作,但情节不会占用整个表面,有大量的空白区域,情节只占总区域的四分之一。有没有办法让剧情更接近边界的边缘,或者控制剧情布局的方法?Gnuplot扩大绘制填充区域

脚本:

set term postscript eps color enhanced "Helvetica" 36 
set output 'image.eps' 
set size ratio 0.8 
set logscale x 
set xlabel 'Time(Arb. Units)' 
set xrange [10:100000] 
set yrange [0:1.6] 
set y2range [0:0.5] 
set ylabel 'Absorption(%)' 
set y2label 'Emission' 
set format x '%.0e' 
set xtics 10, 100, 100000 
set key noautotitles 
plot 'absorption.dat' axes x1y1 w lines lt 3 lw 5, 'emission.dat' axes x1y2 w lines lt 1 lw 5 

这里是什么出来: enter image description here

我设置一个灰色的背景,所以你可以看到被浪费了什么样的空间。

编辑:我也尝试了PNG终端,但似乎使问题变得更糟。情节进一步缩水。我更换了脚本的顶部两行:

set term png font Helvetica 36 
set output 'image.png' 

那么这是什么出来: enter image description here

+0

在PNG中,您可能使用的字体太大或太小的png图像的大小。输入'help png'获得所有选项 – bibi

+0

我也建议发布命令'set ytics nomirror'来避免y2 ax1上的虚假记录 – bibi

+0

默认png大小是640x480,我通常使用'set term png增强透明裁剪大小1200,900' – bibi

回答

2

有几件事情涉及的地块大小的计算:

  1. 不同的终端有不同的默认画布大小。如果默认设置不适合您的需求,改变大小set terminal ... size ...

  2. 画布具有固定纵横比(由终端大小设置中指定),你施加额外的约束与set size ratio...这只会影响的情节,但不是画布的尺寸。所以,如果你需要这个尺寸比例,你必须调整剧情画布。

  3. 第三个参数是边距。由于gnuplot并不完全知道终端如何呈现标签,因此边距不能准确。您可以使用set bmargin ...(对于底部边距)手动设置边距,并等效于其他边距。

1

我会建议使用接受crop标志 例如终端pnggifjpegepscairo

+0

我遇到了png终端的其他问题。出于某种原因,根据我使用的终端,剧情的大小会有很大的不同。查看修改。 –

+0

是的,不同的驱动程序会产生不同的输出,部分原因是gnuplot是一个协作项目,依赖于并不总是使用相同结构的第三方库。此外'png'是一种光栅图像格式,而'eps'是矢量图形:非常不同的方法。尽管如此,情况正在变得越来越好。 – bibi