王国利信息科学与技术学院中山大学
http://human-robot.sysu.edu.cn/~isswgl
Matlab计算与仿真技术第十二讲,Matlab绘图 -III
http://human-robot.sysu.edu.cn/course
Matlab计算与仿真
第十二讲回顾
- 图形对象与句柄
- 综合练习
Matlab绘图 -III
- 交互式绘图第十二讲提纲
Matlab计算与仿真第十一讲回顾
句柄图形回顾句柄图形 ( Handle Graphics)
- 创建线、文字、网线、面
- 用于生成图形用户界面绘图函数 (plot/mesh…,high-level)
调用了句柄图形指令 (low-level)
实现各种绘图功能
Matlab计算与仿真第十一讲回顾 (续 )
- 句柄图形对象 (Handle graphics object)
基本的绘图要素,包括核心图形对象:实现特定的绘图功能复合图形对象:核心图形对象的装配组合包括图 /组 /标注对象句柄 (Handle),存取对象唯一规范识别符句柄不可能重复和混淆
Matlab计算与仿真第十一讲回顾
Matlab图形与对象句柄
Matlab图形 =图形对象以递阶结构组成
UI Controls
(UI 控制元件 )
Images
(图像 )
Lines
(线段 )
Patches
(贴片 )
Surfaces
(曲面 )
Texts
(文字 )
Lighting
(光照 )
Axes
(图轴 )
UI menus
(UI 菜单 )
Figures
(图形视窗 )
Root
(桌面 )
Matlab计算与仿真第十一讲回顾 (续 )
- Matlab图形与对象句柄 (续 )
Matlab图形的构成必须的成分
- 根对象 (根屏幕 )
- 图形窗 (Figure Windows)
根对象 (屏幕 )的句柄总是数字 0
图形窗的句柄总是 正 整数其余对象的句柄则是双精度浮点数
Matlab计算与仿真第十一讲回顾 (续 )
对象的属性 (Properties)
- 描述对象的外貌和性状
- 基本格式:属性名和属性值,即
(Property-Name,Property-Value)
不需要对每个属性加以定义图形对象创建确定属性值缺省属性值为 Factory-defined
根对象除外
Matlab计算与仿真第十一讲回顾 (续 )
图形对象的创建创建图形窗口对象,基本格式
>> h=figure(n)
% n为窗口编号创建轴对象,基本格式
>> h=axes(‘position’,[left,bottom,
width,height])
% 定义坐标框的位置和尺寸
Matlab计算与仿真第十一讲回顾 (续 )
图形对象的创建 (续 )
创建线 /面元素,基本格式
>> h= line/surface(x,y,z)
% 绘制 x,y,z对应的曲线创建文本对象,基本格式
>> h=text(x,y,’string’)
% 在指定位置显示字符串内容
Matlab计算与仿真第十一讲回顾 (续 )
- 图形对象指令使用实例
[x,y] = meshgrid([-2:.4:2]);
% 生成变量空间网格数据矩阵
Z = x.*exp(-x.^2-y.^2);
fh = figure('Position',[350 275 400
300],'Color','w');
ah = axes('Color',[.8,8,8],'XTick',
[-2 -1 0 1 2],'YTick',
[-2 -1 0 1 2]);
Matlab计算与仿真第十一讲回顾 (续 )
- 图形对象指令使用实例 (续 )
sh = surface('XData',x,'YData',y,
'ZData',Z,
'FaceColor',[.9,9,9],
'EdgeColor','k',
'Marker','o',
'MarkerFaceColor',
[.5 1,85]);
Matlab计算与仿真第十一讲回顾 (续 )
-2 -1 0 1 2
-2
-1
0
1
2
Matlab计算与仿真第十一讲回顾 (续 )
- 对象句柄的获取基本方法从图形创建指令获得句柄追溯法获取图柄当前对象句柄的获取根据对象特性获取句柄根据对象标签获取句柄
Matlab计算与仿真第十一讲回顾 (续 )
- 对象句柄的获取 (续 )
图形创建方式
>> H_GC= GraphicCommand(…)
% GraphicCommand 图形创建函数
% H_GC 所创建图形句柄例如,
>> h = figure; % 返回图形窗口句柄
>> [x,y,z] = peaks;
>> [c,h] = contour(x,y,z);
c是 轮廓线数据矩阵
Matlab计算与仿真第十一讲回顾 (续 )
- 对象句柄的获取 (续 )
追溯 方式
>> H_pa= get(H_known,’Parent’)
或者
>> H_ch= get(H_known,’Children’)
% H_known 已知对象句柄
% ‘Parent’/’Children’ 父 /子关系设定
% H_pa/H_ch 获取父 /子对象句柄
Matlab计算与仿真第十一讲回顾 (续 )
- 对象句柄的获取 (续 )
实例,
>> [x,y,z] = peaks;
>> [c,h] = contour(x,y,z);
>> child_handles = get(h,'Children');
>> get(child_handles,‘Type’) % 查询类型
ans =
'patch'
'patch‘ …
Matlab计算与仿真
Matlab绘图 (续 )
- 对象句柄的获取 (续 )
当前对象提取 方式
>> h=gcf
% 返回当前图形窗口的句柄
>> h=gca
% 返回当前轴的句柄
>> h=gco
% 返回鼠标选定的图形对象句柄
Matlab计算与仿真
Matlab绘图 (续 )
- 对象句柄的获取 (续 )
依据属性搜索 方式
>> H=findobj(H_ori,PN,PV)
% H_ori 指定拟搜索的对象
% (PN,PV) 匹配的属性实例
>> text_handle = findobj(gca,'String',
'\leftarrowsin(t) =,707');
Matlab计算与仿真
Matlab绘图 (续 )
- 对象句柄的获取 (续 )
标签方式通过 <Tag> 属性对对象进行标注通过标注可获取该对象的句柄设置标签标注的两个方法:
创建时赋名,如
>> subplot(3,2,4);
>> plot(x,y,’Tag’,’A4’);
标注为 A4
Matlab计算与仿真
Matlab绘图 (续 )
- 对象句柄的获取 (续 )
标签方式 (续 )
用 set赋名,如
>> subplot(3,2,4);
>> h=plot(x,y);
>> set(h,’Tag’,’A4’);
结合属性搜索的实例
>> hax=findobj(0,’Tag’,’A4’)
Matlab计算与仿真
Matlab绘图 (续 )
- 对象属性的获取与设定基本方法从图形创建指令设定属性
get/set专用指令对象属性的缺省设置和查询
Matlab计算与仿真
Matlab绘图 (续 )
- 对象属性的获取与设定 (续 )
创建对象方式
>> GraphicCommand(…,PN,PV)
% GraphicCommand 图形创建函数
% (PN,PV) 拟设定的属性例如,
>> line_handles = line(x,y,'Color','b');
% 设定曲线的颜色为兰色
Matlab计算与仿真
Matlab绘图 (续 )
- 对象属性的获取与设定 (续 )
get/set方式
get(H) 获取 H句柄对象所有属性值
get(H,PN) 获取 H句柄对象的 PN属性
set(H) 显示 H句柄对象的所有可设置属性名和全部供选属性值
set(H,PN) 显示 H句柄对象 PN指定属性名的全部供选属性值
Matlab计算与仿真
Matlab绘图 (续 )
- 对象属性的获取与设定 (续 )
set(H,PN,PV,…) 设置 H句柄对象的
PN属性名取 PV属性值
get(H,
’DefaultObjectTypeObjectProperty’)
% 获取缺省值
set(H,
’DefaultObjectTypeObjectProperty’,
propertyValue) % 设置缺省值
Matlab计算与仿真
Matlab绘图 (续 )
- 对象属性的获取与设定 (续 )
set(H,PN,PV,…) 设置 H句柄对象的
PN属性名取 PV属性值
get(H,
’DefaultObjectTypeObjectProperty’)
% 获取缺省值
set(H,
’DefaultObjectTypeObjectProperty’,
propertyValue) % 设置缺省值
Matlab计算与仿真
Matlab绘图 (续 )
综合练习,绘制如下方程确定的椭圆
- 求解:创建文件 graph3.m
% Script file graph3,
% Graphs of two ellipses
% x(t)=3+6cos(t),y(t)=-2+9sin(t)
% and
% x(t)=7+2cos(t),y(t)=8+6sin(t).
2 2 2 23 2 7 81,1
3 6 8 1 2 3 6
x y x y
Matlab计算与仿真
Matlab绘图 (续 )
t = 0:pi/100:2*pi;
x1 = 3 + 6*cos(t);
y1 = -2 + 9*sin(t);
x2 = 7 + 2*cos(t);
y2 = 8 + 6*sin(t);
h1 = plot(x1,y1,'r',x2,y2,'b');
Matlab计算与仿真
set(h1,‘ LineWidth’,1.25)
axis(‘ square’ )
xlabel(‘ x’ )
h = get(gca,‘ xlabel’ );
set(h,‘ FontSize’,12)
set(gca,‘ XTick’,-4:10)
ylabel(‘ y’ )
h = get(gca,'ylabel');
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
set(h,'FontSize',12)
set(gca,'YTick',-12:2:14)
title('Graphs of (x-3)^2/36+ …
(y+2)^2/81 = 1 and …
(x-7)^2/4+(y-8)^2/36 = 1.')
h = get(gca,'Title');
set(h,'FontSize',12)
grid
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
综合练习,绘制如下参数方程确定的曲线
- 求解:创建文件 graph4.m
% Script file graph4,
% Curve r(t)=<t*cos(t),t*sin(t),t>,
t = -10*pi:pi/100:10*pi;
x = t.*cos(t);
y = t.*sin(t);
( ) c o s ( ),s i n ( ),,- 1 0 t 1 0 r t t t t t t
Matlab计算与仿真
Matlab绘图 (续 )
h = plot3(x,y,t);
set(h,'LineWidth',1.25)
title('Curve u(t)=<t*cos(t),…
t*sin(t),t >')
h = get(gca,'Title');
set(h,'FontSize',12)
xlabel('x')
h = get(gca,'xlabel');
set(h,'FontSize',12)
Matlab计算与仿真
ylabel('y')
h = get(gca,'ylabel');
set(h,'FontSize',12)
zlabel('z')
h = get(gca,'zlabel');
set(h,'FontSize',12)
grid
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
交互式绘图图形窗口概述
Matlab绘图 (续 )
Matlab计算与仿真
- 图形窗口菜单及工具框
Matlab绘图 (续 )
Matlab计算与仿真
交互式绘图工具
- 功能概述创建各种图形选择工作空间变量直接创建图形创建和操作子图形增加标注,箭头,线段,文字等设置图形属性
- 基本模块图形模板属性编辑器绘图浏览器
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
图形模板
- 功能模块图形的创建和布局变量的浏览和选取标注,箭头,线段,文字等
- 与图形窗口使用
figurepalette('show')
figurepalette('hide')
figurepalette('toggle')
figurepalette(figure_handle,...)
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
绘图浏览器
- 功能模块选取和控制图形中的部件在图中增加新的数据图形
- 与图形窗口使用
plotbrowser(‘on')
plotbrowser(‘off')
plotbrowser('toggle')
plotbrowser(figure_handle,...)
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
属性编辑器
- 功能模块设定/编辑选取部件的属性检查部件属性
- 与图形窗口使用
propertyeditor (‘on')
propertyeditor(‘off')
propertyeditor('toggle')
propertyeditor(figure_handle,...)
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
案例1:绘图工具的使用
Matlab计算与仿真
Matlab绘图 (续 )
案例2:工作空间变量绘图
Matlab计算与仿真
Matlab绘图 (续 )
案例3:指定数据源方式
Matlab计算与仿真第十三讲预告,Matlab绘图 -IV
( 2008年 05月 21日)
结束语