991f2c8eb1ccfff9a9b643700605a107.png

本示例说明了MATLAB如何在绘图中使用裁剪以及如何控制裁剪。

什么是剪裁?

当图的一部分出现在轴的边界之外时,就会发生裁剪。在MATLAB中,被裁剪的图形部分不会出现在屏幕上或打印输出中。图的轴边界确定了显示边界。

关闭剪辑

默认情况下,MATLAB会裁剪超出轴限制范围的图。

 figure
 surf(peaks)
 zlim([-4 4])

eaa16b6980fc060254b075f3b8d5dd55.png

使用轴线的 Clipping属性来控制剪切行为。

 ax = gca;               % get the current axis
 ax.Clipping = 'off';    % turn clipping off

ac45065723b32d6491509bd0bc26c278.png

控制剪贴样式

使用ClippingStyle属性控制裁剪的方式。如果将ClippingStyle设置为'3dbox',则MATLAB会将图裁剪为由xyz轴的限制定义的体积空间。如果将ClippingStyle设置为'rectangle',则MATLAB会将绘图剪切为围绕xyz轴的外部绘制的假想矩形。下图显示了两种剪辑样式之间的差异。

9b5a6aafe93b79c5e53abc771b11a54e.png

裁剪2D图

裁剪也用于2D图中。例如,MATLAB在下面的图中裁剪了正弦波。

 x = -pi:pi/20:pi;
 y = sin(-pi:pi/20:pi);
 plot(x,y)
 ylim([-0.9 0.9])

2a1b5dc3f1c1bb128b4892224caf390e.png

如果关闭剪裁,MATLAB将显示整个正弦波。

 ax = gca;
 ax.Clipping = 'off';

74db790f2d93cfbd80cd1aba210f34b7.png

剪切和标记

裁剪不会影响在每个数据点绘制的标记,只要数据点本身在图的xy轴范围内即可。MATLAB会显示整个标记,即使它稍稍超出轴的边界也是如此。

 p = plot(1:10,'*');
 p.MarkerSize = 10;
 axis([1 10 1 10])

b221cf2561d892285c2104a1aa4fd328.png

注:本文根据MATLAB官网内容修改而成。

我推荐给你以下的视频教程,特点是没有PPT,不掺水,直接编程环境下的实操课程: 用360分钟了解MATLAB编程《MATLAB编程360》视频课程:

MATLAB编程360 - 网易云课堂study.163.com​study.163.com
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