This example shows how to create a chart with y-axes on the left and right sides using the
yyaxis function. It also shows how to label each axis, combine multiple plots, and clear the plots associated with one of the sides.
Create the data. Use
yyaxis to create axes with y-axes on the left and right sides. The
yyaxis left command activates the left side so that subsequent graphics functions, such as
plot, target the left side. Plot the data against the left y-axis.
x = linspace(0,25); y1 = sin(x/2); yyaxis left plot(x,y1);
yyaxis right to activate the right side. Then, plot a set of data against the right y-axis.
z1 = x.^2/2; yyaxis right plot(x,z1);
Add a title and axis labels. Since the right side is active, the
ylabel function labels the right y-axis. Use
yyaxis left to activate the left side. Then label the left y-axis.
title('Plots with Different y-Scales') xlabel('Values from 0 to 25') ylabel('Right Side') yyaxis left ylabel('Left Side')
hold on command to add additional plots. The
hold command affects both the left and right sides. The plotted lines use the same color as the corresponding y-axis and cycle through the line style order.
hold on y2 = sin(x/3); y3 = sin(x/4); yyaxis left plot(x,y2); plot(x,y3);
You can combine multiple types of charts in the axes. For example, add an errorbar to the right side.
yyaxis right load count.dat; m = mean(count,2); e = std(count,1,2); errorbar(m,e) hold off
Clear the data from the right side of the axes by first making it active, and then using the
yyaxis right cla
Clear the entire axes and remove the right y-axis using
cla reset. Now when you create a plot, it only has one y-axis. For example, plot three lines against the single y-axis.
cla reset xx = linspace(0,25); yy1 = sin(x/4); yy2 = sin(x/5); yy3 = sin(x/6); plot(xx,yy1,xx,yy2,xx,yy3)
Add a second y-axis to an existing chart using
yyaxis. The existing plots and the left y-axis do not change colors. The right y-axis uses the next color in the axes color order. New plots added to the axes use the same color as the corresponding y-axis.
yyaxis right zz1 = exp(xx/6); zz2 = exp(xx/8); plot(xx,zz1,xx,zz2)