我想绘制一个两个变量函数(代码中的 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 所做的网格网格有关,但我不确定。