调整gnuplot中轮廓基准平面的位置

时间:2013-10-11 23:13:38

标签: gnuplot contour

我正在尝试使用gnuplotgraphene波段结构绘制为两个曲面,并在底部绘制一个countour曲线,使用set contour base设置,但我无法摆脱当我将它们放置在适当的视角时,一些轴线和绘制轮廓的平面离表面太远。

以下是绘制图表的代码

# Setting ranges and function parameters
set xrange [-.55:.55]
set yrange [-1:1]

t=-3.033 s=0.129 a=1.43 * sqrt(3)

# Auxiliary functions
kx(x,y) = (2*pi/a) * (cos(pi/6)*x + sin(pi/6)*y) ky(x,y) = (2*pi/a) * (cos(pi/6)*x - sin(pi/6)*y)    
w(x,y) = sqrt(1+4*cos(0.5*sqrt(3)*kx(x,y)*a)*cos(0.5*a*ky(x,y)) + 4*(cos(0.5*ky(x,y)*a))**2)

#functions to be plotted
e(x,y) = (t*w(x,y))/(1+s*w(x,y))
e_estrela(x,y) = (-t*w(x,y))/(1-s*w(x,y))

# Setting up 3D plot appearance
set hidden3d
set contour base set cntrparam levels discrete 0,0.5,1,2,4,8
set view 75, 31, 0.601098, 1.4385
set isosamples 60

# Removing unwanted stuff
unset xtics
unset ytics
unset ztics
unset key 

splot e_estrela(x,y), e(x,y)

我得到的输出(使用pngcairo终端,但我认为这不相关)是: Output from script above

是否可以将轮廓基准平面绘制得更靠近表面?如何删除那些垂直的黑线?

对于第一部分,我尝试使用wioth set zrange但没有成功。基准平面似乎每次都在最低z范围限制之下绘制一定的z距离。

想法?提前谢谢!

1 个答案:

答案 0 :(得分:3)

要调整数据与xy平面之间的距离,请使用选项

set xyplane relative <value>

其中<value>给出了xy平面与最小z值之间的距离,即绘图高度的相对分数。因此<value>=0将距离设置为零,<value>=0.5设置为高度的一半。

控制边框使用set border,其中每个边框线由位表示。有关详细信息,请参阅documentation。在你的情况下,我会建议:

set border 127+256+512 # or set border 1023-128
set grid #forces borders from xy-plane to plot