最新最全的MATLAB绘图命令教学提纲.docx
- 文档编号:5440244
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:24
- 大小:71.37KB
最新最全的MATLAB绘图命令教学提纲.docx
《最新最全的MATLAB绘图命令教学提纲.docx》由会员分享,可在线阅读,更多相关《最新最全的MATLAB绘图命令教学提纲.docx(24页珍藏版)》请在冰豆网上搜索。
最新最全的MATLAB绘图命令教学提纲
Matlab绘图
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图
二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
一.绘制二维曲线的基本函数
在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法
plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式
plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51在[0,2pi]区间,绘制曲线
程序如下:
在命令窗口中输入以下命令
>>x=0:
pi/100:
2*pi;
>>y=2*exp(-0.5*x).*sin(2*pi*x);
>>plot(x,y)
程序执行后,打开一个图形窗口,在其中绘制出如下曲线
注意:
指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52绘制曲线
这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:
>>t=-pi:
pi/100:
pi;
>>x=t.*cos(3*t);
>>y=t.*sin(t).*sin(t);
>>plot(x,y)
程序执行后,打开一个图形窗口,在其中绘制出如下曲线
以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
实际应用中还有一些变化。
分别说明:
①
2.含多个输入参数的plot函数
plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。
含多个输入参数的plot函数调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
如下列命令可以在同一坐标中画出3条曲线。
>>x=linspace(0,2*pi,100);
>>plot(x,sin(x),x,2*sin(x),x,3*sin(x))
当输入参数有矩阵形式时,配对的x,y按对应的列元素为横坐标和纵坐标绘制曲线,曲线条数等于矩阵的列数。
>>x=linspace(0,2*pi,100);
>>y1=sin(x);
>>y2=2*sin(x);
>>y3=3*sin(x);
>>x=[x;x;x]';
>>y=[y1;y2;y3]';
>>plot(x,y,x,cos(x))
x,y都是含有三列的矩阵,它们组成输入参数对,绘制三条曲线;x和cos(x)又组成一对,绘制一条余弦曲线。
利用plot函数可以直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。
如
>>A=pascal(5)
A=
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
>>plot(A)
3.含选项的plot函数
Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。
这些选项如表所示:
线型
颜色
标记符号
-实线
b蓝色
. 点
s方块
:
虚线
g绿色
o圆圈
d菱形
-.点划线
r红色
×叉号
∨朝下三角符号
--双划线
c青色
+加号
∧朝上三角符号
m品红
*星号
<朝左三角符号
y黄色
>朝右三角符号
k黑色
p五角星
w白色
h六角星
例用不同的线型和颜色在同一坐标内绘制曲线及其包络线。
>>x=(0:
pi/100:
2*pi)';
>>y1=2*exp(-0.5*x)*[1,-1];
>>y2=2*exp(-0.5*x).*sin(2*pi*x);
>>x1=(0:
12)/2;
>>y3=2*exp(-0.5*x1).*sin(2*pi*x1);
>>plot(x,y1,'k:
',x,y2,'b--',x1,y3,'rp');
在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。
Legend标注
xlabel('时间(年份)','Fontsize',15);ylabel('老龄人口比重(%)','Fontsize',15);
legend('\fontsize{15}中国人口比重','\fontsize{15}世界人口比重','Location','NorthWest');
另外,如果要点和线一块儿画出来,可以用’b*-’这样的标识。
Matlab设置gca修改坐标显示
1、坐标轴删除
set(gca,'xtick',[])%去掉x轴的刻度
set(gca,'ytick',[])%去掉xy轴的刻度
set(gca,'xtick',[],'ytick',[])%同时去掉x轴和y轴的刻度
2、Matlab中“坐标轴刻度”的不同风格
x=1:
8;
subplot(2,2,1)
plot(x)
%tickstyle0(auto)
subplot(2,2,2)
plot(x)
set(gca,'xtick',[1368]);%style1
set(gca,'ytick',[]);%style2
subplot(2,2,3)
plot(x)
set(gca,'xtick',[1368]);
set(gca,'xticklabel',sprintf('.4f|',get(gca,'xtick')));%style3
set(gca,'ytick',[2457]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});%style4
subplot(2,2,4)
plot(x)
set(gca,'xminortick','on');%style5
set(gca,'ticklength',[0.050.025]);%style6
set(gca,'tickdir','out');%style7
另附Maltab坐标调整程序一段:
x=20:
10:
20000;
y=rand(size(x));
semilogx(x,y);
set(gca,'XLim',[2020000]);
set(gca,'XMinorTick','off');
set(gca,'XTick',[2031.563125250500100020004000800016000]);
set(gca,'XGrid','on');
set(gca,'XMinorGrid','off');
3、matlab坐标刻度调整
subplot(3,2,1)
plot(x)
title('默认格式')
subplot(3,2,2)
plot(x)
set(gca,'xtick',[1368]);
set(gca,'ytick',[]);
title('X自定义间隔,Y关闭')
subplot(3,2,3)
plot(x)
set(gca,'xtick',[1368]);
set(gca,'xticklabel',sprintf('.4f|',get(gca,'xtick')))
set(gca,'ytick',[2457]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});
title('XY自定义间隔、精度及显示方式')
subplot(3,2,4)
plot(x)
set(gca,'xminortick','on');%style5
set(gca,'ticklength',[0.050.025]);
set(gca,'tickdir','out');
title('XY坐标刻度显示方式')
subplot(3,2,5)
plot(x)
set(gca,'xtick',[min(x)(max(x)+min(x))/2max(x)]);
set(gca,'ytick',[min(x)(max(x)+min(x))/2max(x)]);
title('论文中常用的标准3点式显示')
x=20:
10:
20000;
y=rand(size(x));
subplot(3,2,6)
semilogx(x,y);
set(gca,'XLim',[2020000]);
set(gca,'XMinorTick','off');
set(gca,'XTick',[2031.563125250500100020004000800016000]);
set(gca,'XGrid','on');
set(gca,'XMinorGrid','off');
title('自定义网格显示')
%%%%%%%%%%%%%%%%%%%%%%
%顺便附上可以格式化坐标刻度的程序段
x=get(gca,'xlim');
y=get(gca,'ylim');
set(gca,'xtick',[x
(1)(x
(1)+x
(2))/2x
(2)]);
set(gca,'ytick',[y
(1)(y
(1)+y
(2))/2y
(2)]);
-------------
get(gca,'xlim');是获取最大最小刻度的
如果需要获取所有在坐标轴上显示的刻度,需要使用get(gca,'ytick')
4.双纵坐标函数plotyy
在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。
使用格式为:
plotyy(x1,y1,x2,y2)
x1,y1对应一条曲线,x2,y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。
例:
(略)
5.如何标出某个点的坐标。
matlab怎么在图上标出具体点坐标?
对巳知坐标的点,可以这样标出:
plot(5,38.45,'rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',5)
text(5,38.45,'(5,38.45)','EdgeColor','red','VerticalAlignment','bottom');
plot(38,126.36,'rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',5)
text(38,126.36,'(38,126.36)','EdgeColor','red','VerticalAlignment','bottom');
对未知坐标的点,可以先插值,再标出:
以下代码在7.1版以上均可运行。
closeall
clear,clc
x=[0123456789101112131415161718192021222324252627282930313233343536373839];
y2=[03.7510.9519.9529.338.4546.8554.5061.5568.0073.8578.9583.7588.2592.395.999.2102.2104.9107.3109.55111.65113.6115.4117.05118.55119.9121.1122.15123.05123.8124.4124.85125.25125.61125.91126.11126.26126.36126.44];
plot(x,y2);
holdon;
y3=126.44;
plot(x,y3,'-');
%Setupfittypeandoptions.
ft='linearinterp';
opts=fitoptions(ft);
opts.Normalize='on';
%Fitmodeltodata.
fitresult=fit(x',y2',ft,opts);
xx1=[6.321,11.15,21.15]; % x=[6.321,11.15,21.15]
yy1=fitresult(xx1); % 与x对应的y值
% 画点标注
fori=1:
length(xx1)
plot(xx1(i),yy1(i),'rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6)
text(xx1(i),yy1(i),['(',num2str(xx1(i),'%5.2f'),',',num2str(yy1(i),'%5.2f'),')'],'EdgeColor','red','BackgroundColor',[.7.9.7],'VerticalAlignment','bottom');
end
6、改变图形显示中的数据精度
[matlab笔记]绘图时dataTip的设置
用matlab(我用的版本是2009)绘图后,有时候需要显示某个数据据点的信息,这时候可以用工具栏上的DataCursor工具。
如下图所示
选中数据点之后,会弹出一个DataTip,DataTip显示的就是当前被选中的数据点的基本信息,比如图中显示的是坐标值。
现在就遇到一个问题了,如何自己定制这个DataTip呢?
特别是,我的数据有效数字太多时,默认情况下只能显示4位,如何让它显示的精度更高呢?
matlab提供了解决方案,不是Option,也不是Preferences,而是脚本。
我这里把matlab的m文件称作脚本。
习惯了图形界面的人可能会觉得麻烦,但是我却觉得这是最自由的解决方案。
下面以一个实例来演示操作过程:
1、绘图
x=rand(1000,1);y=rand(1000,1);plot(x,y,'*');
这样,就在[0,1]X[0,1]这样一个矩形内绘制了1000*1000个点。
绘图的时候要指定一个点的图例,不然默认情况下是不画点的,这样也就没法点选了。
2、选中DataCursor工具,这样,鼠标放到图中间会变成一个十字,这时候点击一个数据点会弹出一个DataTip框。
可以看到显示只有4位有效数字。
3、右键菜单,里面有两项"EditTextUpdateFunction"和"SelectTextUpdateFunction"。
分别表示编辑配置文件,选择配置文件(配置文件指的还是m文件)。
在未编辑之前,当前图用的是默认配置文件。
编辑之后,需要保存到一个位置,新保存的文件只对当前图有效。
下次如果还想使用这个配置文件,就要用到"SelectTextUpdateFunction"了。
4、点选"EditTextUpdateFunction",出现一个m文件编辑器。
内容如下:
functionoutput_txt=myfunction(obj,event_obj)
%Displaythepositionofthedatacursor
%obj Currentlynotused(empty)
%event_obj Handletoeventobject
%output_txt Datacursortextstring(stringorcellarrayofstrings).
pos=get(event_obj,'Position');
output_txt={['X:
',num2str(pos
(1),4)],...
['Y:
',num2str(pos
(2),4)]};
%IfthereisaZ-coordinateintheposition,displayitaswell
iflength(pos)>2
output_txt{end+1}=['Z:
',num2str(pos(3),4)];
end
眼尖的人应该一眼就看到了几个"4",没错,正是它们限制了显示精度,改成更大的数就行了。
这几行代码的意思应该很明显了。
第一行是函数原型,以%开头的是注释,pos是变量,output_txt是返回值。
二维图分两行显示X,Y坐标,如果是三维,则还会显示Z坐标。
5、保存为m文件。
注意保存的文件一定要带有.m后缀,不然matlab识别不了,从而DataTip会显示为Errorincustomdatatipstringfunction。
这个错误说函数返回错误,实际上就是不能识别。
6、保存完了,就算完事了。
以后可以直接改那个已经保存的文件,然后绘图后,选择这个文件。
再次提醒,每次绘图时使用的都是默认配置,想要特定的效果,要么重新写,要么选择指定配置文件。
7、关于这个配置文件本身,还有许多值得探讨的地方。
我这个例子只能更改显示精度,实际上,它还有许多可以自由定制的地方。
比如,可以显示点的序号,即第几个点。
在配置文件末尾加上一句:
output_txt{end+1}=['index:
',num2str(event_obj.DataIndex)];
二.绘制图形的辅助操作
绘制完图形以后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强。
1.图形标注
在绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。
有关图形标注函数的调用格式为:
title(’图形名称’)(都放在单引号内)
xlabel(’x轴说明’)
ylabel(’y轴说明’)
text(x,y,’图形说明’)
legend(’图例1’,’图例2’,…)P190
其中,title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。
text函数是在坐标点(x,y)处添加图形说明。
(P88或用gtext命令)。
legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还可以通过鼠标移动图例,将其放到所希望的位置。
除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。
上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex(一种流行的数学排版软件)格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等内容。
在Matlab支持的LaTex字符串中,用/bf,/it,/rm控制字符分别定义黑体、斜体和正体字符,受LaTex字符串控制部分要加大括号{}括起来。
例如,text(0.3,0.5,’theusful{/bfMATLAB}’),将使MATLAB一词黑体显示。
一些常用的LaTex字符见表,各个字符可以单独使用也可以和其他字符及命令配合使用。
如text(0.3,0.5,’sin({/omega}t+{/beta})’)
将得到标注效果。
标识符
符号
标识符
符号
标识符
符号
/alpha
/epsilon
/infty
/beta
/eta
/int
/gamma
/Gamma
/partial
/delta
/Delta
/leftarrow
/theta
/Theta
/rightarrow
/lambda
/Lambda
/downarrow
/xi
/Xi
/uparrow
/pi
/Pi
/div
/omega
/Omega
/times
/sigma
/Sigma
/pm
/phi
/Phi
/leq
/psi
/Psi
/geq
/rho
/tau
/neq
/mu
/zeta
/forall
/nu
/chi
/exists
2.坐标控制
在绘制图形时,Matlab可以自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰的显示出来。
所以,一般情况下用户不必选择坐标轴的刻度范围。
但是,如果用户对坐标不满意,可以利用axis函数对其重新设定。
其调用格式为
axis([xminxmaxyminymaxzminzmax])
如果只给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。
如果给出了全部参数,则绘制出三维图形。
axis函数的功能丰富,其常用的用法有:
axisequal:
纵横坐标轴采用等长刻度
axissquare:
产生正方形坐标系(默认为矩形)
axisauto:
使用默认设置
axisoff:
取消坐标轴
axison:
显示坐标轴
还有:
给坐标加网格线可以用grid命令来控制,gridon/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。
给坐标加边框用box命令控制。
和grid一样用法
例:
绘制分段函数,并添加图形标注。
(略)
3.图形保持
一般情况下,每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令hold。
holdon/off命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。
例:
(略)
4.图形窗口分割
在实际应用中,经常需要在一个图形窗口中绘制若干个独立的图形,这就需要对图形窗口进行分割。
分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。
同一图形窗口下的不同图形称为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 MATLAB 绘图 命令 教学 提纲