how to draw 3 2D plots concurrently with their 3D plot in the same image
4 次查看(过去 30 天)
显示 更早的评论
I want to draw an analytical signal in 3D space with it's projection in imaginary-time axes, real-time axes and real-imaginary axes concurrently. when I use command plot3 and then hold on with one of the 3 axes it plot it in the front of image not in the corresponding axes
like this one
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/162003/image.png)
1 个评论
JOSE RENATO COZZOLINO
2021-1-3
Hello there, I tried my best to make a corresponding plot code:
f0 = 6;
divs = 30;
t = 0:1/(divs*f0):1;
eixoy = 1*ones(max(size(t)));
eixox = -1*ones(max(size(t)));
eixoz = -0.2*ones(max(size(t)));
X = (1-0.5.*t).*cos(2.*pi.*f0.*t);
Y = (1-0.5.*t).*sin(2.*pi.*f0.*t);
Z = [t; X; Y];
figure
hold on;
plot3(t,X,eixox,'b');
plot3(t,eixoy,Y,'g');
plot3(eixoz,Y,X,'m');
plot3(Z(1,:),Z(2,:),Z(3,:),'k')
xlim([-0.2 1.2])
ylim([-1.2 1.2])
zlim([-1.2 1.2])
grid on;
采纳的回答
José-Luis
2014-5-1
编辑:José-Luis
2014-5-2
You could use plot3() and consecutively set one of the coordinates as a constant.
data = repmat((1:10)',1,3);
plot3(data(:,1),data(:,2),data(:,3));
l = size(data,1);
hold on;
xl = get(gca,'xlim');
yl = get(gca,'ylim');
zl = get(gca,'zlim');
plot3(data(:,1),data(:,2),repmat(zl(1),l,1));
plot3(data(:,1),repmat(yl(2),l,1),data(:,3));
plot3(repmat(xl(2),l,1),data(:,2),data(:,3));
grid on;
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Visual Exploration 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!