我很难让GNUplot正确呈现我的一些数据。基本上我有一些2D高度图数据(例如512×128个数据点),并且希望能够以“像素完美”方式(即每个数据点一个像素)绘制它。不幸的是,由于像素数量略大于数据点的数量,我得到了人工制品(见插图)。我知道我可以使用以下方法设置输出的总大小:
set terminal png size 800,400
但有没有办法只设置绘图区域大小(以像素为单位)?
谢谢!
答案 0 :(得分:1)
在lua / TikZ终端的帮助下(有一个选项plotsize)建议删除绘图边距,以便绘图填满整个画布。
set lmargin 0
set rmargin 0
set tmargin 0
set bmargin 0
set terminal png size 512,128
set out 'out.png'
# a checkerboard pattern to test the plot results for errors
f(x,y)=( (x<=0) || (x>=63) || (y<=0) || (y>=63) ) ? 0.5 : ((x+y)%2==0)?0:1
# the 'map' file contains only coordinates.
plot[-1:63][0:64] 'map' u 1:2:(f($1,$2)) with image
unset out
然而,这有一个缺点,你不会有tic标签等。您当然可以自己计算边距的值,以便它们最终与绘图大小匹配:使用
set lmargin at screen 0.25
例如。
无论如何,我还建议尽可能使用矢量图。