Plotting in 3d
Contents
Space curve
Example:
t=linspace(0,6*pi); x=cos(t); y=sin(t); z=t; plot3(x,y,z) axis equal; axis square; grid on
Another spacecurve
Hig-Hig p. 113-114
close all t=-5*pi:.005:5*pi; x=(1+t.^2).*cos(20*t); y=(1+t.^2).*sin(20*t); z=t; plot3(x,y,z,'LineWidth',2) grid on FS='FontSize'; xlabel('x(t)',FS,14);ylabel('y(t)',FS,14) zlabel('z(t)',FS,14,'Rotation',0,'HorizontalAlignment','right') title('\it{plot3 example}',FS,14)
Surface plot, meshgrid
x=linspace(-pi,pi,30); y=x; % No need to be the same. % Now comes meshgrid: [X,Y]=meshgrid(x,y); Z=cos(X).*sin(Y); % Remember: vector operation with (.) % The data is ready, now "surf" it: surf(x,y,Z),colorbar % Several options, shading, colormap, m...
Contour plot
The same data is needed for contour plot, so we can continue:
contour(X,Y,Z,'LineWidth',2) hold on mesh(x,y,Z) %
What does meshgrid do?
The Z-matrix could be obtained by
m=length(x);n=length(y); for k=1:m for l=1:n Z(k,l)=cos(x(k))*sin(x(l)); end end hold off mesh(x,y,Z) % Well, this is at least tedious.
Lets look at small data:
x=0:3 y=-(0:2) [X,Y]=meshgrid(x,y) % % X has duplicated rows, Y has duplicated columns % X and Y are of same size % Look at the points: [X(:) Y(:)] plot(X(:),Y(:),'*');shg axis([-.5 3.5 -2.5 .5]);shg figure subplot(2,1,1) imagesc(X) %,colorbar title('upper X, lower Y') subplot(2,1,2) %title('Y') imagesc(Y) % All is right, isn't it!
x = 0 1 2 3 y = 0 -1 -2 X = 0 1 2 3 0 1 2 3 0 1 2 3 Y = 0 0 0 0 -1 -1 -1 -1 -2 -2 -2 -2 ans = 0 0 0 -1 0 -2 1 0 1 -1 1 -2 2 0 2 -1 2 -2 3 0 3 -1 3 -2
Example function plotsin2
This is an example of a function with no output argumrnts. type plotsin2 % From MIT-material plotsin(3,4)
plotsin(5)
quiver-to add velocity vectors to a plot
This is a very nice function for making fieldplots to put arrows on points generated by meshgrid. Included in the materal of advanced course Spring 2018.