A line drawn with Matlab is feasible by incorporating a 2-D plot function plot() that creates two dimensional graph for the dependent variable with respect to the depending variable. Matlab supports plotting multiple lines on single 2D plane. The lines drawn from plot function can be continuous or discrete by nature. The lines for data Y1, Y2,…,Yn with respect to their corresponding set of data X1, X2,.., Xn. Matlab can generate multiple 2D line plots using the plot function within a loop. The customization of the plots is also feasible by altering different attributes of plot function.
The general syntax to plot multiple lines within a single plan is:
Whereas depending on the attributes used in order to customize the display of the lines, the syntax is defined as:
This syntax sets the line style, marker type, and color for each line. LineSpeci get applied to the data pair Xi,Yi.
This syntax is used to apply customization to the display of the lines using name value pair arguments.
Examples of Matlab Plot Multiple Lines
Given below are the examples mentioned:
Let’s create 2 line plots for 2 functions y1=sin(x1) and y2=sin(2*x2) where x1 ranges from 0 to 3*pi x2 ranges from pi/2 to 3*pi.
x1=0:pi/100:3*pi; x2=pi/2:pi/100:3*pi; y1=sin(x1); y2=sin(2*x2); figure plot(x1,y1,x2,y2)
The resultant plot consists of 2 sinusoidal line curves ‘y1’ and ‘y2’ having 2 different set of values ‘x1’ and ‘x2’, but share a common x-y plane.
The customization of the lines drawn from single plot functions can be achieved by altering any of the attribute or any combination of the attributes described below:
a. xlabel: Add labels to x-axis.
b. Ylabel: Add labels to y-axis.
c. Title: Update title for the graph.
d. Grid on: Makes the grid lines visible for the graph.
e. Axis equal: The plots can be created with a common scale factor and spaces for both the axis.
f. Axis square: Set of square plots can be generated.
The example defined below demonstrates the process of customization of the presentation of the graph by modifying the attributes given above.
x=0:pi/100:2*pi; y1=sin(x); y2=cos(2*x); %Adding x-label, y-label and title to the resultant plot plot(x, y1,x,y2), xlabel('x-axis'), ylabel('y-axis'), title('Graph customisation'),
g. Axis scaling
The limit values for the plots can be imposed on the axes using the command ‘axis’.
Syntax to incorporates axes limit:
axis ( [xminxmaxyminymax] )
x = [0 : 0.1: 20]; y1 = exp(-x).*cos(2*x); y2= exp(-x).*sin(x);
%x-axis maximum value 15
%x-axis minimum value 0
%y-axis minimum value -1
%x-axis maximum value 1
plot(x, y1,x,y2), axis([0 15 -1 1])
%The minimum value of y-axis gets updated to -0.1 and maximum value for x-axis gets updated to 12.
plot(x, y1,x,y2), axis([0 12 -0.1 1])
h. Arranging multiple line plots in different subplot: Matlab supports to present the line plots generated in single execution, with distinct set of axes.
The below example present 2 line plots generated from one singe execution of the program with two different set of axes.
x1=[21 23 34 50]; y1=[29 41 23 21]; x2=[11 21 32 51 ]; y2= [ 21 31 52 61]; %Placing the first line plot in the first cell of the frame subplot(1,2,1) plot(x1,y1) hold on %Placing the second line plot in the second cell of the frame subplot(1,2,2) plot(x2,y2) hold off
i. Including legend to distinguish the line plots: Application of the attribute ‘legend’ adds information to the plot to guide the user in identifying the lines with respect to their plotting functions.
The code is written to display the data mapping each line to its corresponding plotting function.
x = [0 :pi/100:2*pi]; y1 = sin(2*x); y2 = cos(2*x+pi); plot(x, y1, x, y2, '.-'), legend('Sin(2x)', 'Cos(2x+pi)')
Generating multiple lines using loop.
Matlab enables user to plot more than two number of lines in single plane. This can also be achieved by calling the plot function in a loop where the plotting function can be defined as function of the looping variable.
The below code snippet generates 6 lines for the function defined by ‘y’ which is function of the looping variable ‘x’.
t = [25 50 75 100 125 150] for i=1:length(t); x=[20 23 45 56 30 12]; y= x*i+5; figure(1) hold on plot(x,y,'LineWidth',2) end
Displaying markers for specific data points for the lines.
Markers helps to point out distinct data points on the plotted line to figure out the exact values calculated from the function. In case of graph containing lines more than 3 and having overlapped presentation, it helps to determine which data point belongs to which plot.
The below example generate 2 line plots and one plot is highlighted with marker symbol ‘-o’.
x = linspace(0,10); y1 = 2*x+5; y2=4*x+6; plot(x,y1,x,y2,'-o','MarkerIndices',1:1:50)
Customizing the presentation of the lines after creation of the plot.
Matlab extends its feature in 2D line plot to customize the plot presentation through the execution even after the plot is generated. The generated plot gets assigned to a chart line object and its display gets customized by altering the attributes from the storing chart line object.
The below code is written to generate two linear curves and edit the display of the graphs by altering the attributes of the chart line object.
Phase 1: Creation of the plots.
x = linspace(-2*pi,2*pi); y1 = 2*x+5; y2=4*x+6; p = plot(x,y1,x,y2);
Phase 2: Editing the display of the plot using attributes from the chart line object ‘p’.
p(1).LineWidth = 2; p(2).Marker = '*';
Note: Input values like ‘NaN’ and ‘Inf’ breaks the line plots. Colors and line styles are applied based on the ColorOrder and LineStyleOrder properties of the axes for any line plot.