这是我的代码:
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
如下图:
我如何在轴和实际图之间留出一些空间,如下所示:
对于数据集,可以set offsets
一起使用set autoscale fix
以实现此目的。因此,一种选择是将数据绘制到文件中(set table 'tmp.txt'; splot f(x,y) w l
;未设置表`),然后将该文件绘制为数据。
另一种选择是重新定义函数以返回1/0
超出一定范围的样本。
我发现最优雅的方式(至少是我发现的方式)是使用参数化模式,并使用小于urange
和vrange
小于xrange
和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):
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句