# How to plott multiple graphs with two Y-axes?

5 views (last 30 days)
R7 DR on 13 Aug 2015
Answered: alok dhaundiyal on 7 May 2020
Hi,
Please suggest me how to write the code to plott multiple graphs with two Y-axes.
I have data sets like this...
X-axis data X1=[.....]; X2=[.....]; X3=[....];
First Y axis data A1=[.....]; A2=[.....]; A3=[.....];
second Y axis data B1=[.....]; B2=[.....]; B3=[.....];
This data produce totally six graphs, theree with Y axis one and three with Y axis two, please check the following image.
I am also attaching the excel file, please have a look. Thanks

Sebastian Castro on 13 Aug 2015
Edited: Sebastian Castro on 13 Aug 2015
There is a "plotyy" function which lets you have two separate y-axes on the left and right sides:
Since you have 6 plots (3 on each axis, you should be able to concatenate them into columns. For example:
x = (1:10)';
y1 = rand(size(x));
y2 = rand(size(x));
y3 = rand(size(x));
y4 = 100*randn(size(x));
y5 = 100*randn(size(x));
y6 = 100*randn(size(x));
plotyy(x,[y1 y2 y3],x,[y4 y5 y6]);
- Sebastian

R7 DR on 13 Aug 2015
Hi
I tried with your suggestion, but it is shwoing the error like ''Error using horzcat Dimensions of matrices being concatenated are not consistent.''

Sebastian Castro on 13 Aug 2015
Does your data have different x-coordinates too? The commands I shared with you assume that all of them share the same x data, and therefore also have the same number of elements in the y-axis.
You could use functions like "interp1" to interpolate the data such that they all use the same x vector and can be concatenated and plotted with plotyy. Otherwise, it may be a more involved solution...
- Sebastian
R7 DR on 13 Aug 2015
Please check attached excel, so you can get an idea data.

alok dhaundiyal on 7 May 2020
plotyy(x,[y1, y2, y3],x,[y4, y5, y6]); Try this