先来介绍一下对象和句柄的相关内容。
MATLAB把构成图形的各个基本要素称为图形对象,产生每一个图形对象时,MATLAB会自动分配一个唯一的值用于表示这个对象,称为句柄。
对象间的基本关系:
计算机屏幕->图形窗口->(用户菜单,用户控件,坐标轴)
坐标轴->(曲线,曲面,文字,图像,光源,区域,方框)
基本底层绘图函数:
line对象和line函数
h = line('pro1', 'val1', 'pro2', 'val2', …);
比如下面这段函数:
h = line([-pi:0.01:pi], sin([-pi:0.01:pi])); %等价于 hp = plot([-pi:0.01:pi], sin([-pi:0.01:pi]));
产生line对象,h为line对象的句柄;
line对象的修饰:
Color属性;
LineWidth属性;
LineStyle属性;
Marker属性;
MarkerSize属性;
plot绘制的图形也是line对象,可以通过line对象的修饰方法后期修饰
可以这样来绘制一个曲线并且制定相关的属性:
hl = line('XData', [-pi:0.1:pi], 'YData', sin([-pi:0.1:pi]), ... 'LineWidth', 1, 'LineStyle', ':', 'Color', 'r');
hl = line('XData', [-pi:0.1:pi], 'YData', sin([-pi:0.1:pi]), ... 'LineWidth', 1, 'LineStyle', ':', 'Color', 'r'); set(hl, 'LineWidth', 2, 'Marker', 'p', 'MarkerSize', 15);
下面来看一下底层标注的操作:
text对象和text函数。
我们可以用text函数返回一个句柄值。
修饰:
Color属性
String属性
FontSize属性
Rotation属性
hl = line('XData', [-pi:0.1:pi], 'YData', sin([-pi:0.1:pi]), ... 'LineWidth', 1, 'LineStyle', ':', 'Color', 'r'); set(hl, 'LineWidth', 2, 'Marker', 'p', 'MarkerSize', 15); ht = text(0, 0, 'sin'); set(ht, 'String', 'cos'); set(ht, 'FontSize', 20);
接下来再看一下坐标轴的相关问题。
axes对象和axes函数
坐标轴的属性修饰:
Box属性
GridLineStyle属性
Position属性
Units属性(常用)
XLabel、YLabel和ZLabel属性
Xlim、Ylim和Zlim属性
如果一开始不将坐标轴的unit属性设置为归一化,那么默认的坐标轴属性为normalized。
我们可以用figure函数进行演示。那么unit属性默认就变成的pixels。
但是这样在调整窗口的时候窗口变化时大小也会发生改变,所以推荐使用normalized。
hf = figure; ha = axes('Parent', hf, 'Units', 'normalized', 'Position', [.1 .1 .6 .5]);
运行后的效果如图所示: