matlab图形指令.docx
- 文档编号:8488311
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:37
- 大小:1MB
matlab图形指令.docx
《matlab图形指令.docx》由会员分享,可在线阅读,更多相关《matlab图形指令.docx(37页珍藏版)》请在冰豆网上搜索。
matlab图形指令
matlab绘图函数
(1):
2D绘图
先举一个简单的例子
>>x=0:
0.01:
2*pi;
>>y=sin(x);
>>plot(x,y);
图1pic02.jpg
(1)直角坐标系2D绘图:
plot函数
plot()是最基本的二维绘图函数。
功能:
①自动打开一个图形窗口(Figure),如果已经存在一个图形窗口,则清除当前图形,绘制新图形;②用直线连接相邻两数据点来绘制图形;③可以一次绘制一条曲线,也可以一次绘制多条曲线;④可以设定绘图颜色、点型、线型、线宽等特性。
语法:
→plot(Y)——
当Y是实数一维数组时,等价于:
>>x=1:
length(Y);
>>plot(x,Y);
当Y是实数二维数组时,等价于:
>>x=1:
size(Y,1);
>>plot(x,Y);
当Y为复数数组时,等价于:
>>plot(real(Y),imag(Y));
→plot(X,Y)
当X,Y都是实数一维数组,以X中元素为横坐标,Y中元素为纵坐标作平面曲线。
此时X,Y必须具有相同长度。
当X,Y都是实数二维数组,将X的列和Y相应的列相组合,绘制多条平面曲线。
此时X,Y必须具有相同的维数。
当X,Y是复数数组时,忽略虚部,等效于:
plot(real(X),real(Y));
→plot(X1,Y1,...,Xn,Yn); %%在同一个坐标系中绘制曲线X1Y1,X2Y2,X3Y3,XnYn。
→plot(x,Y)x是一维数组,Y是二维数组
若x的长度与Y的行数相等,则将x与Y中的各列相对应,绘制多条平面曲线;
若x的长度与Y的列数相等,则将x与Y中的各行相对应,绘制多条平面曲线。
→plot(X,y)X是二维数组,y是一维数组
若y的长度与X的行数相等,则将X中的各列与y相对应,绘制多条平面曲线;
若y的长度与X的列数相等,则将X中的各行与y相对应,绘制多条平面曲线。
→plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec);%%以下将详细叙述。
按照三个参数Xn,Yn,LineSpec画线,其中LineSpec指定了线型,点标记和画线的颜色,也可以混合使用三参数Xn,Yn,LineSpec和二参数Xn,Yn:
plot(X1,Y1,X2,Y2,LineSpec,X3,Y3);
LineSpec的三种属性可以全部指定,也可以只指定其中某一个或两个,排列顺序任意。
表1LineSpec的LineStyle属性,Marker属性,Color属性
线型(LineStyle)
点标记(Marker)
颜色(Color)
- 实线
. 点
v 下三角
b 蓝色
m 棕色
:
点线
o 小圆圈
^ 上三角
g 绿色
y 黄色
-. 点划线
x 叉号
< 左三角
r 红色
k 黑色
-- 虚线
+ 加号
> 右三角
c 青色
w 白色
* 星号
p 五角星
s 方格
h 六角星
d 菱形
none无标记(默认)
→plot(...,'PropertyName',PropertyValue,...);%%对plot生成的图形对象,用指定的properties进行设置。
PropertyName
Color非标准颜色可用[r,g,b]指定,r,g,b取0和1之间的数值,默认值为[0,0,0](黑色),亦可按照表1中进行设置。
LineWidth线宽,默认值为0.5
LineStyle线型,亦可按照表1中进行设置。
Marker点标记,亦可按照表1中进行设置。
MarkerEdgeColor marker的颜色(或filledmarkers边的颜色)
MarkerFaceColorthefaceoffilledmarkers的颜色
MarkerSize点标记的大小
→plot(axes_handle,...);%% 将图形绘制在由axes_handle指定的坐标系中。
e.g.
>>x=0:
0.2:
2*pi;
>> h1=axes('position',[0.05,0.1,0.4,0.4]);
>> h2=axes('position',[0.5,0.5,0.4,0.4]);
>> plot(h1,x,x);
>> plot(h2,x,sin(2*x));
图2 pic02.jpg
→h=plot(...);
h=plot(...) 返回图形对象的句柄。
图形中的每条曲线都返回自己的句柄(是一个双精度数)。
如有多条曲线,则有多个句柄,以列向量的形式返回至h。
句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息,可用get()函数获取这些属性,用set()函数设置(修改)属性。
e.g.
>>x=0:
0.2:
2*pi;
>> Y=[sin(x);2*sin(2*x)];
>> h=plot(x,Y);
>> get(h
(1));
>> set(h
(1),'Color','r','LineWidth',1,'Marker','+');
>> set(h
(2),'Color','g','LineWidth',2,'Marker','s');
图3 pic03.jpg
(2)对数坐标绘图
→semilogx() x轴:
常用对数刻度,y轴:
线性刻度
→semilogy() x轴:
线性刻度,y轴:
常用对数刻度
→loglog() :
作图时,x轴、y轴都使用常用对数刻度
→loglog(Y)
→loglog(X1,Y1,...)
→loglog(X1,Y1,LineSpec,...)
→loglog(...,'PropertyName',PropertyValue,...)
→h=loglog(...)
用法与plot()函数完全相同
(3)双y轴绘图:
plotyy()
如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy()绘图函数。
→plotyy(X1,Y1,X2,Y2):
其中X1,Y1对应一条曲线,X2,Y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。
→plotyy(X1,Y1,X2,Y2,'function')
使用由function指定的函数绘图,function可以是:
plot,semilogx,semilogy,loglog,stem……
→plotyy(X1,Y1,X2,Y2,'function1','function2')
使用由function1指定的函数作X1,Y1的图
使用由function2指定的函数作X2,Y2的图
→[AX,H1,H2]=plotyy(...)
AX:
存储两个Y轴的句柄,AX
(1)为左Y轴的句柄,AX
(2)为右Y轴的句柄。
H1和H2分别为两个图形对象的句柄。
(4)极坐标系绘图:
polar()
polar()接受极坐标形式的函数rho=f(theta),在笛卡尔坐标系平面上画出该函数,且在平面上画出极坐标形式的栅格。
→polar(theta,rho)
用极角theta和极径rho画出极坐标图形。
theta是从x轴到指定矢量半径的夹角,单位为弧度,rho是数据空间单位指定的矢量半径的单位。
→polar(theta,rho,LineSpec)
参数LineSpec指定极坐标图中线条的线型、标记符号和颜色。
→polar(axes_handle,...)
用坐标系axes_handle中绘图。
→h=polar(...)
在h中返回图形对象的句柄。
二维/三维绘图函数汇总:
matlab绘图函数
(2):
图形属性控制
1、Matlab图形系统简介
Matlab的图形系统是面向对象的,图形对象之间的关系为父代与子代的关系。
图4 pic04.jpg
每个图形对象都拥有自己的句柄(handle)。
所有能创建图形对象的matlab函数都可给出所创建图形对象的句柄。
根(Root):
只有一个,对应于计算机屏幕,其句柄为0。
其它图形对象都是root的子对象。
图形窗口(Figure):
数目不限,句柄为正整数。
除根之外,其它对象都是figure的子对象。
其它图形对象(如坐标轴axis)的句柄为浮点数。
图形对象是由其属性来描述的。
高层绘图函数对图形对象的描述一般是缺省的或由高层绘图函数自动设置。
底层绘图函数用句柄设置图形对象的属性。
句柄属性的设置与修改
get 获得句柄图形对象的属性和返回某些对象的句柄值
set 改变图形对象的属性
delete(h) 删除句柄为h的图形对象
专用函数
gcf返回当前窗口对象的句柄 GetCurrentFigure
gca返回当前轴对象的句柄 GetCurrentAxes
gco返回当前图形对象的句柄GetCurrentObject
若一个对象的句柄已知,可以获取其"父"或"子"的句柄
f=get(h,'parent');
l=get(h,'children');
2、根对象(Root)
Root是关联计算机屏幕的一个图形对象。
Matlab系统只有一个Root对象,它没有父对象,子对象是Figure。
当启动Matlab时,Root对象就创建,用户无法再创建一个Root,也无法删除这个对象,Root的句柄值为0。
root的属性
属性名称
意义
取值
CurrentFigure
当前图形窗口的句柄
figure的句柄
children
所有子对象的句柄
句柄数组
Units
度量单位
pixel,inches等
ScreenSize
屏幕的大小
[left,bottom,width,height]
docsearch'rootproperties':
在帮助中查询root的所有属性
root的ScreenSize属性:
只读属性,默认单位为像素(pixel),由屏幕的左下角坐标、宽度、高度四个参数确定。
>>ss=get(0,'ScreenSize'),返回行向量ss=[left,bottom,width,height]
图5 pic05.jpg
3、图形窗口(Figure)
Figure对象是Matlab系统中显示的图形窗口。
用户可建立任意多个Figure窗。
所有Figure对象的父对象都是Root对象,而其他所有Matlab图形对象都是Figure的子对象。
figure():
创建图形窗口
close():
删除图形窗口
clf():
图形图形窗口中的子对象
gcf:
返回当前窗口对象的句柄
创建图形窗口:
figure
→figure 利用缺省属性值来创建新的图形窗口对象。
→figure('PropertyName',propertyvalue,...) 利用指定的属性值来创建图形窗口对象。
对于用户没有显式地定义的属性值,将其设置为默认的属性值。
→figure(h) 如果句柄h所指示的图形窗口对象存在,则将其设置为当前窗口,并将其移动到屏幕的最前方。
如果h所指示的图形窗口不存在且h是个整数(h>=1),则创建一个图形窗口,并将窗口的句柄设置为h;如果h不是整数,则返回错误信息。
→h=figure(...) 返回图形窗口对象的句柄。
备注:
为了在一个已有的图形窗口中绘制图形,这个窗口必须是激活的,或者是当前的图形窗口。
删除图形窗口:
close
→close 删除当前figure,相当于close(gcf)
→close(h) 删除由h确定的figure。
如果h是一个向量或矩阵,就删除由h指定的所有图像
→closename 删除指定名称的figure
→closeall 删除所有句柄没有隐藏的figure
→closeallhidden 删除所有figure,包括句柄隐藏的。
→status=close(...) 如果指定的figure已经被删除则返回1,否则为0。
清除图形窗口中的子对象:
clf
→clf删除当前图形窗口中、句柄未被隐藏(即它们的HandleVisibility属性为on)的图形对象。
→clf('reset') 或 clfreset删除当前图形窗口中的所有图形对象,无论其句柄是否被隐藏,同时将图形窗口的属性(除Position,Units,PaperPosition,PaperUnits外)恢复为默认值。
→clf(fig)或clf(fig,'reset') 清除由句柄为fig的图形窗口中的内容。
→figure_handle=clf(...) 返回图形窗口的句柄,
Figure的一些属性
属性名称
意义
取值
Color
背景色
颜色字符串或[rgb]
CurrentAxes
当前坐标轴句柄
坐标轴句柄
CurrentObject
当前对象的句柄
对象句柄
HandleVisibility
句柄是否可见
{on}|callback|off
NumberTitle
figure的数字标识
'on|off'
Name
名称
字符串
NextPlot
新图如何输出
new|{add}|replace|replacechildren
Position
窗口位置、大小
[left,bottom,width,height]
Resize
窗口大小是否可调
'on|off'
Toolbar
开/关工具条
'none|figure|auto'
MenuBar
开/关菜单
'none|figure|auto'
Tag
"文字标识"
字符串
WindowStyle
窗口显示模式
'normal|modal|docked'
Visible
控制可视性
'on|off'
docsearch'figureproperties':
在帮助中查询figure的所有属性
figure的Position属性
Position由行向量 [left,bottom,width,height] 确定
图6 pic06.jpg
例:
figure的Position,Color,…属性
x=0:
pi/10:
2*pi
ss=get(0,'ScreenSize')
W=ss(3);
H=ss(4);
figure
(1)
set(gcf,'Position',[W/2,H/2,W/3,H/4])
set(gcf,'Name','sin(x)的图像','NumberTitle','off')
plot(x,sin(x))
h=figure
set(h,'Position',[W/2,H/10,W/3,H/4])
set(h,'Name','cos(x)的图像','Color',[1,1,1])
set(1,'Toolbar','none','Menubar','none')
plot(x,cos(x))
图7 pic07.jpg
figure的NextPlot属性
new
创建一个新的图形窗口并作为当前窗口
add
在当前窗口中绘图,不清除任何已存在的图形对象
replacechildren
删除所有HandleVisibility属性为on的子对象,并重置figure的NextPlot属性值为add,这相当于调用clf命令
replace
移除所有子对象,不管其HandleVisibility属性值,并重置figure的属性值为默认值,
但Position、units、PaperPosition和PaperUnits属性值不被重置。
NextPlot属性重置为add。
这相当于调用clfreset命令。
e.g.
x=0:
0.1:
7;
h=figure;
plot(x,sin(x));
x=0:
0.1:
7;
h=figure;
set(h,'NextPlot','new');
plot(x,sin(x));
生成一个Figure,直接绘图
生成两个Figure,但只在第二个Figure中绘制
figure的Visible属性:
若将figure的Visible属性设为off,则在某些情况下可以大幅度提高程序运行的速度。
譬如,在保存图像的时候并不需要绘制图像,此时即可将Visible属性关掉,即变成后台绘制。
4、坐标轴(axes)
Axes对象:
在图形窗口中定义一个画图区域,父对象是Figure,子对象包括line对象、image对象、patch对象、surface对象、light对象和text对象等。
常用函数
axes():
创建坐标轴
cla:
清除坐标轴中的子对象
gca:
返回当前轴对象的句柄
axis():
设置坐标轴的常见属性
xlim()/ylim()/zlim():
设置x/y/z轴刻度范围
grid:
设置坐标轴网格线的显示
box:
设置坐标轴边框的显示
xlabel()/ylabel()/zlabel():
设置x/y/z轴的标注
创建坐标轴axes()
→axes 在当前figure内使用默认属性值来创建一个坐标轴对象。
→axes('PropertyName',propertyvalue,...) 创建具有指定的属性值的坐标轴对象。
对于其它未明确指定的属性值,MATLAB采用这些属性的默认值。
→axes(h) 当句柄为h的坐标轴对象存在时,设置该坐标轴为当前坐标轴,并使含有该坐标轴的图形窗口对象获得焦点。
同时,将该坐标轴的句柄h置于图形窗口的Children属性值的第一位,并把图形窗口的CurrentAxes属性值设置为h。
当前坐标轴为用户用来绘制图像、线条、补片、矩形、曲面以及文本图形对象的目标坐标轴。
如果用户想将坐标轴设置为当前坐标轴同时又不改变图形窗口的状态,则可以设置图形窗口的CurrentObject属性:
set(figure_handle,'CurrentAxes',axes_handle),这在一个图形窗口被最小化或者在其它窗口的后面,而用户又想设置它所包含的坐标轴为当前坐标轴时是非常有用的。
→h=axes(...) 返回创建的坐标轴对象的句柄。
axes的一些属性
属性名称
意义
取值
Color
背景色
[rgb]
ColorOrder
颜色序列
[r1g1b1;r2g2b2;…]
LineStyleOrder
线型序列
字符串-*|:
|o
NextPlot
新图如何绘制
add|{replace}|replacechildren
Position
指定位置、大小
[2002001000400]
LineWidth
坐标轴线宽
数值
TickDir
刻度线的方向
'in|out'
TickLength
刻度线的长度
[2DLength 3DLength]
docsearch'axesproperties':
在帮助中查询axes的所有属性
axes的Position属性
Position由行向量 [left,bottom,width,height] 确定
图8 pic08.jpg
axes的NextPlot属性
add
在当前坐标轴内绘图,保留所有已存在的图形对象
replacechildren
删除所有HandleVisibility属性为on的子对象,但不重置坐标轴的属性。
这相当于调用cla命令
replace
移除所有子对象,不管其HandleVisibility属性值,并重置figure的属性值为默认值,但position和Units属性除外。
这相当于clareset命令
figure
h1 = axes('position',[0.08,0.1,0.4,0.4])
h2 = axes('position',[0.6,0.1,0.35,0.7])
h3 = axes('position',[0.08,0.6,0.4,0.3])
set(h1,'Color',[0.5,0.5,0.5],'XColor',[1,0,0],'LineWidth',2)
set(h1,'TickDir','out','TickLength',[0.04,0.03])
set(h2,'TickLength',[0.06,0.02])
图9 pic09.jpg
PropertiesThatControltheX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 图形 指令