Breaking the axis of plots
    10 views (last 30 days)
  
       Show older comments
    

How can I do something like this in MATLAB without using any external pagkages or functions? Thanks
1 Comment
  Angelo Yeo
    
 on 23 Jun 2023
				Why don't you take a look at the post below and see one of answers?
https://kr.mathworks.com/matlabcentral/answers/42537-break-in-the-axis
Answers (2)
  Star Strider
      
      
 on 24 Jun 2023
        Perhaps this — 
x = [linspace(0, 10, 21); linspace(40, 42.5, 21)];                                                  % Create Data
y = [sin(x(1,:)*2*pi*0.11); sin(x(2,:)*2*pi*0.15+2.6)];                                                 % Create Data
figure
subplot(1,2,1)
plot(x(1,:), y(1,:))                                                                                % Plot First Group
Ax1 = gca;
yt = Ax1.YTick;                                                                                     % Get Y-Tick Values
tl = Ax1.TickLength(1)*20;
yl1 = ylim;
hold on
plot(([0;tl]*ones(size(yt))), [1;1]*yt, '-k')                                                       % Create New Y-Yicks
hold off
% grid
Ax1.YAxis.Visible = 0;                                                                              % Turn Off Y-Axis
xline(0)
text(zeros(size(yt))-0.05*diff(xlim), yt, compose('%.1f',yt), 'Vert','middle', 'Horiz','right')     % Label New Ticks
text(max(xlim)*[1 1]-0.04, [min(ylim) max(ylim)], '/')
subplot(1,2,2)
plot(x(2,:), y(2,:))                                                                                % Plot Second Group
% grid
ylim(yl1)
Ax2 = gca;
Ax2.YAxis.Visible = 'off';                                                                          % Turn Off Y-Axis
xline(max(xlim), '-k')
hold on
plot((max(xlim)-[0;tl*0.25]*ones(size(yt))), [1;1]*yt, '-k')                                                       % Create New Y-Yicks
hold off
text(max(xlim)+zeros(size(yt))+0.15*diff(xlim), yt, compose('%.1f',yt), 'Vert','middle', 'Horiz','right')     % Label New Ticks
text(min(xlim)*[1 1]-0.05, [min(ylim) max(ylim)], '/')
This is not at all robust and will likely require tweaking with different data.  The File Exchange functions are likely better, since I would assume that they are designed to be more robust.  
.
0 Comments
  Aakash
      
 on 23 Jun 2023
        You can refer to this work from matlab file exchange forum: https://www.mathworks.com/matlabcentral/fileexchange/3683-breakxaxis?s_tid=srchtitle_breakxaxis_1
0 Comments
See Also
Categories
				Find more on Creating, Deleting, and Querying Graphics Objects 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!



