我想绘制一个包含两个变量(在代码中为e_pos和e_neg)的函数图像。其中,t和a是常数,我已经给它们赋值为1。
绘制这个函数的代码如下:
t = 1
a = 1
kx = ky = range(3.14/a, step=0.1, 3.14/a)
# Doing a meshgrid for values of k
KX, KY = kx'.*ones(size(kx)[1]), ky'.*ones(size(ky)[1])
e_pos = +t.*sqrt.((3 .+ (4).*cos.((3)*KX*a/2).*cos.(sqrt(3).*KY.*a/2) .+ (2).*cos.(sqrt(3).*KY.*a)));
e_neg = -t.*sqrt.((3 .+ (4).*cos.((3)*KX*a/2).*cos.(sqrt(3).*KY.*a/2) .+ (2).*cos.(sqrt(3).*KY.*a)));
using Plots
plot(KX,KY,e_pos, st=:surface,cmap="inferno")
如果我这样使用Plots,有时会得到一个空的3D平面而没有表面。我做错了什么?我认为这可能与我为kx和ky做的网格有关,但我不确定。