使用 Plots 或 PyPlot 在 Julia 中绘制 3D 表面

问题描述

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

编辑:我也收到以下错误:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)