![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SZ3IWM0UDMmJzN0gTM2MGO1QmM4czYjNTO4UmMzIDZ48CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
matlab图形句柄shancumt.github.io
[toc]
1. 图形对象
图形对象:具有公共属性的元素的集合
图形对象的层次结构
获取图形对象句柄的函数
| 函数 | 功能 |
| :-----: | :--------------------------------------------------: |
| gcf | 获取当前图形窗口的句柄(get current figure) |
| gca | 获取当前坐标轴的句柄(get current axis) |
| gco | 获取最近被选中的图形对象的句柄(get current object) |
| findobj | 按照指定属性来获取图形对象的句柄 |
图形对象的句柄由系统自动分配,每次分配的值不一定相同。在获取对象的句柄后,可以通过句柄来设置或获取对象的属性。
2. 图形对象的属性
- 属性名+属性值
- 属性名用
括起来,不区分大小写''
- 设置属性:
如果在调用set函数的时候忽略全部的属性名和属性值,则将显示出句柄所有的允许属性set(句柄,'属性名1',性值1,'属性名2',属性值2···)
- 获取属性值:
V = get(句柄,'属性名')
V是获取的属性值
如果在调用get函数是省略属性名,则将返回句柄所有的属性值。
- 图形对象的公共属性
- Children属性:该属性的取值是该对象所有子对象的句柄组成的一个向量
- Parent属性:该属性的取值是该对象的父对象的句柄
- Tag属性:该属性的取值是一个字符串,相当于给该对象定义了一个标识符。此后,在任何程序中均可以通过findobj()函数来获取该标识符所对应的 图形的句柄 。例如:
hf = findobj(0,'tag','flag1')
- Type属性:表示该对象的类型,其取值不可改变。
- UseData属性:该属性的取值是一个 矩阵 ,默认是空矩阵,在程序设计时,可以将数据储存在该矩阵中,以达到 数据传输 的目的。
- Visible属性:取值为on(缺省值)或off,用来显示或隐藏图形窗口的动态变化过程。
- ButtonDownFcn属性:该属性的取值是一个字符串,一般是某个M文件或一小段Matlab程序,当鼠标指针位于对象之上,用户按下鼠标键时执行的字符串。
- CreateFcn属性:
- DeleteFcn属性等
3. 图像窗口对象
创建图形窗口对象
句柄变量 = figure('属性名1',属性值1,'属性名2',属性值2···)
figure
句柄变量 = figure
关闭图形窗口
close(窗口句柄)
:关闭图形窗口
close all
:关闭所有的图形窗口
clf
:清楚当前图形窗口的内容,但不关闭窗口
属性
- Menubar:用于控制图形窗口是否应该具有菜单条,取值为figure(缺省值)或None
- Name:它的属性取值可以是任意 字符串 ,缺省值为空
- NumberTitle:决定图形窗口标题是否以“Figure No.n”为标题前缀,取值为on(缺省值)或off
- Resize:决定图形窗口建立后是否可用 鼠标改变该窗口的大小 ,取值为on(缺省值)或off
- Position:定义了图形窗口对象在屏幕上的位置和大小,取值为[n1,n2,n3,n4],其中n1和n2分别为窗口左下角的 横纵坐标值 ,n3和n4分别为窗口的 宽度和高度 ,单位由units属性决定
- Units:该属性的取值为:pixel(像素,缺省值),normalized(相对单位),inches(英寸),centimeters(厘米)和points(磅)
- Color:取值为一个颜色值,既可以用 字符 表示,也可以用RGB三元组表示,缺省值为[0.8 0.8 0.8]
- Pointer:用于设定鼠标标记的显示形式,取值为arrow(缺省值),crosshair,watch,top,topr,botl,botr,circle,cross,fleur,custom等
- KeyPressFcn:
- WindowButtonDownFcn:鼠标按下响应
- WindowButtonMotionFcn:鼠标移动响应
- WindowButtonUpFcn:鼠标释放响应
4. 坐标轴对象
所谓在某个图形窗口中输出图形对象,实质上指在该图形窗口中的当前坐标轴中输出图形图像。
坐标轴对象是图形窗口的子对象,每个图形窗口中可以定义多个坐标轴对象,但是只有一个坐标轴对象是当前坐标轴对象。
创建坐标轴对象
-
句柄函数 = axes('属性名1',属性值1,'属性名2',属性值2···)
-
axes
-
句柄变量 = axes
-
:将坐标轴设为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口axes(坐标轴对象)
属性
- Box:决定当前坐标轴是否带有边框,取值为 on或off(缺省值)
- GridLineStyle:定义网格线的类型,取值为
,:
,-
,-.
或--
None
- Position:决定坐标轴矩形区域在图形窗口中的位置,取值为取值为[n1,n2,n3,n4],其中n1和n2分别为窗口左下角的 横纵坐标值 ,n3和n4分别为窗口的 宽度和高度 ,单位由units属性决定
- Units:定义了Position属性的度量单位,该属性的取值为:pixel(像素),normalized(相对单位,缺省值),inches(英寸),centimeters(厘米)和points(磅)
- Title:该属性的取值是当前坐标轴标题文字对象的句柄,可以通过该属性对坐标轴标题文字队行进行操作。如改变标题颜色,
h = get(gca,'title');set(h,'color','r')
- XLabel,YLabel,Zlabel属性:3种属性的取值分别为x,y,z轴说明文字的句柄,其操作与
属性相同。Title
- XLim,YLim,ZLim属性:3种属性的取值粉笔都是具有两个元素的数值向量,分别定义各坐标轴的上下限,缺省值为[0,1],高层函数
实际上是对这些属性的直接赋值axis
- XScale,YScale,ZScale属性:定义各坐标轴的刻度类型,3种属性的取值分别为
或linear(缺省)
log
- View属性:定义视点方向,取值为两个元素的数值向量
5. 底层绘图操作
曲线对象
曲线对象是坐标轴对象的子对象,它既可以定义在二位坐标系中使用,也可以定义在三维坐标系中使用
创建曲线对象
-
句柄对象 = line(x,y,z,'属性名1',属性值1···)
属性
- 公共属性
- Color属性:取值为代表颜色的字符或RGB值
- LineStyle属性:定义线型
- LineWidth属性:定义线宽,缺省值为0.5磅
- Marker属性:定义数据点标记符号,缺省值为
none
- MarkerSize属性:定义数据点标记符号的大小,缺省值为6磅
- XData、YData、ZData属性:表示曲线对象的3个坐标轴数据,取值为数值向量或矩阵
曲面对象
曲线对象也是坐标轴的子对象,它定义在三位坐标系中,而坐标系可以在任何视点下
创建曲面对象
-
句柄对象 = surface(x,y,z,'属性名1',属性值1···)
属性
- 公共属性
- EdgeColor属性:定义曲面网格线的颜色或着色方式,取值为代表颜色的字符或RGB值还可以是
、flat
或interp
,缺省值为黑色none
- FaceColor属性:定义曲面网格片的颜色或着色方式,取值和
属性相似,缺省值为EdgeColor
flat
- LineStyle属性:定义网面网格线的类型
- LineWidth属性:定义网格线的线宽,缺省值为0.5磅
- Marker属性:定义曲面数据点标记符号,缺省值为
none
- MarkerSize属性:定义曲面数据点标记符号的大小,缺省值为6磅
- XData、YData、ZData属性:表示曲线对象的3个坐标轴数据,取值为数值向量或矩阵
文本对象
创建文本对象
-
其中的说明文字除使用标注的ASCII字符为,还可使用LaTeX格式的控制字符句柄对象 = text(x,y,z,'说明文字','属性名1',属性值1···)
属性
- Color属性:定义文字对象的显示颜色
- String属性:定义文字标注的内容,取值为字符串或字符串矩阵
- Interpreter属性:取值为Latex或None,控制文字标注内容的解释方式,即LaTex方式或ASCII方式
- FontSize属性:定义文字对象的大小,缺省值为10磅
- Rotation属性,定义文字对象的旋转方向,取值为数值量,缺省值为0,取正值时表示逆时针方向旋转,负值时表示顺时针方向旋转。