Gnuplot扩大地块填充区域

时间:2016-01-30 09:38:35

标签: gnuplot

我正在为我的模拟制作一个视频,每个帧都是模拟图片和图形。我正在用gnuplot创建图形,我首先运行模拟以确定要使用的x和y范围,然后将范围硬编码到绘图脚本中。它工作正常,但情节并没有用尽整个表面,有大量的白色空间,而且情节只占总面积的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

以下是出现的内容: enter image description here

我设置了灰色背景,以便您可以看到浪费的空间。

编辑:我也尝试过png终端,但这似乎使问题更严重。情节进一步缩小。我用脚本替换了脚本的前两行:

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

然后这是出来的: enter image description here

2 个答案:

答案 0 :(得分:2)

计算绘图大小涉及到几个方面:

  1. 不同的终端具有不同的默认画布大小。如果默认设置不符合您的需求,请更改尺寸Private Function RemoveRecursive(ByRef values As List(Of DataRow), value As String) As List(Of DataRow) For index As Integer = values.Count - 1 To 0 Step -1 If Not IsDBNull(values(index)("parent")) AndAlso (values(index)("parent") = value OrElse values(index)("id") = value) Then Dim newValue as integer = values(index)("id").ToString() values.RemoveAt(index) RemoveRecursive(values, newValue) End If Next Return values End Function

  2. 画布具有固定的宽高比(由终端大小设置给出),并且您使用set terminal ... size ...强加了一个附加约束,该约束仅影响绘图而不影响画布大小。因此,如果您需要此大小比例,则必须使绘图画布适应它。

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

答案 1 :(得分:1)

我建议使用接受png标志的终端 例如gifjpegepscairo以及<script> $(function(){ var test = localStorage.input === 'true'? true: false; $('input').prop('checked', test); }); $('input').on('change', function() { localStorage.input = $(this).is(':checked'); console.log($(this).is(':checked')); }); </script>