260 likes | 283 Views
Introduction to Matlab:. Matlab Graphics. 2D Graphics. S. Awad, Ph.D. M. Corless, M.S.E.E. E.C.E. Department University of Michigan-Dearborn. 2D Graphics Topics. Creating Two Dimensional Plots Creating Multiple Plots Using a Legend Box Customizing Axes Zoom Command Adding Text
E N D
Introduction to Matlab: MatlabGraphics 2D Graphics S. Awad, Ph.D. M. Corless, M.S.E.E. E.C.E. Department University of Michigan-Dearborn
2D Graphics Topics • Creating Two Dimensional Plots • Creating Multiple Plots • Using a Legend Box • Customizing Axes • Zoom Command • Adding Text • Getting Data from a Graph • Sub Plotting • Other 2D Features and Plot Types • 2D EZPlot
Marker: Point Color: Blue Writes Title of Graph Two-Dimensional Plots • PlotCommand for 2D plots • Sinewave Example: » theta=[0:pi/128:2*pi]'; » y=sin(theta); » plot(theta,y,'b.'); » xlabel('Angle in Radians'); » ylabel('Amplitude'); » title('One Period of a Sine Wave');
2-D Grids To Enable Grid » grid on To Disable Grid » grid off Grid Toggles
Stem Command » theta=[0:pi/32:2*pi]'; » y=cos(theta); » stem(theta,y, 'rx'); Color: Red Marker: x » xlabel('Angle in Radians'); » ylabel('Amplitude'); » title('Stem Plot of Cosine Wave');
Clearing a Figure • In case a figure already exists, the plot command will clear the current figure window and draws a new plot. • To clear a figure use the clf command » clf
Multiple Plots » x1=[1 2 3 4]'; y1=[4 4.1 4.2 4.3]'; (x1 and x2 have same length) » x2=[1 2 3 4 5]'; y2=[5 5.1 5.2 5.3 5.4]'; (x2 & y2 have same length but may be different from x1 & y1) » x3=[1 2 3 4 5 6]'; y3=[6 6.1 6.2 6.3 6.4 6.5]'; (x3 & y3 have same length but may be different from x1 & y1...) • Consider the following vector pairs: • To plot the 3 plots on the same graph plot(x1,y1,'r',x2,y2,'xb',x3,y3,'k'); • xlabel, ylabel, & title can also be put on the graph
Figure with Multiple Plots plot(x1,y1,'r',x2,y2,'xb',x3,y3,'k'); r = color: red xb= marker: x color: blue k = color: black
Plotting Using Hold • hold on command to draw multiple plots on same figure • » plot(x1,y1,'r'); • » hold on • » plot(x2,y2,'xb') • » hold on • » plot(x3,y3,'k');
Vectors of Same Length • If x1, x2, & x3 are the same vector x: » x =[1 2 3 4 ]’; • And there are y1, y2, & y3 of same size: » y1=[1 2 3 4 ]’; » y2=[1.2 2.2 3.2 4.2]’; » y3=[1.4 2.4 3.4 4.4]’; • Then to plot the 3 plots at the same time » y = [ y1, y2, y3] % 3 columns » plot( x,y );
Same Length Plots • 3 Vectors • How to Distinguish between plots?
Legend Box • To create a legend box in the upper right corner of the plot for the previous example: » legend('First', 'Second', 'Third' ); • To move the legend, click and hold the left mouse button near the edge of the legend and drag it to the required place. • To delete the legend, use » legend off
Placing Legend Box • Click and Drag to place Legend
or » axis('auto') » axis auto Customizing Axes • To set each axis minimums and maximums » axis([ xmin xmax ymin ymax]); • To return to default settings • Set scaling factors for both axes to be equal » axis equal • To keep MATLAB from altering the proportions of the axes if the view is changed » axis vis3d
Zoom Command • To expand the sections of a 2-D plot use • Click the left mouse button to expand the area by a factor of 2 around the point under the mouse pointer • Each time you click, the plot expands » zoom on • To return plot to it’s initial state » zoom out • To exit zoom mode » zoom off Note: Turn Legend off before using zoom
Adding Text to a Graph • gtext is used to place text on a graph • It puts the cross-hair that follows the mouse and waits for a click at the desired location » gtext('These are straight lines');
Number of Points Selected Y-Coordinate Vector X-Coordinate Vector Getting Data from a Graph • Suppose there is a current plot on the screen and we want to select some points from the graph and return the x & y coordinates • To do this use the ginput command » [xp, yp] = ginput(3);
Subplots on Same Figure • subplot(m,n,p) breaks the Figure window into an m-by-n matrix of small axes & selects the p-th axes • The p-th axis is numbered left to right along the top row, second row, etc. • Each subplot is a separate graph • When a particular subplot is active, it is the only subplot (or axis) that is responsive to axis, xlabel, etc. The other subplots are not affected. • To return to default mode use: » subplot(1,1,1)
Subplot Example » subplot(2,3,1); » title('plot 1'); » subplot(2,3,2); » title('plot 2'); » subplot(2,3,3); » title('plot 3'); » subplot(2,3,4); » title('plot 4'); » subplot(2,3,5); » title('plot 5'); » subplot(2,3,6); » title('plot 6');
Other 2-D Features » loglog(x,y); Plots log scale for x & y » semilogx(x,y); X-Axis uses log scale » semilogy(x,y); Y-Axis uses log scale » pie(a,b); Pie Chart (a&b are vectors) » bar(x,y); Bar Graph
Optional logical vector describing a slice or slices to be pulled out of pie chart Pie Chart Example » a=[0.5, 1, 1.6, 1.2, 0.8, 2.1]; » pie(a,a==max(a));
Bar Graph Example » x=[-2.9:0.2:2.9]; » y=exp(-x.*x); » bar(x,y);
2-D EZPlot • ezplot(f) is used to plot symbolic variables • f is a string or symbolic expression representing a mathematical expression involving a single symbolic variable say ‘x’; » f='sin(x)'; » xmin=-2*pi;xmax=2*pi; » ezplot(f,[xmin,xmax]);
EZPlot Sine Example » f='sin(2*x)*exp(-x)';xmin=0;xmax=2*pi; » ezplot(f,[xmin,xmax]);
EZPlot X2 Example » ezplot('x^2',[0,5]),grid;
EZPlot Exponential Example » f='sin(x)*exp(-x)'; » ezplot(f,[0,10]); » grid on; » ylabel('Amplitude');