# chapter 5 - plotting

of 88
/88

Embed Size (px)

TRANSCRIPT

PlottingUsing subplots

Matlab for Engineers

Two Dimensional Plots

The xy plot is the most commonly used plot by engineers

The independent variable is usually called x

The dependent variable is usually called y

Matlab for Engineers

Consider this xy data

Time is the independent variable and distance is the dependent variable

time, sec

Distance, Ft

Define x and y and call the plot function

You can use any variable name that is convenient for the dependent and independent variables

Matlab for Engineers

Matlab for Engineers

Engineers always add …

Often it is useful to add a grid

Matlab for Engineers

Matlab for Engineers

Creating multiple plots

Matlab overwrites the figure window every time you request a new plot

To open a new figure window use the figure function – for example

figure(2)

hold on

Freezes the current plot, so that an additional plot can be overlaid

When you use this approach the additional line is drawn in blue – the default drawing color

Matlab for Engineers

Matlab for Engineers

The second line is also drawn in blue, on top of the original plot

To unfreeze the plot use the hold off command

The hold on command freezes the plot

Matlab for Engineers

You can also create multiple lines on a single graph with one command

Using this approach each line defaults to a different color

Matlab for Engineers

Each set of ordered pairs will produce a new line

Matlab for Engineers

Variations

If you use the plot command with a single matrix, Matlab plots the values versus the index number

Usually this type of data is plotted on a bar graph

When plotted on an xy grid, it is often called a line graph

Matlab for Engineers

Matlab for Engineers

If you want to create multiple plots, all with the same x value you can…

Use alternating sets of ordered pairs

plot(x,y1,x,y2,x,y3,x,y4)

z=[y1,y2,y3,y4]

Matrix of Y values

Matlab for Engineers

The peaks(100) function creates a 100x100 array of values. Since this is a plot of a single variable, we get 100 different line plots

Matlab for Engineers

Plots of Complex Arrays

If the input to the plot command is a single array of complex numbers, Matlab plots the real component on the x-axis and the imaginary component on the y-axis

Matlab for Engineers

Matlab for Engineers

Multiple arrays of complex numbers

If you try to use two arrays of complex numbers in the plot function, the imaginary components are ignored

Matlab for Engineers

Matlab for Engineers

Line, Color and Mark Style

You can change the appearance of your plots by selecting user defined

line styles

Matlab for Engineers

Line Type

For example

if you don’t specify style, a default is used

line style – none

mark style – none

the o means use a circle to mark each point

the letter k indicates that the graph should be drawn in black

(b indicates blue)

Matlab for Engineers

Matlab for Engineers

specify the drawing parameters for each line after the ordered pairs that define the line

Matlab for Engineers

Matlab automatically scales each plot to completely fill the graph

If you want to specify a different axis – use the axis command

axis([xmin,xmax,ymin,ymax])

Lets change the axes on the graph we just looked at

Matlab for Engineers

Matlab for Engineers

Annotating Your Plots

title

Matlab for Engineers

Matlab for Engineers

Improving your labels

You can use Greek letters in your labels by putting a backslash (\) before the name of the letter. For example:

title(‘\alpha \beta \gamma’)

creates the plot title

title(‘x^{2}’)

Matlab for Engineers

Subplots

The subplot command allows you to subdivide the graphing window into a grid of m rows and n columns

subplot(m,n,p)

rows

columns

location

Matlab for Engineers

Polar Plots

Logarithmic Plots

Bar Graphs

Pie Charts

Function Plots

Polar Plots

Some functions are easier to specify using polar coordinates than by using rectangular coordinates

For example the equation of a circle is

y=sin(x)

Matlab for Engineers

A logarithmic scale (base 10) is convenient when

a variable ranges over many orders of magnitude, because the wide range of values can be graphed, without compressing the smaller values.

data varies exponentially.

Matlab for Engineers

semilogy – uses a log10 scale on the y axis

semilogx – uses a log10 scale on the x axis

loglog – use a log10 scale on both axes

Matlab for Engineers

semilogx – log scale on the x axis

semilogy – log scale on the y axis

loglog – log scale on both axes

Matlab for Engineers

Matlab for Engineers

Bar Graphs and Pie Charts

Matlab includes a whole family of bar graphs and pie charts

bar(x) – vertical bar graph

barh(x) – horizontal bar graph

pie(x) – pie chart

Histograms

