필터 지우기
필터 지우기

Break in the axis

조회 수: 767 (최근 30일)
Niles Martinsen
Niles Martinsen 2012년 7월 2일
편집: Walter Roberson 2024년 5월 4일
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
Daniel Shub
Daniel Shub 2013년 8월 1일
Lea
Lea 2024년 5월 4일

댓글을 달려면 로그인하십시오.

채택된 답변

Thomas
Thomas 2012년 7월 2일
편집: Thomas 2012년 7월 2일
  댓글 수: 1
Sean de Wolski
Sean de Wolski 2012년 7월 2일
Nice find!

댓글을 달려면 로그인하십시오.

추가 답변 (4개)

yanan LIU
yanan LIU 2020년 2월 29일
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 2013년 8월 1일

Philippe Lebel
Philippe Lebel 2018년 8월 22일
편집: Walter Roberson 2024년 5월 4일
  댓글 수: 1
Walter Roberson
Walter Roberson 2018년 8월 22일
That's what Thomas suggested 6 years ago.

댓글을 달려면 로그인하십시오.


Lea
Lea 2024년 5월 4일
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;

카테고리

Help CenterFile Exchange에서 Labels and Annotations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by