220 likes | 366 Views
CSE 123. Plots in MATLAB. Easiest way to plot Syntax: ezplot(fun) ezplot(fun,[min,max]) ezplot(fun2) ezplot(fun2,[xmin,xmax,ymin,ymax]). ezplot(fun) plots the expression fun(x) over the default domain -2p i < x < 2p i .
E N D
CSE 123 Plots in MATLAB
Easiest way to plot Syntax: ezplot(fun) ezplot(fun,[min,max]) ezplot(fun2) ezplot(fun2,[xmin,xmax,ymin,ymax]) ezplot(fun) plots the expression fun(x) overthe default domain -2pi < x < 2pi. ezplot(fun,[min,max]) plots fun(x) overthe domain: min < x < max. ezplot(fun2) plots fun2(x,y)= 0 over the default domain -2pi < x <2pi, -2pi < y < 2pi.
Example: >>ezplot('x^3-2*x') >> ezplot('x^3-x',[-5 5])
plot command: Linear 2-D plot Syntax: plot(X,Y,linespec, ‘PropertyName',PropertyValue, …) LineWidth - specifies the width (in points) of the line. MarkerEdgeColor - specifies the color of the marker or the edge color for filled markers (circle, square, diamond, pentagram, hexagram, and the four triangles). MarkerFaceColor - specifies the color of the face of filled markers. MarkerSize - specifies the size of the marker in units of points.
Examples: x=1:50; y=sin(x*pi/10)+cos(x*pi/10); plot(x,y) Examples: plot(x,y,'--ro')
Example plot(x,y,'-k', 'Linewidth', 5 ) Example plot(x,y,'-kd', 'MarkerEdgeColor',‘g', 'MarkerFaceColor', ‘r' )
Plotting multiple plots on the same figure x=1:50; y1=cos(x*pi/10); y2=sin(x*pi/10); plot(x,y1,x,y2) x=1:50; y1=cos(x*pi/10); y2=sin(x*pi/10); plot(x,y1) hold on plot(x,y2)
Plotting multiple plots on the same figure x=1:50; y1=cos(x*pi/10); y2=sin(x*pi/10); plot(x,y1,’k’) hold on plot(x,y2,’r’ ) plot(x,y1,’k’,x,y2,’r’)
Editing plots with editplot Syntax plotedit on plotedit off
2 plots: one above the other = 2-by-1 matrix 4 plots: in a 2x2 array = 2-by-2 matrix Subplot(2,1,1) Subplot(2,1,2) subplot command Syntax: subplot(N,M,i) N= number of rowsM= number of columns i= current plot number Notes: *This function does NOT create a plot *It HAS to be used BEFORE the plot function !!!! (2,2,1) (2,2,2) (2,2,3) (2,2,4)
subplot(2,1,1) plot(x,y1); grid on subplot(2,1,2) plot(x,y2,’k’); grid on Plotting multiple plots on the same figure x=1:50; y1=cos(x*pi/10); y2=1000*y1; plot(x,y1,x,y2,’k’); grid on
Plot features: xlabel, ylabel, title, grid x=1:50; y1=cos(x*pi/10); y2=sin(x*pi/10); plot(x,y1,x,y2) xlabel(‘x’); ylabel(‘y’); title(‘Example’) grid on Plot features: text and legend text(15,0.8,’y1’) text(20,-0.2,’y2’) legend(‘y1’,’y2’)
plotyy2-D line plots with y-axes on both left and right side Syntax plotyy(X1,Y1,X2,Y2) plotyy(X1,Y1,X2,Y2) plots X1 versus Y1 with y-axis labeling on the left and plots X2 versus Y2 with y-axislabeling on the right.
Example: >>x=0:0.05:5; y=sin(x.^2); z=cos(x.^2); plotyy(x,y,x,z)
%% Line Plot of a Chirp x=0:0.05:5; y=sin(x.^2); plot(x,y); >> %% Bar Plot of a Bell Shaped Curve x = -2.9:0.2:2.9; bar(x,exp(-x.*x)); >> %% Bar Plot of a Bell Shaped Curve x = -2.9:0.2:2.9; bar(x,exp(-x.*x)); >> %% Stairstep Plot of a Sine Wave x=0:0.25:10; stairs(x,sin(x)); >> %% Errorbar Plot x=-2:0.1:2; y=erf(x); e = rand(size(x))/10; errorbar(x,y,e); >> % Polar Plot t=0:.01:2*pi; polar(t,abs(sin(2*t).*cos(2*t))); >> x = 0:0.1:4; y = sin(x.^2).*exp(-x); stem(x,y)
Logarithmic Plots commands semilogx() plots x data on log axis and y on linear axis semilogy() plots y data on log axis and x on linear axis loglog() plots x and y on logarithmic axes
Logarithmic Plots Example: plot y=e2x >> x=0:0.1:10; >> y=exp(2.*x); >>plot(x,y) >> semilogy(x,y)
Three dimensional plots Three dimensional line plots the simplest form is plot(x,y,z) x,y,z are arrays of equal size containing the locations of data points to plot. Example: x(t)= e-0.2tcos (2t) y(t)= e-0.2tsin(2t) motion of an insect t=0:0.1:10; x=exp(-0.2*t).*cos(2*t); y=exp(-0.2*t).*sin(2*t); plot(x,y) title('\bf 2D plot') xlabel('\bfx') ylabel('\bfy') grid on
Three dimensional plots instead we could plot the variables with plot3() to preserve the time information as well as the 2D position of the object. plot3(x,y,t) t=0:0.1:10; x=exp(-0.2*t).*cos(2*t); y=exp(-0.2*t).*sin(2*t); plot3(x,y,t) title('\bf 3D plot') xlabel('\bfx') ylabel('\bfy') zlabel('\bftime') grid on
Three dimensional plots surface, Mesh and contour plots: such kind of plots represent data that is a function of 2D variables. a user must create three arrays of equal size; Commands: mesh(x,y,z) creates a mesh or wireframe plot where x,y and z are 2D arrays of containing x,y,z values at every point, respectively. surf(x,y,z) creates a surface plot, contour(x,y,z) creates a contour plot, [x,y]=meshgrid(xstart:xinc:xend, ystart:yinc:yend) easily create x and y arrays required for 3D plots to create a 3D plot use meshgrid to create the arrays of x and y values then evaluate the function to plot at each of x,y pairs. finally call the above mentioned functions to create plot.
Three dimensional plots Example: create the mesh plot of the following function over the interval [x,y]=meshgrid(-4:0.1:4); z= exp(-0.5*(x.^2+0.5*(x-y).^2)); mesh(x,y,z);