Lesson 5

Plotting and Graphing


Creating plots of data sets and functions is very useful for engineers and scientists. You can use plots to present results for papers and presentations or to visually search for approximate solutions to problems.

MATLAB has a rich set of plotting commands. In this chapter, we describe MATLAB’s basic plotting operations. We will consider the following areas

  1. The Plot command

  2. Using the plot editor

  3. Line and Marker styles

  4. Labeling a plot

  5. Multiple plots

  6. Scaling plots

The "plot" command

plot() is the basic plotting command in MATLAB. When a vector is given to the plot() function, MATLAB plots the elements in the vector against the indices of the vector. Suppose we are supposed to graph a sine function for angle 0 to 360 degrees. (Note: the angles ought to be in radians ). The following programming commands in MATLAB written.

When called the command plot(sin(theta)) automatically opens the Plot Editor window and creates the plot. The output will be a graph of the vector of sine of the angles against the indices of the vector as shown below.

Graph of sine function (single vector)

If however, two vectors, X and Y, are passed to the plot command, MATLAB plots the corresponding pairs in the X and Y vectors and draws a single line connecting the points. The following example is a plot of two vectors sin(theta) and theta indeed, the same plot as that in the previous example.

Graph of sine function against the angle

It is possible to plot a matrix against a vector using the plot function, as long as the row vector length is equal to the length of all the rows in the matrix as shown. Since the columns of X and Y are of the same order, but the rows are not, the plot function creates two lines, one for each row. The first line is a plot of row one of Y against X. The second line is a plot of row two of Y against X

Plot of a matrix against a vector

Using the plot editor

To use the plot editor, go to the Menu bar of Plot editor, Choose Insert from the Menu bar of Plot Editor, and a drop-down menu will appear. The figure below shows the Insert drop-down menu of the Plot Editor. From this menu, you can insert and modify many plot elements.

plot editor

From the drop-down list we can for example label the axis and put a legend for out data.

Using Plot Editor

Line and Marker styles

Color and texture can be added the plot lines or change using the command line options. These include the line specifier and other line properties. An addition argument can be added to the plot() function to control the color and texture. This argument is known as the line specifier as discussed in chapter two.

The line specifier can take three type, the line character, the marker symbol, and the color specifiers.

The line specifier could be :

The marker symbol is one of 13, and the marker codes are as follows:

The following are the color codes:

Now we will create a plot of the sine function with a diamond-shaped marker, a dashed line, and the color red. The symbols for the dashed line, diamond marker shape, and red color are enclosed in quotes as an argument to the plot command. The arguments within the quotes can be placed in any order

line specifiers

Other line qualitiescan be controlled by using property-value pairs as additional arguments to plot. Examples of line attributes are LineWidth and MarkerSize.

Let us re-create the previous plot, but use a solid line with and a circular marker with In the following command, the lowercase character o designates a circular marker:

markers and line width

Labelling a plot

Plot labeling includes a title, axis labels, and if necessary, a legend. Labels, titles, legends, and other text can be created with the xlabel, ylabel, legend, title, and text commands.

The xlabel command has several syntactic variants. The first variant takes a string argument and displays it as the X-axis label:xlabel('string')

The second form takes a function as an argument:xlabel(function) The function must return a string. The ylabel is similar to the xlabel. For example: from previous example


The legend command creates a legend for the plot. You can pass the legend command either a list of strings that describe the legend’s contents or a matrix of strings. In the second case, each row of the string matrix becomes a line in the legend.

The syntax for the legend command is legend('str1','str2',...) or legend(string_matrix) . You can optionally supply an additional argument to legend that indicates the position of the legend in the graph: legend('str1','str2',...,position)

position of the legend command

legend positions

For example

use of legend

Multiple plots

You can display multiple, simultaneous overlapping plots by using the hold command. The hold command is an example of a toggle. A toggle has two values: on or off, hold on cause the new graph to be superimposed on the existing graph while hold off refreshes the plot window.

You can display multiple non-overlapping plots by using the subplot command, which divides the Plot window into sub-windows called panes. The syntax is `sublot(m,n,pane_number)` For example, the command >> subplot(2,1,2) results in the Plot window being divided into 2 rows by 1 column of panes. The pane_number argument 2 indicates that the next plot command will place the subplot in pane number 2.

Let us plot the cosine and sign graph.

using hold


By default, the axes in MATLAB plots are linear. To plot a function with a logarithmic scale on the X-axis, use the semilogx command. Similarly, the semilogy command creates a logarithmic (or log) scale on the Y-axis. To create log scales on both axes, use the loglog command. These three commands have the same syntax and arguments as the plot command.

You may want to superimpose a grid over the graph when using semilog and log–log plots. Such a grid visually emphasizes the nonlinear scaling. Use the grid command to toggle a grid over the graph.


Write a script that performs the following tasks:

1. Create a vector X containing the values from to 10 in increments of 0.5.

2. Create a vector Y that contains the square of each value in X.

3. Plot X and Y, using a dashed line and a pentagram marker.

4. Create a title in italics that reads

5. Create appropriate labels for the X- and Y-axes



Be the first to comment!