MATLAB提供了很多跟刻度设置有关的属性,如表2-1所示。[大谦MATLAB,dqmatlab点com]
表2-1 刻度相关的属性
| 属 性 | 功 能 |
|---|---|
| XTick, YTick, ZTick | 设置沿坐标轴分布的标记的位置 |
| XTickMode, YTickMode, ZTickMode | 指定坐标轴上标记的位置是有MATLAB自动确定还是由用于手工指定 |
| XTickLabel, YTickLabel, ZTickLabel | 为标记指定标签 |
| XTickLabelMode, YTickLabelMode, ZTickLabelMode | 指定标记的标签是由MATLAB自动确定还是由用户手工指定 |
| TickLabelInterpreter | 刻度标签字符解释器 |
| XTickLabelRotation YTickLabelRotation ZTickLabelRotation | 刻度标签旋转角度 |
| XMinorTick YMinorTick ZMinorTick | 显示或隐藏次级刻度线 |
| TickLength | 刻度线的长度 |
| TickDir | 刻度线的显示样式 |
| TickDirMode | 自动或手动设置刻度线的显示样式 |
刻度线的显示和隐藏
使用坐标系对象的XMinorTick, YMinorTick和ZMinorTick等属性或者坐标轴对象的MinorTick属性可以显示或隐藏坐标轴上的次级刻度线。
在MATLAB命令窗口键入下面的代码,显示横轴上的次级刻度线。
>> fig=figure;
>> ax=axes(fig);
>> a1=ax.XAxis; %获取横坐标轴
>> x=linspace(0,2*pi);
>> y=sin(x)+cos(x);
>> plot(ax,x,y) %在坐标系中绘图
>> a1.MinorTick=x27;on' %在横轴上显示次级刻度线,'off'取消显示
生成图2-10。注意在坐标系的横轴上显示了次级刻度线。
图2-10 显示横轴的次级刻度线 图2-11 在横轴指定位置显示刻度线和标签
设置刻度线的位置
MATLAB可以在坐标轴上指定位置显示刻度线和刻度标签。
在MATLAB命令窗口键入下面的代码,在坐标系横轴上指定刻度线的显示位置。
>> fig=figure;
>> ax=axes(fig);
>> a1=ax.XAxis; %获取横坐标轴
>> x=linspace(0,2*pi);
>> y=sin(x)+cos(x);
>> plot(ax,x,y) %在坐标系中绘图
>> a1.TickValues=[0 pi/2 pi 3*pi/2 2*pi]; %在横轴上指定位置显示刻度线
生成图2-11。注意坐标系的横轴上在指定位置显示了刻度线和刻度标签。
设置刻度标签
坐标轴上的刻度标签是文本对象,其句柄在命令行中通常不可见。可以用xlabel, ylabel, zlabel和title等函数创建坐标系标签。但是,这些函数只影响当前坐标系。如果通过引用坐标系句柄来标注当前坐标系以外的坐标系,则必须根据对应的坐标系属性获取文本对象的句柄。也可以用坐标系对象的XTickLabel, YTickLabel和ZTickLabel等属性或坐标轴对象的TickLabels属性设置刻度标签。
在MATLAB命令窗口键入下面的代码,设置坐标系横轴上刻度标签的内容,用圆周率的倍数表示刻度值。
>> fig=figure;
>> ax=axes(fig);
>> a1=ax.XAxis; %获取横坐标轴
>> x=linspace(0,2*pi);
>> y=sin(x)+cos(x);
>> plot(ax,x,y) %在坐标系中绘图
>> a1.TickValues=[0 pi/2 pi 3*pi/2 2*pi]; %在横轴上指定位置显示刻度线
>> a1.TickLabels={'0','\pi/2','\pi','3\pi/2','2\pi'} %指定横轴上刻度标签的内容
生成图2-12。现在坐标系的横轴上刻度标签变成了圆周率的倍数。注意,指定的标签个数不够用时会自动循环使用标签。
图2-12 将横轴刻度标签显示为圆周率的倍数 图2-13 设置纵轴刻度标签的显示格式
刻度标签的格式
MATLAB可以指定坐标轴上刻度标签数值或日期时间等的显示格式,比如指定数值显示时保留几位小数、日期时间时间使用长日期或短日期等。
在MATLAB命令窗口键入下面的代码,指定纵轴刻度标签保留两位小数。
>> fig=figure;
>> ax=axes(fig);
>> a1=ax.YAxis; %获取纵坐标轴
>> x=linspace(0,2*pi);
>> y=sin(x)+cos(x);
>> plot(ax,x,y) %在坐标系中绘图
>> a1.TickLabelFormat='%.2f';
生成图2-13。现在坐标系的纵轴上刻度标签显示为保留2位小数的数值。
刻度标签的旋转
当刻度标签的内容比较长在横向上放不下时常常将刻度标签旋转一定角度后进行显示。使用坐标轴对象的TickLabelRotation属性将刻度标签旋转指定角度,角度的单位为度。
在MATLAB命令窗口键入下面的代码,将纵轴刻度标签保留5位小数,然后旋转45度显示。
>> fig=figure;
>> ax=axes(fig);
>> a1=ax.YAxis; %获取纵坐标轴
>> x=linspace(0,2*pi);
>> y=sin(x)+cos(x);
>> plot(ax,x,y) %在坐标系中绘图
>> a1.TickLabelFormat='%.5f';
>> a1.TickLabelRotation=45; %刻度标签旋转45度
生成图2-14。
图2-14 刻度标签旋转显示 图2-15 设置刻度线的显示样式
刻度线的显示样式
刻度线有4种显示样式,即显示在坐标轴的内侧、外侧、跨坐标轴内外两侧都显示和不显示。用坐标系对象的TickDir属性进行设置。
在MATLAB命令窗口键入下面的代码,将刻度线显示为跨坐标轴内外两侧都显示。
>> fig=figure;
>> ax=axes(fig);
>> x=linspace(0,2*pi);
>> y=sin(x)+cos(x);
>> plot(ax,x,y) %在坐标系中绘图
>> ax.TickDir=';both'; %内外侧都显示,'in', 'out', 'both', 'none'
生成图2-15。