- Familiarize yourself with the various plot entities.
- Add a title and axis labels to your plot.
- Control axis limits and change axis ticks on your plot.
- Add a plot legend and grid.
- Format line and markers on a plot.
- Save your plot to a file.

Most of the time, MATLAB plots need to be formatted for professional presentation and clear communication. We covered the basics of plotting in MATLAB in the previous lesson **(LINK TO LESSON)**.
In this lesson, we will review how to format a default plot into something that is more useful and presentable.

Figure 1 shows MATLAB’s naming convention for plotting. Most of the nomenclature is common sense and similar to other software, but it is important to know in order to understand how to change the different properties.

In this lesson, we will cover the two most commonly used groups of properties that define how plotted graphics look in MATLAB. Those are as follows:

- Line Properties define chart line appearance and behavior. For example, the line style and thickness.
- Axis Properties define axes appearance and behavior. For example, axis limits, title, and legend.

The properties are not mandatory as you could see from the last lesson. In other words, you could make a plot without MATLAB requiring you to see a title, line width, axis labels, etc.

One of the most common additions to a plot is adding a plot title (**title()**)
and axis labels (**xlabel()**, **ylabel()**).
The plot title should summarize what the data presented on the plot is, while the axis labels explain what variable changes across the range of the axis. Example 1 shows how to implement a plot title and axis labels. Note that
**xlabel()** always corresponds to the horizontal (x) axis, while the
**ylabel()** always corresponds to the vertical (y) axis.

Editor

`x = [0 1 2 3 4 5]; %Defining the domain of the data to plot y = x.^2; %Calculating the value of the function (x^2) for each data point in x figure %Creating a blank figure plot(x, y) %Plotting the function across the specified domain title('Formatting Plots') %Adding plot title xlabel('Independent Variable, x') %Adding label for the horizontal x-axis ylabel('Dependent Variable, y') %Adding label for the vertical y-axis %Figure 2 shows the output for this code.`

[Try this code yourself with Octave Online!Click Here]

MATLAB makes it easy to adjust the limits of your axes to fit your data. The **xlim()**
function adjusts the displayed domain of the horizontal axis, while the **ylim()**
function adjusts the displayed range of the vertical axis.

For some data, such as the sinusoidal wave shown in Example 3, it can be useful to change the tick increments.
**xticks()** and **yticks()**
will redefine the tick increment. That is, how far apart the ticks are on the axis. The corresponding tick labels can be changed with the
**xticklabels()** and **yticklabels()**
functions. These will allow you to change the tick label to any custom text compatible with MATLAB.

Editor

`time = [0 1 2 3 4 5]; %Define the domain/range of the data to plot voltage = 0.3*sin(time); %Calculating the square for the data range figure %Creating a blank figure plot(time, voltage) %Plotting the function across the specified domain xlim([0 2*pi]); %Setting the axis limits xticks([0, pi/2, pi, 3*pi/2, 2*pi]); %Setting the x tick values (position of ticks) xticklabels({'0','\pi/2','\pi', '3\pi/2', '2\pi'}); %Setting custom x tick labels (displayed below % each x tick) %Note: the value \pi will result in the greek symbol pi %Figure 3 shows the output for this code.`

[Try this code yourself with Octave Online!Click Here]

You can see the greek letter “pi” in Example 1 and the resulting Figure 3. Review the documentation for a full list of Greek Letters and Special Characters in Graph Text.

It is important to provide the reader of your plot with clear representation of the data you are trying to communicate. When presenting multiple data sets/lines/markers on the same plot, things can get a little confusing as to what dataset is presented where. That is where a plot legend can come into use. The legend() function describes the various plotted data sets by setting a plot legend. You can use properties in the legend to move it to the best location on the plot (not covering data) as seen in Example 3 and Figure 4 below.

** Important Note:** Legend entries must be provided in the order that they were plotted in the code.

Interpreting a plot with data that is scattered all over the plot can be made a little easier by placing a **grid**
onto the plot. The grid command imposes a faint grid over the plot that can make interpreting the plot easier. See the documentation on
Axis Properties for a complete list.

Editor

`x = linspace(0, 2*pi, 80); %Define the domain of the data to plot ySin = sin(x); %Calculating the sine for the domain yCos = cos(x); %Calculating the cosine for the domain figure %Creating a blank figure plot(x, ySin, '-') %Plotting first function with a solid line hold on %Telling MATLAB to place new plots on the same figure. plot(x, yCos, '--') %Plotting second function with a dashed line legend('Function: sin(x)','Function: cos(x)','location','North') %Enabling the plot legend grid on %Show a grid on the plot %Note: MATLAB will automatically pick unique colors if not specifically defined. %Figure 4 shows the output for this code.`

[Try this code yourself with Octave Online!Click Here]

Two of the most common ways to display data on a plot are by representing the data as a continuous line or discrete markers. A line can be changed in color, thickness, or continuity (dotted, dashed, etc.), while markers can be changed in outline color, fill color, size, and shape.

Changing the properties of the plotted data typically follows the trend shown in Figure 5. Other than the first three items (dependent variable values, independent variable values, and LineSpec), these properties do not have to come in some specific order and can be added or removed anytime.

Figure 5 shows identifies common marker properties; however, the same concept is applied for a line and its line properties. The most commonly changed line property is **'LineWidth'**,
while the most commonly changed marker properties are **'MarkerSize'**, **'MarkerEdgeColor'**, and **'MarkerFaceColor'**.
See the documentation on Line Properties for a complete list.

Example 4 shows three different datasets presented with continuous lines and discrete markers. The example applies some of the more common property changes.

Editor

`x = linspace(0, 2*pi, 10); %Define the domain of the data to plot yFunction1 = sin(x); %Calculating the sine function for the domain yFunction2 = cos(x); %Calculating the cosine function for the domain yFunction3 = 0.1*x; %Calculating the linear function for the domain figure %Creating a blank figure %Plotting a black colored (k) dashed style (--) line with a line thickness of 1.5 plot(x, yFunction2, '--k', 'LineWidth', 1.5) hold on %Telling MATLAB to place new plots on the same figure. %Plotting the data with round (o) blue (b) markers with magenta (m) colored fill plot(x, yFunction3, 'ob', 'MarkerSize', 7, 'MarkerFaceColor', 'm') %Plotting the data with a line-marker hybrid plot(x, yFunction1, '-r', 'Marker', 's', 'MarkerFaceColor', 'k') grid on %Show a grid on the plot legend('cos(x)','0.1*x','sin(x)','location','SouthWest') %Note the order of the entries!! %Figure 6 shows the output for this code.`

[Try this code yourself with Octave Online!Click Here]

Once your figure/plot is nicely formatted, you can save it by simply selecting **File > Save As…** as shown in Figure 7. This will allow you to save your figure as a .jpg, .png, .pdf, and more! In case you would like to have the ability to edit the figure, you can also save the figure as a MATLAB figure file, .fig.

In the next lesson, we will cover more advanced (and cooler!) plots and plotting methods.