How to show two axis on a plot only where i want them
    12 views (last 30 days)
  
       Show older comments
    
Hi Matlab Gurus,
I have the plot below, and i have two y axis, one on the left and one on the right, which are different to each other.
What i would like to do is only show the numbers on the y-axis (left and right), where the horizontal lines are
So i can draw a horizontal line using the left axix, and i can draw another horizonal line using the right axis. 
then i want the axis to only show exactly where those lines are, not evenly spread based on itself, but only where the lines are, so that i know the exact value of the lines at both the left and right axis.  
Any help would be highly appreciated. 

0 Comments
Accepted Answer
  Joel Lynch
      
 on 9 Jun 2021
        yyaxis left;   % Sets the current y-axis left
left_ax = gca; % Creates "left_ax" variable which stores the current (left) y-axis
yyaxis right;   % Sets the current y-axis right
right_ax = gca; % Creates "right_ax" variable which stores the current (right) y-axis
With these handles, you can find and edit pretty much any feature of the axis. For Tick Labels
left_ax.YTick = linspace(0,1,5); % Create 5 equally spaced ticks, for example
If your horizontal lines are meant to be grid lines, you can simple add them with 
grid on
and they should conform to the tick labels on the active axis. 
5 Comments
  Joel Lynch
      
 on 10 Jun 2021
				right_ax.ylim = [min(right_ax.YTick), max(right_ax.YTick)];
should work, after YTick has been set.
More Answers (1)
  darova
      
      
 on 9 Jun 2021
        try this yticks
h = plot(0:10,sin(0:10));
yy = 0:0.2:1;
[x,y] = ndgrid([0 10],yy);
line(x,y)
yticks(yy)
See Also
Categories
				Find more on Axis Labels in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





