MATLAB Answers

Two ordinate axes on a single plot

4 views (last 30 days)
Rick
Rick on 16 Oct 2014
Commented: Rick on 17 Oct 2014
Hello,
I'm trying to reduplicate this plot on MATLAB. I see that the scale of the two different y-axes needs to be very different. How do I make it so that the right side of the plot will have a separate axis than the left side, as seen in this plot which shows both concentration (of multiple species) vs. distance down the reactor as well as conversion vs. distance.
I have of course managed to make the conversion plot, just not the concentration plot. I attached the plot I am trying to make on MATLAB.

Accepted Answer

Orion
Orion on 17 Oct 2014
your Ytick may still be there. Did you try to change the size of the figure ?
otherwise, just get the handle of the axes :
hAx = plotyy(z,[CA,CB,CC],z,Conversion);
and reset the Ytick values with a new set of Ytick
set(hAx(1),'YTick',value_for_axe_left)
set(hAx(2),'YTick',value_for_axe_right)
  1 Comment
Rick
Rick on 17 Oct 2014
Thanks, everything is good now!

Sign in to comment.

More Answers (2)

Orion
Orion on 16 Oct 2014
Hello,
you need to use plotyy, which does exactly what you're expecting.
  1 Comment
Rick
Rick on 16 Oct 2014
How do I use it when I have multiple things I want to plot?
Conversion = linspace(0,0.8,1000);
for i = 2:numel(Conversion)
V_PFR(i) = (FA0/(k2*CA0)).*integral(f,Conversion(1),Conversion(i));
A = 0.0205; % ft^2
z(i) = V_PFR(i)/A/100; % ft
CA(i) = CA0*((1-Conversion(i))/(1+epsilon*Conversion(i)));
CB(i) = CA0*Conversion(i)*(1-Conversion(i)/(1+epsilon*Conversion(i)));
CC(i) = CA0*Conversion(i)*(1-Conversion(i)/(1+epsilon*Conversion(i)));
end
plotyy(z,CA,z,CB,z,CC,z,Conversion,'plot')
xlabel('distance down the reactor (ft)')
ylabel('Concentration (lb mol/ft^3)')

Sign in to comment.


Orion
Orion on 16 Oct 2014
Edited: Orion on 16 Oct 2014
something like
plotyy(z,[CA,CB,CC],z,Conversion)
% assuming CA,CB,CC are columns vectors. otherwise, transpose them.
  1 Comment
Rick
Rick on 17 Oct 2014
Now that I have it, I lost my tick marks on the ordinate axes. It only shows the first and last points.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!