在单个图中绘制3d绘图(Wigner函数)的x-y平面投影以及3d绘图

时间:2016-09-11 14:52:35

标签: matlab plot 3d contour

我想要一个情节如下:

Wigner plot

这里,根据x,y数据计算的Wigner函数被绘制为W,并且还示出了其在x-y平面上的投影。 我使用了以下代码来绘制Wigner函数。如何在同一图中显示W在x-y平面上的投影?

xvec = [-2:2]; 
yvec = xvec;
W = wfunc(psi,xvec,yvec,g);
f1 = figure(1); 
mesh(xvec,yvec,real(W));
shading interp

1 个答案:

答案 0 :(得分:0)

您可以使用hold on在同一图中添加许多图形对象。例如:

figure    
surf(xvec,yvec,real(W),'linestyle','none')
hold on
contourf(xvec,yvec,real(W),100,'linestyle','none')

您可以使用

移动轮廓色彩图的z - 位置(在评论here之后)
[~,hc] = contourf(xvec,yvec,real(W),100,'linestyle','none');
hcpatches = findobj(hc,'Type','Patch');
for n=1:length(hcpatches)
  set(hcpatches(n),'ZData',-5*ones(size(get(hcpatches(n),'XData'))))
end

此外,您可以尝试使用surfc