Kahibaro
Discord Login Register

11.1 Introduction to 2D Plotting

Why Plotting Matters Early in MATLAB

Plotting is one of the quickest ways to see what your data or your mathematical ideas look like. In MATLAB, 2D plots let you draw curves, visualize numeric vectors, and inspect relationships between variables with a single function call. In this chapter you will focus on the fundamentals of 2D plotting with plot, so that you can start turning numbers into pictures.

You will see how to prepare data for plotting, how MATLAB interprets your inputs to plot, and how to produce a basic figure that is ready for further customization in later chapters.

The Basic `plot` Command

The core function for simple 2D graphics in MATLAB is plot. The most basic usage is to pass a vector of numbers and let MATLAB use the element indices as the horizontal axis. For example, to plot the values of a sine wave sampled at regular points, you can write:

x = 0:0.1:2*pi;      % input values
y = sin(x);          % function values
plot(y);             % plot y versus its index

In this form, plot(y) treats the horizontal axis as 1, 2, 3, ... up to numel(y), and the vertical axis as the values in y. This is useful when you care mostly about the shape of a sequence but not the exact x locations.

More commonly, you will supply both x and y values:

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);          % plot y versus x

Here, x and y must have the same size. MATLAB pairs up each x(k) with the corresponding y(k) and draws line segments between successive points.

Understanding Axes and Figure Windows

When you call plot, MATLAB automatically creates a figure window if none is open. The figure contains axes that show the horizontal and vertical scales and the plotted data.

If you call plot multiple times without special options, MATLAB draws each new plot in the current axes and replaces the previous content. For example:

x = 0:0.1:2*pi;
plot(x, sin(x));     % first plot
plot(x, cos(x));     % this replaces the sine plot

A single call to plot can show multiple lines, which you will see later in this chapter. More advanced figure management and overlaying of plots in one figure are discussed in later chapters in this section, so here you only focus on the default behavior: one call to plot produces one figure with one set of axes that shows the latest line data.

Domain and Range for Simple Function Plots

In many simple applications you want to visualize a mathematical function such as $y = \sin(x)$ or $y = x^2$. In MATLAB you do this by creating a vector of input values, computing the corresponding output values, and then plotting them.

For instance, to draw $y = x^2$ on the interval $[-2, 2]$:

x = -2:0.1:2;   % domain values from -2 to 2
y = x.^2;       % elementwise square
plot(x, y);

Here, x represents the domain and y represents the range. The horizontal axis in the figure corresponds to the elements of x, and the vertical axis to y. The resolution of the plot depends on how finely you sample the domain. A smaller step size in x produces a smoother curve, at the cost of more points:

x = -2:0.01:2;
y = x.^2;
plot(x, y);

You will learn more about elementwise operations and their relationship to plotting elsewhere, so here you simply use them to produce numeric data suitable for plot.

Plotting Simple Data Vectors

In practice, you will often have experimental or computed data stored in vectors. To visualize such data as a function of sample index, use a single input to plot:

data = [3 5 2 7 4 9 1];
plot(data);

The horizontal axis now runs from 1 to 7, since data has 7 elements. MATLAB joins each point with straight line segments.

If you have a vector of time samples and a corresponding measurement vector, you use both as inputs:

t = 0:0.5:3;         % time points
h = [2 3 3.5 3 2.5 2 1];  % heights measured
plot(t, h);

Here t gives the actual horizontal coordinate values, which might be in seconds, meters, or any other units, while h gives the dependent quantity.

Plotting Multiple Lines with `plot`

With a single call to plot, you can draw several curves on the same axes. This is the basic mechanism for comparison plots, and it works by passing multiple pairs of x and y data or a single x vector with multiple y columns.

One approach is to specify pairs:

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, x, y2);

In this case, MATLAB draws two lines, one for (x, y1) and one for (x, y2). Each line receives a different default color. Another approach is to use a single x vector and a matrix of y values, where each column is one line:

