Matlab图形属性检查器
和其他语言的绘图不一样的是,Matlab允许我们通过非编程的方式来自定义调整绘图。下面介绍Matlab图形的构成以及几种调整绘图时的常用操作。
图形构成
什么是Figure
当我们使用绘图函数创建图形时,总会弹出一个窗口以显示我们绘制的图形,这整个窗口我们把它叫做Figure或者称为画板(即我们作画需要的载体)。比如像下面的图形就是一个Figure:
尽管在我们进行绘图时,系统为我们给定了一套默认的参数,比如图形的大小,颜色,位置等等,但是这种方式由于缺乏灵活性,不利于我们对图形进行修正比如,若将上面的图形导出则会出现大片的空白区域,后期仍需要进行二次裁剪十分浪费时间,因此我们需要深入了解Figure,以实现我们客制化的需求。
Figure由哪些部分组成
我将Matlab中Figure的最常用组成总结如下:
其中Figure是整个画布,legend是图例显示,axes是我们真正绘图的区域,xlabel,ylabel即x,y轴表示含义,title即图的标题,tick和tick_label为刻度值和在该刻度值上显示的文字。值得注意的是我们在进行绘图时,上面各个部分的位置信息都是参考其上一级的位置信息而言的的。
图形调整
位置调整
位置表示
Matlab中位置通常用向量[left bottom width height]来表示,left表示距离左侧边界的距离,bottom表示距离下边界的距离,width表示图像的宽度,height表示图像的高度。
在表示这些量时有很多单位可以选择,建议选择normalized。
Figure位置调整
在Figure中共有三个位置信息,它们表示的含义大体相近,但亦有所区别。
- Position 属性是最常用的,用于直接设置图形窗口在屏幕上的位置和大小。
- OuterPosition 属性则用于获取或设置包括所有装饰元素在内的整个图形窗口的大小和位置。
- InnerPosition 属性主要用于调整绘图区域的大小和位置,而不考虑窗口的边框、标题栏等装饰元素。
在实际使用上,我们往往只用设置其中一个就可,实验上来看,Position和OuterPosition似乎没有太大区别。另外Figure的位置信息是参考屏幕左下角的点而言的。
axes位置调整
axes同样有上面上个位置信息,由于Figure是其上一级,因此它的位置信息是参考Figure的左下角而言的。如下图:
其他部分位置调整
对于其他部分的位置而言,大多数都包含了Position信息,此外对于title还有额外的HorizontalAlignment和VertivalAlignment信息(可以设置为left,right和center),当设置为居中时,那么将以居中点来确定到参考点的距离。
坐标轴刻度调整
在我们进行绘图时,有时候我们期望坐标的刻度以日期形式显示,这时候x,y的tick_label就排上用场了。比如设置xtick = [1,2,3,4], xtick_label为['a','b','c','d']那么实际出来的效果就是在刻度为[1,2,3,4]的地方显示a,b,c,d。
如下图所示:
放大指定区域的图形
局部区域放大图的原理很简单,其实就是copy一份一模一样的图像,然后重新设置的新图的xlim和ylim然后对图片放大。
下面展示,设置放大图的全过程。
-
拷贝一份图像放一起
-
设置拷贝图像的显示范围(属性检查器->标尺->xlim,ylim)
这样就基本上完成了图像的放大
-
将放大图像移动到原图像中,并添加箭头