2016-09-18 68 views
0

我想添加对象到我已定义x个极限但跨越整个y范围的matlab图中。示例是由两个x值分隔的垂直线或阴影区域。我知道的选项使用当前的情节限制这样的:如何免除Matlab绘图极限计算中的对象

plot(1:10) 
yl = ylim(); 
% Use y limits of current plot as y values 
patch([ 3 3 5 5 ],[ yl(1) yl(2) yl(2) yl(1) ], 'red'); 

enter image description here

但是我希望我的用户能够增加绘Y极限之后(例如,同步多个地块的限制)并希望他们继续从Matlab的绘图限制自动设置中获益。

这将是可存档的,如果我的计算过程中使用下面的代码,以我的对象的y坐标设置为最大和最小的整数,分别为(intmax()并在Matlab intmin()),并告诉MATLAB不考虑对象绘图限制。

plot(1:10) 
% Make graphical object which spans the whole possibly y range 
p = patch([ 3 3 5 5 ],[ intmin intmax intmax intmin ], 'red'); 
% Does something like the following function exist? 
exemptFromPlotLimitsCalculation(p) 

这是可能的Matlab?

回答

1

你可以(通过使用realmax例如)绘制patch(或fill)真大,从通过设置重新调整排除物业YLimInclude关闭

patch([3 3 5 5], realmax*[ -1 1 1 -1], 'red', 'YLimInclude', 'off'); 
+0

为什么我找不到此选项?谢谢! – akraf

1

看看this

在postActionCallback你可以调整你的补丁

+0

谢谢。在这种情况下,@ nilZ0r的解决方案更容易,但是在调整子图之间的距离时,我仍然可以使用您的建议! – akraf