version (7.48 KB) by Jakub Nedbal
Plots graphs with arbitrary number of Y-axes. Generalization of plotyy.


Updated 17 Apr 2015

View License

plotyn Extends plot to create a separate Y-axis for each dataset. It is a generalization of Matlab's inbuilt function PLOTYY.
Creation mode, needs to be run first:
Syntax: [hax, hlines, data] = plot4y(data)
Syntax: [hax, hlines, data] = plot4y(data, pos)
Syntax: [hax, hlines, data] = plot4y(data, pos, parent)

Update mode, to be performed on existing axes to update their plots, colors or Y-axis labels:
Syntax: plot4y(hax, hlines, data)

data is a struct with at least two fields (X, Y). The dimensionality of data determines the number of graphs:
* data(1).X X coordinates of first dataset (Same for all)
* data(i).Y Y coordinates of i-th dataset
* data(i).Color Color of i-th dataset (Optional)
* data(i).YLabel Y-axis label of i-th dataset (Optional)

* pos Array of 5 numbers positioning the axes on the current figure (handle) in 'Pixel' units
* parent Handle onto which the axes are drawn

* hax Double array containing the axes' handles
* hlines Double array containing the lines' handles
* data Struct with the input data

x = 0 : 10; data(1).X = x;
data(1).Y = x .^ 1; data(1).YLabel = 'First Y-axis';
data(2).Y = x .^ 2; data(2).YLabel = 'Second Y-axis';
data(3).Y = x .^ 3; data(3).YLabel = 'Third Y-axis';
data(4).Y = x .^ 4; data(4).YLabel = 'Fourth Y-axis';
[hax, hlines, data] = plotyn(data);
legend(hlines, 'y = x', 'y = x^2', 'y = x^3', 'y = x^4', 2, 'Location', 'NorthWest');

Now, the data in the graph can be changed for example in datasets 2 and 3:

data(2).Y = x .^ (1 / 2);
data(3).Y = x .^ (1 / 3);
plotyn(hax, hlines, data)

See also plot, plotyy

Based on:
plotyyy.m by Denis Gilbert, Ph.D.
ploty4.m by Peter (PB) Bodin

Created by modification of the aforementioned functions by:

Jakub Nedbal
April 2015
Distributed under BSD license.

Cite As

Jakub Nedbal (2022). plotyn(varargin) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2014b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Inspired by: plotyyy, ploty4.m

Community Treasure Hunt

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

Start Hunting!