A histogram is a plot showing the distribution of a set of values

Matlab for Engineers

X-Y Graphs with Two Y Axes

Sometimes it is useful to overlay two x-y plots onto the same figure. However, if the order of magnitude of the y values are quite different, it may be difficult to see how the data behave.

Matlab for Engineers

Scaling Depends on the largest value plotted

Its difficult to see how the blue line behaves, because the scale isn’t appropriate

Matlab for Engineers

The plotyy function allows you to use two scales on a single graph

Matlab for Engineers

Function Plots

Function plots allow you to use a function as input to a plot command, instead of a set of ordered pairs of x-y values

fplot('sin(x)',[-2*pi,2*pi])

range of the independent variable – in this case x

Matlab for Engineers

Matlab for Engineers

Three Dimensional Line Plots

These plots require a set of order triples ( x-y-z values) as input

The z-axis is labeled the same way the x and y axes are labeled

Matlab for Engineers

Matlab uses a coordinate system consistent with the right hand rule

Matlab for Engineers

Just for fun

try the comet3 function, which draws the graph in an animation sequence

comet3(x,y,z)

If your animation draws too slowly, add more data points

For 2-D line graphs use the comet function

Matlab for Engineers

mesh - meshplot

Both Mesh and Surf

Can be used to good effect with a single two dimensional matrix

Matlab for Engineers

The x and y coordinates are the matrix index numbers

Matlab for Engineers

Using mesh with 3 variables

If we know the values of x and y that correspond to our z values, we can plot against those values instead of the index numbers

Matlab for Engineers

Matlab for Engineers

surf plots are similar to mesh plots

they create a 3-D colored surface instead of an open mesh

syntax is the same

shading interp

shading flat

faceted flat is the default

You can also adjust the color scheme with the color map function

Matlab for Engineers

Contour Plots

Contour plots use the same input syntax as mesh and surf plots

They create graphs that look like the familiar contour maps used by hikers

Matlab for Engineers

To demonstrate these functions lets use a more interesting example

A more complicated surface can be created by calculating the values of z, instead of just defining them

We’ll need to use the meshgrid function to create 2-D input arrays – which will then be used to create a 2-D result

Matlab for Engineers

Matlab for Engineers

Matlab for Engineers

Pseudo Color Plots

Uses the same syntax

The following example uses the built-in Matlab demonstration function peaks

Matlab for Engineers

Matlab for Engineers

Matlab for Engineers

Editing Plots from the Menu Bar

In addition to controlling the way your plots look by using Matlab commands, you can also edit a plot once you’ve created it using the menu bar

Another demonstration function built into Matlab is

sphere

Matlab for Engineers

Once you’ve created a plot you can adjust it using the menu bar

In this picture the insert menu has been selected

Notice you can use it to add labels, legends, a title and other annotations

Matlab for Engineers

Explore the property editor to see some of the other ways you can adjust your plot interactively

Select

Select Inspector from the Property Editor

Change the Aspect Ratio

Matlab for Engineers

If you adjust a figure interactively, you’ll lose your improvements when you rerun your program

Matlab for Engineers

Matlab for Engineers

Matlab will suggest plotting options and create the plot for you

Matlab for Engineers

Saving your plots

Rerun your M-file to recreate a plot

Save the figure from the file menu using the save as… option

You’ll be presented with several choices of file format such as

jpeg

emg (enhanced metafile) etc

Right-click on the figure and select copy – then paste it into another document

Matlab for Engineers

The x-y plot is the most common used in engineering

Graphs should always include titles and axis labels. Labels should include units.

Matlab includes extensive options for controlling the appearance of your plot

Matlab for Engineers

Multiple plots can be displayed in the same figure window

Most common plot types are supported by Matlab including

polar plots

bar graphs

pie charts

Matlab for Engineers

Figures created in Matlab can be stored using a number of different file formats

100200300400500

100

200

300

400

500

00.511.522.533.544.55

-5

-4.5

-4

-3.5

-3

-2.5

-2

-1.5

-1

-0.5

0

12345

0

2

4

6

8

12

0

2

4

6

8

1

2

3

4

5

1

2

0

5

10

-2

0

2

-2

0

2

-5

0

5

x

Peaks

y

0.2

0.4

0.6

0.8

1

30

210

60

240

90

270

120

300

150

330

180

0

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180

0

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180

0

2

4

6

8

10

30

210

60

240

