Break in the axis

661 次查看(过去 30 天)
Niles Martinsen
Niles Martinsen 2012-7-2
回答: yanan LIU 2020-2-29
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.

采纳的回答

Thomas
Thomas 2012-7-2
编辑:Thomas 2012-7-2

更多回答(3 个)

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
https://www.mathworks.com/matlabcentral/fileexchange/3683-breakxaxis
It does EXACTLY what you want to do.

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by