我正在为我的模拟制作一个视频,每个帧都是模拟图片和图形。我正在用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
我设置了灰色背景,以便您可以看到浪费的空间。
编辑:我也尝试过png终端,但这似乎使问题更严重。情节进一步缩小。我用脚本替换了脚本的前两行:
set term png font Helvetica 36
set output 'image.png'
答案 0 :(得分:2)
计算绘图大小涉及到几个方面:
不同的终端具有不同的默认画布大小。如果默认设置不符合您的需求,请更改尺寸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
画布具有固定的宽高比(由终端大小设置给出),并且您使用set terminal ... size ...
强加了一个附加约束,该约束仅影响绘图而不影响画布大小。因此,如果您需要此大小比例,则必须使绘图画布适应它。
第三个参数是边距。由于gnuplot并不完全知道终端如何呈现标签,因此边距可能不准确。您可以使用set size ratio...
(底部边距)手动设置边距,并等效其他边距。
答案 1 :(得分:1)
我建议使用接受png
标志的终端
例如gif
,jpeg
,epscairo
以及<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>