x = 0:0.1:2*pi;
Y = [sin(x).' cos(x).'];   % 2 columns, using transpose to make a column matrix
plot(x, Y);

This again produces two lines in a single axes. Multi-line plots are important in many applications such as comparing several signals or showing multiple series on the same graph. Later chapters will show how to change line styles and add legends. In this chapter, pay attention to how MATLAB accepts multiple data sets within one plot call and displays them together instead of overwriting.

Controlling Plot Range with `axis`

Sometimes the automatic choice of axis limits does not show the part of the data that you care about. You can control the displayed region of the axes with the axis function. Its simplest form takes a four-element vector:

$$
[x_{\min}, x_{\max}, y_{\min}, y_{\max}]
$$

For example:

x = -2*pi:0.1:2*pi;
y = sin(x);
plot(x, y);
axis([-2*pi 2*pi -1.5 1.5]);

This command sets the horizontal axis to run from $-2\pi$ to $2\pi$ and the vertical axis from $-1.5$ to $1.5$. This is especially useful when you want plots of different data sets to use the same scale for easier visual comparison.

The axis function has other options as well, but in this introductory context you only use it to set explicit limits.

The `hold on` Concept (Brief Introduction)

When you call plot more than once, MATLAB replaces the previous content of the axes by default. If you want to add another line to the existing picture without erasing it, you use hold on. For example:

x = 0:0.1:2*pi;
plot(x, sin(x));     % first line
hold on;             % keep current plot
plot(x, cos(x));     % second line added

After you enable hold on, subsequent plotting commands layer new graphics on top of what is already there in the current axes. To return to the default behavior where each plot replaces the current content, you can later use hold off. More systematic ways of handling multiple plots and advanced layout belong to later chapters, so here you only see hold on as a basic tool to combine several simple plot calls in one axes.

Using Simple Plot Markers and Lines (Briefly)

The plot function lets you specify line styles and markers in a compact form, which you will explore in detail in a later chapter. For now, you can add a short format string after the data to change the appearance.

For example, to draw red circles instead of a continuous line:

x = 0:0.5:4;
y = x.^2;
plot(x, y, 'ro');    % red ('r') circles ('o')

Or to use a dashed line:

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y, '--');    % dashed line

These format strings are combinations of color, line style, and marker codes. At this stage you do not need to memorize all codes, but you should know that plot can control basic visual aspects of each data series within the same call.

Title and Axis Labels (Introductory Use)

Even in simple 2D plots, adding a title and axis labels makes your graph easier to understand. MATLAB provides functions for this that work on the current axes.

For example:

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);
title('Sine Function');
xlabel('x (radians)');
ylabel('sin(x)');

Here title sets the text above the plot, xlabel labels the horizontal axis, and ylabel labels the vertical axis. These apply to the current axes created or last used by plot.

You will later learn how to format text more extensively, but for basic 2D graphs it is enough to know that you can add descriptive labels with these simple functions.

Saving a Simple Plot from the Figure Window

After you run a plotting command, the figure window appears and you can inspect the graph. Even without advanced scripting, you can save this figure as an image file using the figure window menus. In many MATLAB installations you can select the File menu in the figure window and then choose an option such as Save or Save As to export the plot as a PNG, JPEG, or other format.

This menu driven export is useful when you are starting with plotting. You can later learn how to save plots programmatically using functions for exporting figures, covered in another chapter.

Summary of Key Ideas

Important points to remember:

  1. Use plot(y) to draw a vector against its index, and plot(x, y) to draw values versus explicit x coordinates.
  2. plot automatically creates a figure and axes and, by default, each new plot call replaces the previous one in the current axes.
  3. You can plot multiple lines in one call by passing several (x, y) pairs or a matrix of y values, or by combining several plot calls with hold on.
  4. Use axis([xmin xmax ymin ymax]) to control the visible range of your data.
  5. Add simple context to plots with title, xlabel, and ylabel to make them understandable at a glance.

Views: 45

Comments

Please login to add a comment.

Don't have an account? Register now!