image thumbnail


version (2.43 KB) by Christos Saragiotis
A plot utility, to plot graphs one over the other (or one next to the other vertically)


Updated 01 Jul 2011

View License

This is a utility to plot graphs one on top of the other or one next to the other for qualitative inspection.

It plots using MATLAB's plotting functions (such as plot, stem, stairs etc) and handles the plot properties (such as colors, line widths, marker sizes etc).

Essentially it creates subplots and eliminates their inner margins of the subplots.

The plots may be horizontal (one over the other) or vertical (one next to the other.

Below is the help file. The plots in the screenshot were created by running the example in the helpfile.

PLOTSTACK plots the columns in a matrix, one above the other.

[ax,ls] = plotstack(X,...); % X is the 2D array
[ax,ls] = plotstack(X,Y,...); % Y is the 2D array, X is the x-axis
[ax,ls] = plotstack(X,plotfun,...); % X is the 2D array, plotfun is
% plotting function
[ax,ls]ls = plotstack(X,Y,plotfun,...);

plotfun: (function handle) plotting function to use. E.g. @plot, @stem,
@stairs. Default is @plot.
...: plotfun-specific properties and values, such as 'MarkerSize',
'Linewidth' etc.
An additional property is 'Vertical' to plot from
to top to bottom (see examples)

ax: axis handles (for futher manipulation).
ls: lineseries handles (for further manipulation).

x = randn(100,10); % make random data
figure, plotstack(x,'k');
figure, plotstack(1:100,x,'m-*');
figure, plotstack(x,@stem,'MarkerSize',2);
figure, ax = plotstack((1:50)/50,x(1:50,1:5), @stairs, 'r','Vertical', 'Linewidth',2);
for i = 1:length(ax),
set(get(ax(i),'Ylabel'),'String',sprintf('signal %d',i));

Cite As

Christos Saragiotis (2021). Plotstack (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!