90

270

120

300

150

330

180

0

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180

0

2

x

Matlab for Engineers

Two Dimensional Plots

The xy plot is the most commonly used plot by engineers

The independent variable is usually called x

The dependent variable is usually called y

Matlab for Engineers

Consider this xy data

Time is the independent variable and distance is the dependent variable

time, sec

Distance, Ft

Define x and y and call the plot function

You can use any variable name that is convenient for the dependent and independent variables

Matlab for Engineers

Matlab for Engineers

Engineers always add …

Often it is useful to add a grid

Matlab for Engineers

Matlab for Engineers

Creating multiple plots

Matlab overwrites the figure window every time you request a new plot

To open a new figure window use the figure function – for example

figure(2)

hold on

Freezes the current plot, so that an additional plot can be overlaid

When you use this approach the additional line is drawn in blue – the default drawing color

Matlab for Engineers

Matlab for Engineers

The second line is also drawn in blue, on top of the original plot

To unfreeze the plot use the hold off command

The hold on command freezes the plot

Matlab for Engineers

You can also create multiple lines on a single graph with one command

Using this approach each line defaults to a different color

Matlab for Engineers

Each set of ordered pairs will produce a new line

Matlab for Engineers

Variations

If you use the plot command with a single matrix, Matlab plots the values versus the index number

Usually this type of data is plotted on a bar graph

When plotted on an xy grid, it is often called a line graph

Matlab for Engineers

Matlab for Engineers

If you want to create multiple plots, all with the same x value you can…

Use alternating sets of ordered pairs

plot(x,y1,x,y2,x,y3,x,y4)

z=[y1,y2,y3,y4]

Matrix of Y values

Matlab for Engineers

The peaks(100) function creates a 100x100 array of values. Since this is a plot of a single variable, we get 100 different line plots

Matlab for Engineers

Plots of Complex Arrays

If the input to the plot command is a single array of complex numbers, Matlab plots the real component on the x-axis and the imaginary component on the y-axis

Matlab for Engineers

Matlab for Engineers

Multiple arrays of complex numbers

If you try to use two arrays of complex numbers in the plot function, the imaginary components are ignored

Matlab for Engineers

Matlab for Engineers

Line, Color and Mark Style

You can change the appearance of your plots by selecting user defined

line styles

Matlab for Engineers

Line Type

For example

if you don’t specify style, a default is used

line style – none

mark style – none

the o means use a circle to mark each point

the letter k indicates that the graph should be drawn in black

(b indicates blue)

Matlab for Engineers

Matlab for Engineers

specify the drawing parameters for each line after the ordered pairs that define the line

Matlab for Engineers

Matlab automatically scales each plot to completely fill the graph

If you want to specify a different axis – use the axis command

axis([xmin,xmax,ymin,ymax])

Lets change the axes on the graph we just looked at

Matlab for Engineers

Matlab for Engineers

Annotating Your Plots

title

Matlab for Engineers

Matlab for Engineers

Improving your labels

You can use Greek letters in your labels by putting a backslash (\) before the name of the letter. For example:

title(‘\alpha \beta \gamma’)

creates the plot title

title(‘x^{2}’)

Matlab for Engineers

Subplots

The subplot command allows you to subdivide the graphing window into a grid of m rows and n columns

subplot(m,n,p)

rows

columns

location

Matlab for Engineers

Polar Plots

Logarithmic Plots

Bar Graphs

Pie Charts

Function Plots

Polar Plots

Some functions are easier to specify using polar coordinates than by using rectangular coordinates

For example the equation of a circle is

y=sin(x)

Matlab for Engineers

A logarithmic scale (base 10) is convenient when

a variable ranges over many orders of magnitude, because the wide range of values can be graphed, without compressing the smaller values.

data varies exponentially.

Matlab for Engineers

semilogy – uses a log10 scale on the y axis

semilogx – uses a log10 scale on the x axis

loglog – use a log10 scale on both axes

Matlab for Engineers

semilogx – log scale on the x axis

semilogy – log scale on the y axis

loglog – log scale on both axes

Matlab for Engineers

Matlab for Engineers

Bar Graphs and Pie Charts

Matlab includes a whole family of bar graphs and pie charts

bar(x) – vertical bar graph

barh(x) – horizontal bar graph

pie(x) – pie chart

Histograms

A histogram is a plot showing the distribution of a set of values

Matlab for Engineers

