how to draw 3 2D plots concurrently with their 3D plot in the same image
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
hend
am 1 Mai 2014
Kommentiert: JOSE RENATO COZZOLINO
am 3 Jan. 2021
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
1 Kommentar
JOSE RENATO COZZOLINO
am 3 Jan. 2021
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;
Akzeptierte Antwort
José-Luis
am 1 Mai 2014
Bearbeitet: José-Luis
am 2 Mai 2014
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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!