Kahibaro
Discord Login Register

Plotting with Different Line and Marker Styles

Understanding Line and Marker Styles

MATLAB lets you control how data looks in a plot through line styles, marker types, and colors. These visual choices help distinguish multiple data series, highlight particular points, and make your plots easier to read.

When you call plot, you can specify style information using a style string, or by passing name-value pairs. A style string is a compact text that combines color, line style, and marker symbol in a single argument. Name-value pairs are more verbose but clearer when you need fine control.

The Style String: Color, Line, and Marker in One

The simplest way to set a style is to add a style string after your data arguments. For example:

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y, 'r--o');

Here, 'r--o' means red color, dashed line, and circular markers at the data points.

A style string can contain:
Color specifier, such as 'r' for red or 'b' for blue.
Line style, such as '--' for dashed.
Marker symbol, such as 'o' for circles.

The order inside the string does not matter as long as MATLAB can recognize each piece. For instance, '--ro', 'o-r', and 'r--o' all produce the same style.

If you use only a color, for example 'r', MATLAB draws a solid red line. If you specify only a marker, for example 'o', MATLAB plots only markers without connecting lines.

Common Line Styles and How to Use Them

Line styles control how points are connected. In a style string or as a property, you specify line styles like:
Solid line: '-'
Dashed line: '--'
Dotted line: ':'
Dash-dot line: '-.'

For example:

plot(x, y, 'k:');       % black dotted line
plot(x, y, 'g-.');      % green dash-dot line

If you want markers and lines together, combine them. For example 'b:o' gives a blue dotted line with circle markers.

You can also control the line using properties:

plot(x, y, 'Color', [0 0.5 0], 'LineStyle', '--', 'LineWidth', 2);

Here, Color uses an RGB triplet, LineStyle sets the dashes, and LineWidth sets the thickness of the line in points.

To draw only markers with no line, either omit the line style from the style string or set LineStyle to 'none':

plot(x, y, 'ro');                   % markers only, default LineStyle 'none'
plot(x, y, 'r', 'LineStyle', 'none');  % equivalent, explicit

Marker Types and Their Meaning

Markers show the individual data points. MATLAB supports several marker shapes, such as:
Circle: 'o'
Plus sign: '+'
Asterisk: '*'
Point: '.'
Cross: 'x'
Square: 's'
Diamond: 'd'
Upward triangle: '^'
Downward triangle: 'v'
Right triangle: '>'
Left triangle: '<'
Pentagram: 'p'
Hexagram: 'h'

You insert a marker into the style string to get it on the line:

plot(x, y, 'm*s');     % magenta line with star markers (solid by default)

or use name-value pairs:

plot(x, y, 'Marker', '^', 'MarkerSize', 8);

If you plot multiple series in the same axes, using different marker types is an effective way to distinguish them when printed in black and white or when color is not reliable.

Using Colors: Short Names and RGB Values

For color you can use short names, long names, or numeric RGB values. Common short names are:

'b'  % blue
'g'  % green
'r'  % red
'c'  % cyan
'm'  % magenta
'y'  % yellow
'k'  % black
'w'  % white

For example:

plot(x, y, 'g-');   % green solid line

Instead of short names, you can use RGB triplets with the Color property. An RGB triplet is a 1-by-3 vector where each component is between 0 and 1:

plot(x, y, 'Color', [0.2 0.6 0.8]);  % custom light blue

This allows any color, not just the basic short names.

Markers can also have independent face and edge colors if the marker supports it:

plot(x, y, 'o', ...
    'MarkerFaceColor', 'r', ...
    'MarkerEdgeColor', 'k');

This produces red filled circles with black borders at each data point.

Changing Line and Marker Properties After Plotting

The plot function returns a graphics object handle if you ask for an output. You can use that handle to modify line and marker styles after the plot is created:

p = plot(x, y);            % default style
p.LineStyle = '--';
p.LineWidth = 2;
p.Color = [0.1 0.4 0.8];
p.Marker = 's';
p.MarkerSize = 8;
p.MarkerFaceColor = 'y';

This way you can experiment in the Command Window without retyping the entire plot call.

You can use dot notation as above, or the set function:

set(p, 'LineStyle', ':', 'Marker', '^');

Combining Multiple Styles in One Figure

When you plot several data sets on the same axes, style choices help separate them visually. One approach is to specify different style strings directly:

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
y3 = sin(x) + cos(x);
plot(x, y1, 'r-o');    % red line with circle markers
hold on
plot(x, y2, 'b--s');   % blue dashed line with square markers
plot(x, y3, 'k:*');    % black dotted line with star markers
hold off

Here, color, line style, and marker differ for each series, which makes it easier to read a legend or visually separate the lines.

If you do not specify styles, MATLAB cycles through a default list of colors and then repeats. You can still manually adjust styles afterward using handles if the automatic choices are not clear enough.

Adjusting Line Width and Marker Size

Line width and marker size strongly influence readability. Use them to emphasize or de-emphasize data sets. Increase line width using the LineWidth property:

plot(x, y1, 'r-', 'LineWidth', 2);

The default line width is 0.5 points. Thick lines stand out in presentations or printed documents.

Marker size is controlled with the MarkerSize property and is measured in points as well:

plot(x, y1, 'bo', 'MarkerSize', 10);

Large markers are useful for sparse data or when exporting plots to formats where small details may be lost.

You can combine both:

plot(x, y1, 'g^', 'LineWidth', 1.5, 'MarkerSize', 8);

Creating Marker Only or Line Only Plots

Sometimes you want only the markers or only the lines. To get only markers, make sure there is no line style specified or set it to 'none':

plot(x, y, 'ro');                   % markers only
plot(x, y, 'Marker', 'x', 'LineStyle', 'none');  % equivalent

For line only with no markers, simply omit a marker symbol in the style string, or explicitly set Marker to 'none':

plot(x, y, 'b--');                  % dashed line, no markers
plot(x, y, 'Color', 'b', 'Marker', 'none');  % explicit

Marker only plots are helpful when points are well separated, or when you want to show individual samples without connecting them.

Mixing Style Specifications in One Call

MATLAB allows you to set styles in several ways in the same plot call. You can specify a style string and then override properties using name-value pairs:

plot(x, y, 'r:o', 'LineWidth', 2, 'MarkerSize', 9);

In this example, the style string sets red color, dotted line, and circle markers. The name-value pairs change the default line width and marker size.

You can also mix default styling with selective overrides. If you omit a style string, MATLAB uses the next default color, and you can add markers later:

p = plot(x, y);          % default color and solid line
p.Marker = 's';
p.MarkerFaceColor = 'c';

Using Different Styles for Multiple Data Columns

When you pass matrices to plot, each column is plotted as a separate series. You can assign styles by listing several style strings:

x = 0:0.1:2*pi;
Y = [sin(x).' cos(x).' (sin(x)+cos(x)).'];
plot(x, Y, 'r-', 'g--', 'b:o');

Here, each column of Y gets its own style in order: a red solid line, a green dashed line, and a blue dotted line with circle markers. This approach is convenient when plotting several related series at once.

If you provide fewer style strings than number of columns, MATLAB uses the style strings you give and then cycles through default styles for the remaining series.

Important things to remember:

  1. Combine color, line style, and marker in a single style string like 'r--o', or use name-value pairs such as 'Color', 'LineStyle', and 'Marker'.
  2. Use line styles ('-', '--', ':', '-.') to control how points are connected, and marker symbols ('o', '*', 's', '^', etc.) to highlight individual data points.
  3. Adjust LineWidth and MarkerSize to improve readability, especially for presentations or printed figures, and use different styles for different series in the same axes so they can be clearly distinguished.

Views: 5

Comments

Please login to add a comment.

Don't have an account? Register now!