X-Y Graphs with Two Y Axes

Sometimes it is useful to overlay two x-y plots onto the same figure. However, if the order of magnitude of the y values are quite different, it may be difficult to see how the data behave.

Matlab for Engineers

Scaling Depends on the largest value plotted

Its difficult to see how the blue line behaves, because the scale isn’t appropriate

Matlab for Engineers

The plotyy function allows you to use two scales on a single graph

Matlab for Engineers

Function Plots

Function plots allow you to use a function as input to a plot command, instead of a set of ordered pairs of x-y values

fplot('sin(x)',[-2*pi,2*pi])

range of the independent variable – in this case x

Matlab for Engineers

Matlab for Engineers

Three Dimensional Line Plots

These plots require a set of order triples ( x-y-z values) as input

The z-axis is labeled the same way the x and y axes are labeled

Matlab for Engineers

Matlab uses a coordinate system consistent with the right hand rule

Matlab for Engineers

Just for fun

try the comet3 function, which draws the graph in an animation sequence

comet3(x,y,z)

If your animation draws too slowly, add more data points

For 2-D line graphs use the comet function

Matlab for Engineers

mesh - meshplot

Both Mesh and Surf

Can be used to good effect with a single two dimensional matrix

Matlab for Engineers

The x and y coordinates are the matrix index numbers

Matlab for Engineers

Using mesh with 3 variables

If we know the values of x and y that correspond to our z values, we can plot against those values instead of the index numbers

Matlab for Engineers

Matlab for Engineers

surf plots are similar to mesh plots

they create a 3-D colored surface instead of an open mesh

syntax is the same

shading interp

shading flat

faceted flat is the default

You can also adjust the color scheme with the color map function

Matlab for Engineers

Contour Plots

Contour plots use the same input syntax as mesh and surf plots

They create graphs that look like the familiar contour maps used by hikers

Matlab for Engineers

To demonstrate these functions lets use a more interesting example

A more complicated surface can be created by calculating the values of z, instead of just defining them

We’ll need to use the meshgrid function to create 2-D input arrays – which will then be used to create a 2-D result

Matlab for Engineers

Matlab for Engineers

Matlab for Engineers

Pseudo Color Plots

Uses the same syntax

The following example uses the built-in Matlab demonstration function peaks

Matlab for Engineers

Matlab for Engineers

Matlab for Engineers

Editing Plots from the Menu Bar

In addition to controlling the way your plots look by using Matlab commands, you can also edit a plot once you’ve created it using the menu bar

Another demonstration function built into Matlab is

sphere

Matlab for Engineers

Once you’ve created a plot you can adjust it using the menu bar

In this picture the insert menu has been selected

Notice you can use it to add labels, legends, a title and other annotations

Matlab for Engineers

Explore the property editor to see some of the other ways you can adjust your plot interactively

Select

Select Inspector from the Property Editor

Change the Aspect Ratio

Matlab for Engineers

If you adjust a figure interactively, you’ll lose your improvements when you rerun your program

Matlab for Engineers

Matlab for Engineers

Matlab will suggest plotting options and create the plot for you

Matlab for Engineers

Saving your plots

Rerun your M-file to recreate a plot

Save the figure from the file menu using the save as… option

You’ll be presented with several choices of file format such as

jpeg

emg (enhanced metafile) etc

Right-click on the figure and select copy – then paste it into another document

Matlab for Engineers

The x-y plot is the most common used in engineering

Graphs should always include titles and axis labels. Labels should include units.

Matlab includes extensive options for controlling the appearance of your plot

Matlab for Engineers

Multiple plots can be displayed in the same figure window

Most common plot types are supported by Matlab including

polar plots

bar graphs

pie charts

Matlab for Engineers

Figures created in Matlab can be stored using a number of different file formats

100200300400500

100

200

300

400

500

00.511.522.533.544.55

-5

-4.5

-4

-3.5

-3

-2.5

-2

-1.5

-1

-0.5

0

12345

0

2

4

6

8

12

0

2

4

6

8

1

2

3

4

5

1

2

0

5

10

-2

0

2

-2

0

2

-5

0

5

x

Peaks

y

0.2

0.4

0.6

0.8

1

30

210

60

240

90

270

120

300

150

330

180

0

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180

0

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180

0

2

4

6

8

10

30

210

60

240

90

270

120

300

150

330

180

0

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180

0

2

x