Difference between revisions of "Matlab Plotting"

From Sutherland_wiki
Jump to: navigation, search
(X-Y Line Plots)
Line 106: Line 106:
 
  \begin{align}
 
  \begin{align}
 
   f_1(x) &= \cos(x) \\
 
   f_1(x) &= \cos(x) \\
   f_2(x) &= \sin(x) \\
+
   f_2(x) &= \sin(x)
  f_3(x) &= \tan(x)
 
 
  \end{align}
 
  \end{align}
 
</math></center>
 
</math></center>
Line 115: Line 114:
 
   f1 = cos(x);
 
   f1 = cos(x);
 
   f2 = sin(x);
 
   f2 = sin(x);
  f3 = tan(x);
+
   plot(x,f1, x,f2);
   plot(x,f1, x,f2, x,f3);
 
 
</source>
 
</source>
 
Here MATLAB automatically selects the colors for the lines.  If we want more control over line styles, we can specify them ourselves:
 
Here MATLAB automatically selects the colors for the lines.  If we want more control over line styles, we can specify them ourselves:
 
<source lang="matlab">
 
<source lang="matlab">
   plot(x,f1,'k-', x, f2, 'r:', x, f3, 'b-.');
+
   plot(x,f1,'k-', x, f2, 'r:');
 
</source>
 
</source>
  
Line 129: Line 127:
 
   f1 = cos(x);
 
   f1 = cos(x);
 
   f2 = sin(x);
 
   f2 = sin(x);
  f3 = tan(x);
 
 
   plot(x,f1,'k-');
 
   plot(x,f1,'k-');
 
   hold on;
 
   hold on;
 
   plot(x,f2,'r:');
 
   plot(x,f2,'r:');
  plot(x,f3,'b-.');
 
 
   hold off;
 
   hold off;
 
</source>
 
</source>
  
 +
==== Adding a Legend ====
 +
 +
When we have multiple lines on a single plot, we should add a legend to describe each line.  The '''legend''' command can be used for this purpose.  Its syntax is
 +
<source lang="matlab">
 +
  legend('entry 1', 'entry2', ... 'entry n');
 +
</source>
 +
Continuing with our previous example, we would have something like
  
==== Adding a Legend ====
+
{| border="1" cellpadding="5" cellspacing="0" align="center" style="text-align:center"
 +
|-
 +
! MATLAB Source
 +
! Resulting Plot
 +
|-
 +
| <source lang="matlab">
 +
  plot(x,f1,'k-', x, f2, 'r:');
 +
  xlabel('x'); ylabel('f(x)');
 +
  legend('cos(x)','sin(x)');
 +
  </source>
 +
| [[image:SinCosPlot1.jpg|right]]
 +
|-
 +
|<source lang="matlab">
 +
  plot(x,f1, x,f2);
 +
  xlabel('x'); ylabel('f(x)');
 +
  legend('cos(x)','sin(x)');
 +
</source>
 +
| [[image:SinCosPlot2.jpg|right]]
 +
|}
  
 
=== Log-Scale Plots ===
 
=== Log-Scale Plots ===
Line 152: Line 173:
  
 
== Contour & Surface Plots ==
 
== Contour & Surface Plots ==
 
  
  
 
== Histograms & Bar Graphs ==
 
== Histograms & Bar Graphs ==

Revision as of 15:55, 23 August 2008


Warn.jpg
This page is a stub and needs to be expanded.
If you can provide information or finish this page you're welcome to do so and then remove this message afterwards.

X-Y Line Plots

Perhaps the most common plots we create as engineers are x-y line plots that show the functional dependence of one variable (y) on another (x). In MATLAB, an x-y plot is very simple to make. For example, if we want to plot y=\cos(x) on the interval (-π,π) we can do this simply as

   x = linspace(-pi,pi);  % create the x vector
   plot(x,cos(x));        % plot cos(x) versus x.


Basics

The basic syntax for plotting a function is the following

   plot( x, y );       % simplest way to plot a single function
   plot( x, y, 'abc'); % controls the line style

Here a represents the color to use when plotting this function, b represents the type of symbol to use (dots, squares, etc), and c represents the style of the line to use (solid, dashed, etc). The following three tables describe what to insert for a, b and c to control plot styles.

Line & Symbol Colors
Symbol b g r c m y k w
Color Blue Green Red Cyan Magenta Yellow Black white Default color


Line Markers
Symbol . o x + * s d ^ v < > p h
Description Point Circle x plus star Square Diamond Triangle (up) Triangle (down) Triangle (left) Triangle (right) Pentagon Hexagon No Symbol


Line Styles
Symbol - : .- --
Description Solid Dotted Dot-Dash Dashed No line

The following are some examples of creating plots

   x = linspace(-pi,pi);    % create 100 points between -pi and pi
   y = sin(x) .* cos(x);    % evaluate a function at each point
   plot(x,y,'rs:');         % plot a red dotted line with squares
   figure; plot(x,y,'g--'); % plot a green dashed line
   figure; plot(x,y,'ko');  % plot black circles (no line)

Note that the figure command creates a new plotting window. If you leave it out, the next plot will be overwritten.

Title and Axis Labels

Any time you create a plot, you must also label it! Axis labels (with units where appropriate) are critical. To create a title and label axes a plot in MATLAB, we use the following:

  xlabel('label text');
  ylabel('label text');
  title('title text');
Special Characters
Text \Lambda \Xi \Pi \Sigma \Theta \Psi \Omega \alpha \beta \gamma \delta \epsilon \eta \theta
Symbol Λ Ξ Π Σ Θ Ψ Ω α β γ &delta ε η θ

Example:

   x=linspace(-pi,pi);
   plot(x,cos(x),'r--');
   xlabel('\theta');
   ylabel('cos(\theta)');
   title('A plot of the function cos(\theta) as a function of \theta');


Multiple Lines on a Graph

We often want to place multiple lines on a single plot. For example, if we want to plot the functions


 \begin{align}
   f_1(x) &= \cos(x) \\
   f_2(x) &= \sin(x)
 \end{align}

on the interval (-π,π) we could do the following

   x = linspace(-pi,pi);
   f1 = cos(x);
   f2 = sin(x);
   plot(x,f1, x,f2);

Here MATLAB automatically selects the colors for the lines. If we want more control over line styles, we can specify them ourselves:

   plot(x,f1,'k-', x, f2, 'r:');

The hold on command

   x = linspace(-pi,pi);
   f1 = cos(x);
   f2 = sin(x);
   plot(x,f1,'k-');
   hold on;
   plot(x,f2,'r:');
   hold off;

Adding a Legend

When we have multiple lines on a single plot, we should add a legend to describe each line. The legend command can be used for this purpose. Its syntax is

   legend('entry 1', 'entry2', ... 'entry n');

Continuing with our previous example, we would have something like

MATLAB Source Resulting Plot
   plot(x,f1,'k-', x, f2, 'r:');
   xlabel('x'); ylabel('f(x)');
   legend('cos(x)','sin(x)');
   plot(x,f1, x,f2);
   xlabel('x'); ylabel('f(x)');
   legend('cos(x)','sin(x)');

Log-Scale Plots

  • semilogx
  • semilogy
  • loglog

Subplots

Fine-Tuning

  • Adding a grid
  • Changing axis ranges

Contour & Surface Plots

Histograms & Bar Graphs