R2015a plot problem with ticklabel definition

2 views (last 30 days)
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
figure % new figure
[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);
title('Multiple Decay Rates')
xlabel('Time (\musec)')
ylabel(hAx(1),'Slow Decay') % left y-axis
set(hAx(1),'ytick',-200:50:200)
set(hAx(2),'ytick',linspace(-0.8,0.8,5),'YTickLabel',num2str(y2(:), '%0.1f'))
When I run this, I get only positive values for the y axis on the right and the values aren't correct. Any solution??

Answers (2)

Walter Roberson
Walter Roberson on 21 Feb 2020
Edited: Walter Roberson on 21 Feb 2020
You only ask for 5 ticks in your linspace, with labels derived from y2 not from what you linspace. Your first 5 y2 values are all positive.
  6 Comments
Angshuman Podder
Angshuman Podder on 24 Feb 2020
%No public field TickLabelFormat exists for class matlab.graphics.axis.decorator.NumericRuler.
%Error in plotdemo (line 83)
%hAx(2).YRuler.TickLabelFormat = '%0.1f';
The above error pops up. I'm using R2015a.

Sign in to comment.


Spencer Chen
Spencer Chen on 21 Feb 2020
Well, you have set you ytick labels to:
num2str(y2(:), '%0.1f')
Maybe you meant?
num2str(linspace(-0.8,0.8,5), '%0.1f')
Blessings,
Spencer
  1 Comment
Angshuman Podder
Angshuman Podder on 21 Feb 2020
Hi, I want the y2 values to be printed on the right axis in the %0.xxf format.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!