Department of Mathematics, UET, Lahore
Numerical Methods in Computing
Lectures By: Dr Taimoor Iqbal
Email:
[email protected]Department of Mathematics, UET, Lahore
2-D PLOTS
2
Department of Mathematics, UET, Lahore
This chapter will cover 2D (two-dimensional) plots.
▪Linear, semi-logarithmic, logarithmic axes
▪Line type, color, thickness
▪Lots of different data-point markers
▪Grid lines, titles, text comments, legends
▪Subplots
▪Bar, stair, polar plots
3
Department of Mathematics, UET, Lahore
4
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
plot command used to make basic 2D
plots. Simplest form is plot(y)
▪Plots vector y on vertical axis, numbers 1
through N on horizontal axis (N = number of
points in y)
▪If there's a Figure Window, draws in it.
Otherwise, creates a new Figure Window and
draws in that
5
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
plot(y) default values
▪Both axes linear
▪ MATLAB chooses axis ranges so that end values are
nice
▪Points connected by straight lines
▪No point markers
▪Points and lines in blue
6
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
Example
>> y = [ 2.1 2.1 2.1 1 0 -1 -2.1 -2.1 -2.1 ];
>> plot( y )
7
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
If after issuing plot command, no
Figure Window appears, window is
TIP buried. Click on Figure Window icon
on task bar to make window appear
8
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
Second simplest form is plot(x,y)
▪x and y are vectors that have same size (number
of elements) but any dimension
▪x-values on horizontal axis, y-values on vertical
axis
▪Default values same as for plot(x)
9
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
Example
>> x=[1.1 1.8 3.2 5.5 7 7.5 8 10];
>> y=[2 6.5 7 7 5.5 4 6 8];
>> plot(x,y)
10
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
To use values other than defaults
11
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
Line specifiers define style and color of lines,
and marker types
Line Styles
Line Colors
12
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
Marker Types
13
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
14
Department of Mathematics, UET, Lahore
5.1 THE plot COMMAND
Property Name and Property Value:
In plot command, type property name in quote
marks, then comma, then value
15
Department of Mathematics, UET, Lahore
5.1.1 Plot of Given Data
16
Department of Mathematics, UET, Lahore
One way to plot a function of an
independent variable:
1. Create a vector of values of the
independent variable
2. Create a vector of value of function at
every element of above vector
3. Plot using plot(x,y)
17
Department of Mathematics, UET, Lahore
5.1.2 Plot of a Function
18
Department of Mathematics, UET, Lahore
5.1.2 Plot of a Function
To copy entire Figure Window into another
program, e.g., Word, PowerPoint
1. Click on Figure Window to make it
current window
2. Select ALT+PRNTSCRN
3. Paste into other application
19
Department of Mathematics, UET, Lahore
5.1.2 Plot of a Function
To copy just plot area of Figure Window
into another program, e.g., Word,
PowerPoint
1. In Figure Window, select
Edit, then Copy Figure
2. Paste into other application
20
5.2 The fplot Command
Department of Mathematics, UET, Lahore
fplot plots a function y = f(x)
between given limits
▪Can specify function in writing,
i.e., as a text string
▪Function can include MATLAB's
functions or ones that you write
21
5.2 The fplot Command
Department of Mathematics, UET, Lahore
fplot('function',limits,'line specifiers')
▪Independent variable in function can be
any letter, e.g.,
▪ 8*x^2+5*cos(x) or 8*t^2+5*cos(t)
▪limits – two- or four-element vector
that specifies plot axes limits
▪ [xmin xmax] – limits on x-axis
▪ [xmin xmax ymin ymax] – limits on both
axes
▪line specifiers – same as in plot
22
5.2 The fplot Command
Department of Mathematics, UET, Lahore
Example
>> fplot('x^2+4*sin(2*x)-1',[-3,3])
23
5.3 Plotting Multiple of
Department Graphs in the Same Plot UET,
Mathematics, Lahore
Often want to graph more than one
set of data on the same plot
MATLAB can do this three
different ways
24
5.3.1 Using the plot of
Department Command
Mathematics, UET, Lahore
Plot two more graphs on same plot as
follows (example for three graphs)
plot(x,y,u,v,t,h)
▪Plots y vs. x, v vs. u, h vs. t
▪Vectors of each pair must be same
size
▪ Can be different than sizes in other pairs
▪Can use line specifiers by putting in
triplets (x-data, y-data, specifier), e.g.,
plot(x,y,'-b', u,v,'--r','t,h,'g:')
25
5.3.1 Using the plot of
Department Command
Mathematics, UET, Lahore
26
Department of Mathematics, UET, Lahore
5.3.2 Using the hold on and hold off Commands
Normally, each time you execute plot
it erases previous plot and draws new
one. To change this behavior:
▪Draw the first graph with plot
▪Issue the command hold on
▪Call plot for each of the remaining
graphs
▪Issue the command hold off
Graphs drawn after hold on are
added to plot. Graphs drawn after
hold off erase plot
27
Department of Mathematics, UET, Lahore
5.3.2 Using the hold on and hold off Commands
28
Department of Mathematics, UET, Lahore
5.3.3 Using the line Command
line command adds additional
graphs to an existing plot
line(x,y,'PropertyName','PropertyValue')
Example
line(x,y,'linestyle','--','color','r','marker','o')
adds graph drawn with dashed red
line and circular markers to current
plot
29
Department of Mathematics, UET, Lahore
5.3.3 Using the line Command
30
Department of Mathematics, UET, Lahore
5.4 Formatting a Plot
Will learn how to spruce up a plot
by adding
▪Axis labels
▪Title
▪Legend
▪Text
▪Grid
▪Custom axis ranges
31
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
plot or fplot make basic plot. After
issuing that command, can use
▪xlabel('some text') writes
label below horizontal axis
▪Example: xlabel('Time (sec)')
▪ylabel('some text') writes
label to left of vertical axis
▪Example: ylabel('Current (mA)')
32
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
▪title('Some text') writes title above
plot
▪ Example: title('Diode Current')
▪text(x,y,'Some text') places text in
figure with first character at (x,y)
▪ Example:
text(x,y,'Peak 3.5 sec after first')
▪gtext('Some text') – figure window
opens, user clicks on graph where she wants
text to appear
33
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
legend('text1','text2',...,pos)
writes legend
▪For each graph (data set) displays short line in
same style as graph line and adds specified text
▪ First string goes with first graph plotted, second string
goes with second graph plotted, etc.
▪Most useful for plots having at least two graphs
▪pos values in book are obsolete as of MATLAB
7.0 (R14). Type help legend or see
documentation for new values
34
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Formatting the text within the xlabel, ylabel, title,
text and legend commands:
Can format text displayed by above
commands
▪Can set font, size, character color,
background color, sub/superscript, style
(bold, italic, etc.)
▪Can display Greek letters
▪Can format using modifiers within text string
or by adding property names and values to
command
35
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Text modifiers are placed inside text
string and affect appearance of text
▪All text following modifier gets
modified
▪To only modify some text put open
brace ({), modifier, text-to-be-modified,
close brace (})
36
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Example titles
title('\it What You Should Never See')
makes
What You Should Never See
title('What You Should{\it Never} See')
makes
What You Should Never See
37
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Example titles
title('\fontname{Old English Text MT}...
My Name is Robin Hood')
makes
My Name is Robin Hood
title(...
'{\fontname{Old English Text MT}Robin Hood}...
was here')
makes
Robin Hood was here
38
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Some common modifiers
▪\bf – bold face
▪\it – italic
▪\rm – normal font
▪\fontname{fontname} – font name
▪\fontsize{fontsize} – font size
39
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Subscript and superscript:
To make single character
▪Subscript – precede it by underscore (_)
▪Superscript – precede it by caret(^)
For multiple characters, same as above
but enclose characters in (curly) braces
▪ xlabel('H_2O (l)') makes H2O
▪ ylabel('e^{-k*sin(x)}') makes e-k*sin(x)
40
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Greek characters:
To make a Greek letter, follow
backslash with letter name
(in English!)
▪Name in lowercase makes
lowercase Greek letter
▪Name with capitalized first letter
makes uppercase Greek letter
41
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
ylabel('Standard deviation (\sigma) of resistance in M\Omega')
makes
Standard deviation (σ) of resistance in MΩ
Some Greek characters
42
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
For xlabel, ylabel, title, text, can
also change display of entire text string by using
property name – property value pairs, e.g.,
text(x,y,'Some text',PropertyName,PropertyValue)
▪ PropertyName is text string
▪ PropertyValue is number if value is
number or text string if value is letter or word
Example
text(x,y,'Depth','Rotation',45) makes
43
5.4.1 Formatting a Plot Using Commands
Department of Mathematics, UET, Lahore
Some property-name property-value pairs
44
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
The axis command:
MATLAB makes axes limits in
plot command so that all data
appears and limits are nice
numbers. Can change that with
axis command
45
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Common axis variations are:
axis([xmin xmax ymin ymax])
▪ Sets limits of both axes
axis equal
▪ Sets same scale for both axes
axis square
▪ Sets axis region to be square
axis tight
▪ Sets axes limits to range of data
(not usually nice numbers!)
46
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
The grid command:
grid on
▪ Adds grid lines to plot
grid off
▪ Removes grid lines from plot
47
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
This script
48
5.4.1 Formatting a Plot
Department ofUsing Commands
Mathematics, UET, Lahore
Makes this plot
49
5.5 Plots With Logarithmic
Department Axes
of Mathematics, UET, Lahore
Often use plot with one or both axes
being logarithmic (log)
▪Used to display data with large
range of values
▪Used to make some functional
relationships more apparent
▪ For example, y = 10(2x+3) is a straight line on
a semilog plot
50
5.5 PLOTS WITH LOGARITHMIC
Department AXES
of Mathematics, UET, Lahore
MATLAB commands for log plots
▪Can use line specifiers and property-
name property-value pairs as in plot
▪On logarithmic axis, make sure all data
is > 0 because otherwise log is
undefined
51
5.5 Plots With Logarithmic
Department Axes
of Mathematics, UET, Lahore
Example
52
5.6 Plots With Error Bars
Department of Mathematics, UET, Lahore
Experimental data that is plotted
usually also shows some measure of
the uncertainty in the measurements
▪Often shown by error bars, (usually
small) vertical lines above and below
data points. Their size is the size of the
uncertainty
▪Uncertainty measure is often the
standard error, which is approximately
the standard deviation of the samples
used to compute a data point
53
5.6 Plots With Error Bars
Department of Mathematics, UET, Lahore
errorbar(x,y,e)
▪All vectors in the command must be
same size
▪x and y are horizontal- and vertical-
axis data
▪e is error measurement at each point
▪ At each y(i), MATLAB draws vertical
error bar from y(i)-e(i) to y(i)+e(i)
54
5.6 Plots With Error Bars
Department of Mathematics, UET, Lahore
errorbar(x,y,d,u)
▪ All vectors in the command must be same size
▪ x and y are horizontal- and vertical-axis data
▪ u,d are error measurements at each point
▪ At each y(i), MATLAB draws vertical error bar from
y(i)-d(i) to y(i)+u(i)
NOTE: - third and fourth arguments in
errorbar at bottom of page should be switched,
i.e., command is errorbar(x,y,u,d)
55
5.7 Plots With Specialof
Department Graphics
Mathematics, UET, Lahore
MATLAB has lots of special types
of plots, e.g., bar, stairs, stem, pie
▪For more information on types of
plots, click on the Help icon, then on
MATLAB, then scroll down to the
Graphics section and click on 2-D and
3-D plots
56
5.7 Plots With Specialof
Department Graphics
Mathematics, UET, Lahore
Examples of specialized plots
57
5.7 Plots With Specialof
Department Graphics
Mathematics, UET, Lahore
58
5.8 Histograms
Department of Mathematics, UET, Lahore
A histogram is a plot of the distribution
of data. Entire range of data broken
into consecutive subranges or bins.
In histogram plot
▪Each bin represented by vertical bar
▪Left and right of vertical bar show range
of data in bin
▪Height of vertical bar is number of data
points in bin
59
5.8 Histograms
Department of Mathematics, UET, Lahore
MATLAB command hist makes
histogram. Simples form is hist(y)
▪y is vector of data points
▪hist divides range
into ten equal bins,
then plots result
60
5.8 Histograms
Department of Mathematics, UET, Lahore
Additional forms of hist
hist(y,nbins)
▪MATLAB divides range into nbins
(scalar) bins of equal size
hist(y,x)
▪x (vector) specifies midpoint of each bin
▪ Spacing between consecutive elements of x
can be different
▪ Bin edges are midpoints of consecutive bins
61
5.8 Histograms
Department of Mathematics, UET, Lahore
Can get histogram heights if desired
n=hist(y) n=hist(y,nbins) n=hist(y,x)
▪Output n is a vector
▪ Size of n is number of bins
▪ Value of element of n is number of data points
in corresponding bin
62
5.8 Histograms
Department of Mathematics, UET, Lahore
For two forms, can also get bin centers.
Form 1:
[n xout]=hist(y)
▪ n same as before
▪ xout(i) is center of ith bin
63
5.8 Histograms
Department of Mathematics, UET, Lahore
For two forms, can also get bin centers.
Form 2:
[n xout]=hist(y,nbins)
▪ n same as before
▪ xout(i) is center of ith bin
64
5.9 Polar Plots
Department of Mathematics, UET, Lahore
In polar coordinates, points in plane
specified by (r,θ)
▪r is distance from origin
▪θ is angle from positive,
horizontal axis. θ is positive in
counterclockwise direction
65
5.9 Polar Plots
Department of Mathematics, UET, Lahore
To make polar plot in MATLAB, use
polar(theta,radius,'line specifiers')
▪theta in radians and as defined previously
▪radius as defined in previously
▪Both must be vectors and of same size
▪line specifiers same as in plot
66
5.10 Putting Multipleof
Department Plots on the Same Page
Mathematics, UET, Lahore
subplot(m,n,p)
divides Figure Window into m
rows and n columns of
subplots
▪Subplots numbered from left to
right and top to bottom, with Subplot numbers for
upper left being subplot 1 and 3x2 set of subplots
lower right subplot m*n. p in
subplot command refers to this
numbering
67
5.10 Putting Multipleof
Department Plots on the Same Page
Mathematics, UET, Lahore
subplot(m,n,p)
▪If subplots don't exist, subplot creates
them and makes subplot p the current
subplot
▪If subplots exist, subplot makes subplot p
the current one
▪When subplot defines current subplot,
next plot and formatting commands draw
in current subplot
See Sample Problem 5-2 for example of
subplot use
68
5.11 Multiple Figure Windows
Department of Mathematics, UET, Lahore
On execution, any plotting command
1. Creates a Figure Window (if none exists)
2. Erases any plot in that window
3. Draws new plot
Can be useful though to have plots in
multiple windows. figure command
lets you do this
69
5.11 Multiple Figure Windows
Department of Mathematics, UET, Lahore
figure
1. Creates a new Figure Window
2. Labels the window "Figure n"
▪ n such that first window is Figure 1,
second is Figure 2, etc.
3. Makes new window the active
Figure Window
4. Brings window to front of the screen
Subsequent plotting commands
draw in the active Figure Window
70
5.11 Multiple Figure Windows
Department of Mathematics, UET, Lahore
Example
71
5.11 Multiple Figure Windows
Department of Mathematics, UET, Lahore
figure(n)
▪If Figure Window n exists, makes it the
active window
▪If Figure Window n doesn't exist, creates
it and makes it the active window
▪figure(n) useful in scripts, e.g., scripts
in which data set 1 is displayed in Figure
1, data set 2 is displayed in Figure 2, etc.
72
5.11 Multiple Figure Windows
Department of Mathematics, UET, Lahore
Use close command to close
figure windows
▪close closes active Figure Window
▪close(n) closes Figure Window n
▪close all closes all open Figure
Windows
73
5.12 Plotting Using the
Department ofPLOTS Toolstrip
Mathematics, UET, Lahore
Can make plots interactively by using
PLOTS toolstrip in Command Window
1. If Workspace Window not displayed, click on Layout
icon, then on Workspace
2. Make sure any variables you want to use in plotting
have values assigned to them
3. Click on PLOT tab
74
5.12 Plotting Using the
Department ofPLOTS Toolstrip
Mathematics, UET, Lahore
To make a 2-D plot
1. In Workspace Window, click on vector
you want to use for horizontal axis
2. While holding down CTRL key, click on
other vector(s) you want to plot on
vertical axis
▪ If you only select one vector, MATLAB plots
element numbers on horizontal axis and vector
on vertical axis
3. Plot types you can use will be
visible in toolstrip. Click on desired
plot type
75
5.12 Plotting Using the
Department ofPLOTS Toolstrip
Mathematics, UET, Lahore
After clicking on plot type, MATLAB
opens new Figure Window with data
plotted
▪ To replot same data with different plot
type, select Reuse Figure on right side of
toolstrip, then click on new plot type.
MATLAB erases previous plot and
makes new plot in same window
▪ To replot same data with additional plot
type, select New Figure on right side of
toolstrip, then click on new plot type.
MATLAB opens new Figure Window
and makes plot with new type in it
76
5.12 Plotting Using the
Department ofPLOTS Toolstrip
Mathematics, UET, Lahore
After plotting, MATLAB displays in
Command Window the command it
TIP used to make plot. You can copy the
command and paste it into a script to
enable the script to create the same
plot.
77