[大谦MATLAB,dqmatlab点com]
创建坐标系
如果当前图形窗口中没有Axes对象,则所有绘图函数绘图时都会创建一个该对象。如果在图形窗口中有多个Axes对象,则总有一个指定为当前坐标系,当前绘制的图形对象都会显示在这里。
MATLAB中用axes函数设置直角坐标系。该函数的语法格式为:
axes 在当前图形窗口中创建默认的直角坐标区,并将其设置为当前坐标。通常情况下,不需要在绘图之前创建坐标,因为如果不存在坐标,图形函数会在绘图时自动创建坐标。
axes(Name,Value) 使用一个或多个属性名称-值配对参数修改坐标区的外观,或控制数据的显示方式。例如,'FontSize',14可设置坐标区文本的字体大小。
axes(parent,Name,Value) 在由parent指定的图形窗口、面板或选项卡中创建坐标,而不是在当前图形窗口中创建。
ax=axes(___) 返回创建的Axes对象。可在创建Axes对象后使用ax查询和修改对象属性。
axes(cax) 将cax指定的坐标或图设置为当前坐标,并使父图形窗口成为焦点。此命令还将cax设置为图形窗口的Children属性中列出的第一个对象,并将图形窗口的CurrentAxes属性设置为cax。
下面创建两个坐标系。
>> ax1=axes('Position',[0.2 0.2 0.5 0.5]);
>> ax2=axes('Position',[0.6 0.6 0.3 0.3]);
生成图2-1。
图2-1 创建两个坐标系
MATLAB中用gca表示当前坐标系。下面的语句将句柄为h的坐标系设置为当前坐标系,使用了图形窗口对象的CurrentAxes属性。gcf表示当前图形窗口。
>> set(gcf,'CurrentAxes',h)
在MATLAB命令窗口输入cla,将清除当前坐标系中的内容。
坐标系的位置和大小
Axes对象的Position属性控制图形窗口中坐标系的大小和位置。默认的坐标系具有与默认图形窗口相同的纵横比并填充除了周边以外的大部分图形窗口。
MATLAB把坐标系的Position属性值设置为矢量,即
[left bottom width height]
left和bottom定义图中的点,该点对应于坐标系矩形的左下角,width和height指定坐标系矩形的大小。在工作平面内察看坐标系时x轴水平,y轴垂直。从这个角度讲,图形的包围矩形与坐标系矩形一致。
默认时,MATLAB绘制一个包围矩形来填充坐标系矩形并忽略它的形状,但是,使用坐标系属性可以控制图形包围盒的形状和大小。
Axes对象的Units属性确定Position属性的度量单位,该属性的可能值为:
[ inches | centimeters | {normalized} | points | pixels ]
其中,normalized是默认值。不管图形有多大,归一化单位将图形左下角映射为(0,0),右上角为(1,1)。不管什么时候改变图形窗口的大小,归一化单位会使坐标系自动改变大小。
可以用下面的属性控制改变坐标系大小的行为:
OuterPosition—坐标系的边缘包括坐标系标签、标题和空白,对于只有一个坐标系的图形窗口,它是图形窗口的内边缘。
Position—除了标记、标签、标题和坐标轴标签等内容以外的坐标系的边界。
ActivePositionProperty—指定改变包含坐标系的图形窗口的大小时是否使用OuterPosition或Position属性改变大小。
TightInset—在坐标系周边留出空白,以便留出标签、标题和坐标系的标签的位置。
Units—将该属性设置为normalized,使坐标系自动改变大小。
添加坐标轴标签和标题时,TightInset属性会把这些标签和标题也包括在内。
下面的代码创建两个坐标系,分别绘填充等值线图和球面图。两个坐标系有不同的位置和大小。
>> ax1=axes('Position',[0.2 0.2 0.5 0.5]);
>> ax2=axes('Position',[0.6 0.6 0.3 0.3]);
>> contourf(ax1,peaks(20)) %填充等值线图
>> sphere(ax2,20) %球面
生成图2-2。
图2-2 设置坐标系的位置和大小