Gnuplot:如何在轴和pm3d地图之间留出一些空间

时间:2014-04-25 13:21:25

标签: map gnuplot axis

这是我的代码:

f(x,y)=sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x)
set size square
set xrange [-5:5]
set yrange [-5:5]
set contour base
set cntrparam level incremental -3, 0.5, 3
set palette rgbformulae 33,13,10
set pm3d map
set isosample 250, 250
unset key
set lmargin at screen 0.05
set rmargin at screen 0.9
set bmargin at screen 0.05
set tmargin at screen 0.9
splot f(x,y) with pm3d

这是数字:

enter image description here

如何在轴和实际情节之间留出一些空间,如下所示:

enter image description here

1 个答案:

答案 0 :(得分:3)

对于数据集,可以使用set offsetsset autoscale fix来实现这一目标。因此,一种选择是将数据绘制到文件(set table 'tmp.txt'; splot f(x,y) w l; unset table`),然后将该文件绘制为数据。

另一个选择是重新定义您的函数,以便为某个范围之外的样本返回1/0

我发现最优雅的方式(至少我发现的方法)是使用参数模式并使用比urange更小的vrangexrange以及yrange }:

reset
f(x,y)=sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x)
set size square

set contour base
set cntrparam level incremental -3, 0.5, 3
set palette rgbformulae 33,13,10
set pm3d map
set isosample 250, 250
unset key
set lmargin at screen 0.05
set rmargin at screen 0.9
set bmargin at screen 0.05
set tmargin at screen 0.9

# 5% margin on each side
m = 1.05
set xrange [-m*5:m*5]
set yrange [-m*5:m*5]
set urange [-5:5]
set vrange [-5:5]
set parametric

splot u,v,f(u,v) with pm3d

结果(用4.6.4):

enter image description here