我正在尝试使用gnuplot
将graphene波段结构绘制为两个曲面,并在底部绘制一个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
终端,但我认为这不相关)是:
是否可以将轮廓基准平面绘制得更靠近表面?如何删除那些垂直的黑线?
对于第一部分,我尝试使用wioth set zrange
但没有成功。基准平面似乎每次都在最低z范围限制之下绘制一定的z距离。
想法?提前谢谢!
答案 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