MATLAB Programming/Plot
The plot command plots a 2D line plot of the data in Y versus the corresponding values in X.
Plotting linear lines
editFor the first MATLAB plot, we are going to plot the classical linear equation y = mx +c
In MATLAB, to do plotting we need to follow the specific workflow
(a) Specify the range of values of x to be used (b) Specify the equation of the y with x variables (c) plot the graphs
For the examples , we need to plot of an equation for x range from 0 to 30
In MATLAB, we type in the following:
x = 0:30; %declare x = 0 to 30
y=(5*x) +8 ; % declare equation
plot(x,y) %plot the line chart
We can get the simple line chart as shown on below :
As you see on the left, we can get the of chart plot for linear lines .
Congrats, you have plotted the first chart in MATLAB .
This is the basic idea of how to plot charts in MATLAB .
In next section, we are using the same charts to spruce up the charts to make it more custom made/unique
Enhance the chart plots
editBelow are some of the ways to enhance the chart plots (it is to make it more understandable/presentable to the readers)
Note that all of the chart plot enhancers are needed to be defined after/below the plot commands with some properties need to be defined at the plot functions.
These are few properties that can be used to enhance the plot charts namely
(a) Axis Label
(b) Grid
(c) Legend
(d) Marker
(d) Title
Axes labels
editWe can label the axes by using xlabel and ylabel with examples as below.
For the customization, we use as followed conventions
xlabel or ylabel(text to display, Properties Name 1,Value Properties Name 1, ..., Properties Name n,Value Properties Name n)
As shown below, we can customized the axis label .with multiple properties.
xlabel('Population of dogs','Color','b','FontWeight','bold','FontAngle','italic')
% x label to display "Population of dogs" with blue colour fonts, bold and italic
ylabel({'Weeks','for year 2022'},'FontSize',15,'FontName','Times New Roman')
% y label to display 2 lines of "Weeks for year of 2022" with font size 15 and using font 'Times New Roman'
Grid
editAs shown on original chart shown above, it is hard to see which whether the certain line plots are references to the axes on the right.
We can use the grid to trace the certain values of x is correlating to which y values.
We can use grid functions and uses the following MATLAB commands
grid on
%turn on grid
grid minor
% turn on the minor gridlines / subset of the major gridlines
There is another properties that is grid minor which will plot out the smaller grid scales, that is grid minor
In order to use grid minor, you need to turn on grid by typing grid on first.
Legend
editWe can put legends on the chart plot by using following command: legend
For example below, we need to label the plot line as followed
legend('y=(5*x) +8','Location','northeast')
We can see the legends shown in northeast location which is the default locations for the graph
We can define the locations of the legends within the chart area or even outside of the chart by adding keyword outside to the locations
Marker
editYou can add a marker in the plot chart inside the plot command .
plot(x,y,marker_commands)
For the example , let's say we wanted have diamond shaped marker, hence we type in following command
plot(x,y,'-d') %the line - indicate the line to connect the diamond shapes
We would have a chart with diamond-shaped marker as shown.
The following marker_commands that can be used in plotting such as follows :
marker_commands | Marker shapes |
---|---|
'o' | Circle sign |
'+' | Plus sign |
'*' | Asterisk |
'.' | Point |
'd' | Diamond |
'h' | Six-pointed star (hexagram) |
's' | Square |
'p' | Five-pointed star (pentagram) |
'x' | Cross |
'^' | Upward-pointing triangle |
'v' | Downward-pointing triangle |
'<' | Left-pointing triangle |
'>' | Right-pointing triangle |
Title
editWe can add the title to the plot chart by adding title command
Same as axis label above, the convention for title command follows the same conventions
title(text to display, Properties Name 1,Value Properties Name 1, ..., Properties Name n,Value Properties Name n)
As shown, we can customize the title as followed
title({'Populations of dogs in 2022 ','by weeks'}, 'Color','g','FontSize',14,'FontName','Lucida Console')
%display the title in two lines with green text , font size of 14 and with font Lucida COnsole
Other examples
editIn this example, we are going to plot a simple circle.
angles = linspace(0, 2*pi);
radius = 20; % radius of circle is 20
CenterX = 50; %coordinate of circle center point at x axis is 50
CenterY = 50; %coordinate of circle center point at y axis is 50
x = radius * cos(angles) + CenterX;
y = radius * sin(angles) + CenterY;
plot(x, y, 'b-', 'LineWidth', 2);
title("Circle")
hold on;
plot(CenterX, CenterY, 'k+', 'LineWidth', 3, 'MarkerSize', 14);
grid on;
axis equal;
In this example, the following code will create a graph comparing the speedup of two algorithms on increasing number of processors.
The graph created is shown below.
>> x = [1 2 4 8];
>> y = [1 2 1.95 3.79];
>> z = [1 1.73 2.02 3.84];
>> h = plot(x,y,'--');
>> hold on; % Plot next graph on same figure
>> plot(x,z);
>> hold off;
>> xlabel('Number of processors');
>> ylabel('Speedup');
>> saveas(h,'graph.eps',eps);
External Links
editMATLAB category on ControlTheoryPro.com