File Exchange

## multiplotyyy

version 1.2.0.1 (1.47 KB) by

MULTIPLOTYYY allows the user to plot multiple lines on three sets of y-axes.

Updated

MULTIPLOTYYY plots using three sets of y-axes values. Additionally, multiple lines can be plotted against each y-axis. Therefore, the inputs to the function must be grouped into cell arrays.
Here is an example call to the function:
x1 = (0:0.01:1)';
x2 = (0:0.1:1)';
x3 = (0:0.05:1)';
y1 = x1;
y2 = x2.^2;
y3 = x3.^3;
y4 = sin(x1);
y5 = fliplr(2*x1.^2);
y6 = 7*cos(x1);
y7 = 7*log(x1+1.2);
ylabels{1}='First y-label';
ylabels{2}='Second y-label';
ylabels{3}='Third y-label';
[ax,hlines] = multiplotyyy({x1,y1,x2,y2,x3,y3,x1,y4},{x1,y5},{x1,[y6,y7]},ylabels);legend(cat(1,hlines{:}),'a','b','c','d','e','f','g','location','w')

clks

### clks (view profile)

Thank you! How can I use this function when I want to plot e.g. two multiplotyyy plots in one window? I think subplot is not working with it. Can someone help me please?

Shiva Asapu

### Shiva Asapu (view profile)

This is wonderful. Just what I was looking for.

Ainara Lopez

### Ainara Lopez (view profile)

Great function Laura! Thank you very much. Really useful!

liangsai liang

Xavier Matabosch

### Xavier Matabosch (view profile)

Great function! I needed to plot Power and Thrust curves of a wind-turbine for a college work, and multiplotyyy worked perfectly.

Thank you very much! I'll make sure you appear on the acknowledgements.

Laura Proctor

### Laura Proctor (view profile)

Andreas, all the lines are saved in the output, hlines. You can change the style using these. Or, you can change it in the code. If you let me know what you're looking for, I can help out.

To work with the legend, you can use the following modifications after you call the code that will align the axes with a legend on the left hand side. Please feel free to contact me directly, I'd be happy to help!

>> leg = legend(cat(1,hlines{:}),'a','b','c','d','e','f','g','location','w');
>> leg.Location = 'westoutside';
>> ax(2).Position = ax(1).Position;
>> ax(3).Position = ax(1).Position;
>> offset = 0.7/5.5;
>> ax(3).Position(3) = ax(3).Position(3) + offset;
>> ax(3).XLim = [ ax(1).XLim(1) ax(1).XLim(2)*(1 + 1/(ax(1).Position(3)) * offset)];

Andreas Kaineder

### Andreas Kaineder (view profile)

Great tool!! Is there a way to change the linestyle?

The only problem is, that the 2nd & 3rd axis are messed up when I put the legend outside of the plot. Can anybody help me with this? When I plot multiple lines it's confusing with the legend inside the plot. Thanks!

Agnieszka

### Agnieszka (view profile)

when I run the example it shows me that: Undefined function 'multiplotyyy' for input arguments of type 'cell'
what is it wrong then? thanks!

Giacomo Alessandroni

R

### R (view profile)

Couple of mistakes in the example, but otherwise works as advertised, thanks!