Gnuplot 扩展绘图以填充区域

Gnuplot Expand Plot to Fill Area

我正在为我的模拟制作视频,其中每一帧都是模拟的图片和图表。我正在用 gnuplot 制作图表,我首先 运行 模拟以确定要使用的 x 和 y 范围,然后将该范围硬编码到绘图脚本中。还可以,但是plot并没有用完整个surface,一吨白space,plot只占总面积的1/4左右。有没有办法让地块扩展到更靠近边界的边缘,或者有办法控制地块的位置?

脚本:

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

结果如下:

我设置了灰色背景,这样您就可以看到 space 浪费了什么。

编辑:我也尝试过 png 终端,但这似乎使问题变得更糟。情节更进一步。我将脚本的前两行替换为:

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

结果是这样的:

我建议使用接受 crop 标志的终端 例如pnggifjpeg 还有 epscairo

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

  1. 不同的终端有不同的默认canvas尺寸。如果默认值不符合您的需要,请更改大小 set terminal ... size ...

  2. canvas 有一个固定的长宽比(由终端大小设置给定),你用 set size ratio... 施加了一个额外的约束,它只影响绘图而不影响 canvas尺寸。所以,如果你需要这个大小比例,你必须调整情节 canvas 以适应它。

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