Effacer les filtres
Effacer les filtres

Break in the axis

767 vues (au cours des 30 derniers jours)
Niles Martinsen
Niles Martinsen le 2 Juil 2012
Hi
I have a plot of data points (x, y). The issue is that one of the first data points has a very large amplitude, whereas the rest of the data points have very small magnitudes. So what I thought that I wanted to do is to make a "cut" in the y-axis, such that it goes from 0..1 and then skips to 100..105. Perhaps with a mark such as this "----//----" in between.
Is that possible in MatLAB?
Best, Niles.
  2 commentaires
Daniel Shub
Daniel Shub le 1 Août 2013
Lea
Lea le 4 Mai 2024

Connectez-vous pour commenter.

Réponse acceptée

Thomas
Thomas le 2 Juil 2012
Modifié(e) : Thomas le 2 Juil 2012
  1 commentaire
Sean de Wolski
Sean de Wolski le 2 Juil 2012
Nice find!

Connectez-vous pour commenter.

Plus de réponses (4)

yanan LIU
yanan LIU le 29 Fév 2020
There is no direct function as I know.
But you can try to plot the double line on your figure.
for example,
x=1:10;
y=sin(x);
plot(x,y,'k*-','LineWidth',1.5,'MarkerSize',8);
axes('Position',[.1 .78 .05 .05]);
px=[1 5];
py1=[1 2];
height=1;
py2=py1+height;
plot(px,py1,'k','LineWidth',2);hold all;
plot(px,py2,'k','LineWidth',2);hold all;
fill([px flip(px)],[py1 flip(py2)],'w','EdgeColor','none');
box off;
axis off;
Then you can get the follow figure.

Peter
Peter le 1 Août 2013

Philippe Lebel
Philippe Lebel le 22 Août 2018
Modifié(e) : Walter Roberson le 4 Mai 2024
  1 commentaire
Walter Roberson
Walter Roberson le 22 Août 2018
That's what Thomas suggested 6 years ago.

Connectez-vous pour commenter.


Lea
Lea le 4 Mai 2024
Building on Yanan LIU's contribution, I explained it more and this is for a break in the x axis.
%Here, Yanan allows us to choose the location of the break. In Yanan's
%code, it is on the y axis, here it is on the x axis (done by changing the
%two first numerical values). Axes basically creates a new very small plot
%(0.05*0.05) at (0.8,0.175).
axes('Position',[.8 .175 .05 .05]);
%this code forms the rectangle for the break sign on the axis itself. px
%defines the x values of the rectangle, py1 from the bottom and py2 from
%the top. height specifies the height of the rectangle.
px=[1 2];
py1=[1 2];
height=0.5;
py2=py1+height;
%'k', the black outer lines are drawn, one with each plot.
plot(py1,px,'k','LineWidth',2);hold all;
plot(py2, px, 'k','LineWidth',2);hold all;
%%Here, the rectangle is filled with white, 'w'
fill([py1 flip(py2)],[px flip(px)],'w','EdgeColor','none');
box off;
%remove the axis labels for the small axes we made, so that you only have
%the lines and the white filling
axis off;

Catégories

En savoir plus sur Labels and Annotations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by