MATLAB二维图形绘图入门技巧
一、plot函数
1.plot函数的基本应用格式:
plot(x,y) %x,y为长度相同的向量,存储x坐标和y坐标。 绘图时数据需要对应排序好。 例51 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 21.510.50-0.5-1-1.501234567 例52 >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) .. .. ..
.. ..
21.510.50-0.5-1-1.5-2-4-3-2-101234 以上提到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)) 3210-1-2-301234567 当输入参数有矩阵形式时,配对的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)又组成一对,绘制一条余弦曲线。 3210-1-2-301234567 注:linspace是Matlab中的一个指令,用于产生指定围的指定数量点数,相邻数据跨度相同,并返回一个行向量。调用方法:linspace(x1,x2,N)。功能:用于产生x1,x2之间的N点行矢量,相邻数据跨度相同。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。 举例如下:
>>X=linspace(5,100,20) % 产生从5到100围的20个等分数据 X =
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 ps:这和X=[5 : 5 : 100]的效果是一样的。 3.plot函数画矩阵
利用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) 70605040302010011.522.533.4.55 注:帕斯卡矩阵:由辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。 辉三角形表是二次项 (x+y)^n 展开后的系数随自然数 n 的增大组成的一个三角形表。 如4阶帕斯卡矩阵为: Pascal(4)= [1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20] pascal(n)是矩阵实验室(Matrix Laboratory)MATLAB中的命令,利用pascal()命令可以在矩阵实验室中方便的得到任意阶帕斯卡矩阵。设A为帕斯卡矩阵,则在MATLAB命令窗口中输入A=pascal(n),n为正整数,可得到阶数为n的帕斯卡矩阵。 4. plot函数生成的图像设置
Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所示:
线型 - 实线 : 虚线 -. 点划线 -- 双划线 颜色 b蓝色 g绿色 r红色 c青色 m品红 y黄色 k黑色 . 点 字母o 圆圈 字母x 叉号 + 加号 * 星号 标记符号 s 方块 d 菱形 ∨朝下三角符号 ∧朝上三角符号 <朝左三角符号 >朝右三角符号 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'); 21.510.50-0.5-1-1.5-201234567 在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。 几组例子: 指令 图例 Y=[1,3,6,5,9,0,2]; plot(Y); .. .. ..
.. ..
X=0: pi/10: pi*2; Y=sin(X); plot(X,Y); X=0: pi/10: pi*2; Y1=sin(X); Y2=cos(X); Plot(X,Y1,X,Y2); 指令 图例 Y=[1,3,6,5,9,0,2]; plot(Y, 'r-+'); X=0: pi/10: pi*2; Y=sin(X); plot(X,Y, 'b-.'); X=0: pi/10: pi*2; Y1=sin(X); Y2=cos(X); plot(X,Y1,'r+-',X,Y2,'b-*');
对plot函数生成的图像进行线宽、字体等设置
.. .. ..
.. ..
plot(X1,Y1,LineSpec,’PropertyName’,PropertyValue) 对plot生成的图形对象,用指定的properties进行设置。 PropertyName
Color 非标准颜色可用[r,g,b]指定,r,g,b取0和1之间的数值。 LineWidth 线宽 LineStyle 线型 Marker 点标记
MarkerEdgeColor 点标记边框的颜色 MarkerFaceColor 点标记面积的颜色 MarkerSize 点标记的大小 例
X=0:1:20; Y=sin(X);
plot(X,Y,'--rs','linewidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
10.80.60.40.20-0.2-0.4-0.6-0.8-102468101214161820
X=0:1:20; Y=sin(X);
plot(X,Y,'--kx','linewidth',5,'MarkerEdgeColor','b','MarkerFaceColor','r','MarkerSize',20);
10.80.60.40.20-0.2-0.4-0.6-0.8-102468101214161820
.. .. ..
.. ..
上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex(一种流行的数学排版软件)格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等容。在Matlab支持的LaTex字符串中,用/bf , /it , /rm控制字符分别定义黑体、斜体和正体字符,受LaTex字符串控制部分要加大括号{}括起来。例如,text(0.3,0.5,’the usful {/bf MATLAB}’),将使MATLAB一词黑体显示。一些常用的LaTex字符见表,各个字符可以单独使用也可以和其他字符及命令配合使用。如text(0.3 ,0.5 ,’sin({/omega}t+{/beta})’)
常用的希腊字母等特殊字符用 \\加拼音如:
\\后字母大写的,表示是大写(如Ω \\Omega),小字母的,表示小写(如ω \\omega) << \\ll >> \\gg
标识符 符号 标识符 符号 标识符 /alpha 符号 /epsilon /ingty ε /int η /beta β /eta /gamma γ /Gamma Г /partial /delta δ /Delta Δ /leftarrow 左箭头 /theta θ /Theta Θ /rightarrow 右箭头 /lambda /Lambda Λ /downarrow 下箭头 λ /xi /pi ξ /Xi π /Pi /uparrow Ξ /div Π 上箭头 除号 叉乘 + < > 不等于 /omega ω /Omega Ω /times /sigma σ /Sigma Σ /pm /phi /psi /rho /mu /nu φ /Phi ψ /Psi /leq Φ /geq Ψ /neq τ /forall ζ /exists χ /tau μ /zeta υ /chi
在Matlab中输入上标、下标、特殊符号或字体: 上标用 ^(指数),下标用 _(下划线) 输下标:_{wb} 输上标:^{0.5}
调用方式为: ^{任意字符}, _{任意字符}, 注意{}的使用! 例:
.. .. ..
.. ..
figure, title('\\zeta^{-t}sint');
figure, title('x~{\\chi}_{\\alpha}^{2}(3)');
二、坐标轴设置
1.坐标轴名称
格式:xlabel(‘string’) Ylabel(‘string’) %分别给x轴和y轴添加标签 2.围设置:
a. axis([xmin xmax ymin ymax])设置坐标轴在指定的区间。axis([-0.1, 8.1, -1.1, 1.1]); % 坐标轴的显示围
b. axis auto 将当前绘图区的坐标轴围设置为MATLAB自动调整的区间 c. axis manual 冻结当前坐标轴围,以后叠加绘图都在当前坐标轴围显示
d. axis tight 采用紧密模式设置当前坐标轴围,即以用户数据围为坐标轴围比例。 e. axis equal 等比例坐标轴
f. axis square 以当前坐标轴围为基础,将坐标轴区域调整为方格形
g. axis normal 自动调整纵横轴比例,使当前坐标轴围的图形显示达到最佳效果 围选项和比例设置可以联合使用,默认的设置为axis auto normal h. axisoff; %去掉坐标轴 i. axistight; %紧坐标轴 3.坐标轴其他参数设置:
x = -pi/2:0.01:pi;
plot(x,sin(x)) %先绘制个基本图形 % gca: gca, h=figure(...);
set(gca, 'XLim',[-pi/2pi]); %X轴的数据显示围 set(gca,'XTick',[-pi/2:pi/4:pi]); %X轴的记号点
.. .. ..
.. ..
set(gca,'XTick',[ ]); %消除X轴的记号点
set(gca,'XTickLabel',{'-pi/2' '-pi/4:' '0' 'pi/4' 'pi/2' 'pi*3/4''pi'}) % X轴的记号
set(gca,'XGrid','on'); %X轴的网格,竖线网格 set(gca,'XDir','reverse'); %逆转X轴 set(gca,'XColor','red'); %X轴的颜色
set(gac,'Xscale','log') % x轴以log 形式显示 set(gac,'YAxisLocation','right') %Y轴刻度放右边 set(gca,'FontName','Times New Roman','FontSize',14) %设置坐标轴刻度字体名称,大小
'FontWeight', 'bold' 加粗 'FontAngle', 'italic' 斜体。对字体的设置也可以用在title, xlabel, ylabel,legend等中,比如: set(get(gca, 'xlabel'),'FontName','Times New Roman','FontSize',14,'FontWeight','bold')
注:gca 是用来返回当前axes (坐标图)对象的句柄
plot(rand(2,1)) % 画一图
set(gca,'xgrid','on') % gca表示当前的图,此时x轴添加了网格线 4.坐标轴加网格线和边框
给坐标加网格线可以用grid命令来控制,grid on/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。 给坐标加边框用box命令控制。和grid一样用法
三、图像控制
1.迭加绘图
<1>hold on %保留当前图像与当前坐标轴的属性值,使用后面的图形命令只能在当前存在的坐标轴中增加图形。
<2>hold off %在绘制新图形之前,重新设置坐标轴的属性为默认值,关闭hold on功能。
<3>hold %在on和off之间切换,即在增加图形和覆盖图形之间切换。
<4>hold all %保留当前颜色和线型,在绘制随后的图形时使用当前颜色和线型。 2.清空图像
clf %清除所有当前图像窗口 3.图名
格式:title(‘string’) 在当前坐标轴上方正放置字符串string做为标题。
.. .. ..
.. ..
4.图片大小以及线宽和字号命令.
set(gcf,'Units','centimeters','Position',[1010 7 5]);%设置图片大小为7cm×5cm %(the first element is the relative distance of the axes to the left edge of the figure,...
%the second the vertical distance from the bottom, and then the width and height; set(gca,'Position',[.13 .17 .80 .74]); %设置xy轴在图片中占的比例 set(get(gca,'XLabel'),'FontSize',8); %图上文字为8 point或小5号 set(get(gca,'YLabel'),'FontSize',8); set(get(gca,'TITLE'),'FontSize',8); set(gca,'fontsize',8);
set(gca,'linewidth',0.5); %坐标线粗0.5磅
set(gca,'box','off'); %Controls the box around the plotting area
set(get(gca,'Children'),'linewidth',1.5); %设置图中线宽1.5磅
5.legend函数的基本用法
legend (‘string1’, ‘string2’, ‘string3’, ...)
分别将字符串1、2、3…标注到图中,每个字符串对应的图标为画图时的图标。 例如:
plot(x,sin(x),'.b',x,cos(x),'+r')
legend('sin','cos')这样可以把\".\"标识为'sin',把\"+\"标识为\"cos\"
legend (...,'Location',LOC) %指定图例标识框的位置 'North' 图例标识放在图顶端 'South' 图例标识放在图底端 'East' 图例标识放在图右方 'West' 图例标识放在图左方
'NorthEast' 图例标识放在图右上方(默认) 'NorthWest 图例标识放在图左上方 'SouthEast' 图例标识放在图右下角 'SouthWest' 图例标识放在图左下角 (以上几个都是将图例标识放在框图)
'NorthOutside' 图例标识放在图框外侧上方 'SouthOutside' 图例标识放在图框外侧下方 'EastOutside' 图例标识放在图框外侧右方 'WestOutside' 图例标识放在图框外侧左方 'NorthEastOutside' 图例标识放在图框外侧右上方 'NorthWestOutside' 图例标识放在图框外侧左上方 'SouthEastOutside' 图例标识放在图框外侧右下方 'SouthWestOutside' 图例标识放在图框外侧左下方 (以上几个将图例标识放在框图外)
'Best' 图标标识放在图框不与图冲突的最佳位置
.. .. ..
.. ..
'BestOutside' 图标标识放在图框外使用最小空间的最佳位置 还是用上面的例子
legend('sin','cos','location','northwest')可以将标识框放置在图的左上角。 6.多子图
在同一图形框布置几幅的子图。
格式:subplot(m,n,k) %将一个图形窗口分成m*n个小窗口(子图),k是子图的编号。序号原则是:左上方的为第一幅,然后向右、向下依次排好。
subplot(‘Position’,[left bottom width height]) %在由4个元素指定的位置上创建坐标轴。 x=-4:0.1:4; subplot(2,2,1);
y1=1/sqrt(2*pi)*exp(-1/2*x.^2), plot(x,y1);
xlabel('变量x'),ylabel('变量密度y'),title('正太分布N(0,1)'); subplot(2,2,2);
y2=1/sqrt(2*pi)/2*exp(-1/2/4*x.^2), plot(x,y2);
xlabel('变量x'),ylabel('概率密度y') title('正太分布N(0,4)'); subplot(2,2,3);
y3=1/sqrt(2*pi)/0.5*exp(-1/2/(0.5^2)*(x-1).^2); plot(x,y3);
xlabel('变量x'),ylabel('概率密度y'),title('正太分布N(1,1/4)'); subplot(2,2,4);
y4=1/sqrt(2*pi)/0.5*exp(-1/2/(0.5^2)*(x+1).^2), plot(x,y4)
xlabel('变量x'),ylabel('概率密度y'),title('正太分布N(-1,1/4)')
.. .. ..
.. ..
7.多个图形窗口
格式: Figure(n) %创建新的图形窗口或显示当前图形窗口。n是这个窗口的编号,figure(1)是默认值,不需要声明。
>> t=-4:0.1:4;x=sin(t);plot(t,x,'b^') >> t=-4:0.1:4;x=sin(t);plot(t,x,'b^')
>> xlabel('t');ylabel('x');title('函数x=sint的图形'); >> figure(2)
>> y=cos(t);plot(t,y,'kp');
>> xlabel('t');ylabel('y');title('函数y=cost的图形'); >> figure(3)
>> z=sin(t).*cos(t);plot(t,z,'kh')
>> xlabel('t');ylabel('z');title('函数z=sincost的图形')
.. .. ..
.. ..
8.text函数
text(x,y,’图形说明’)
text函数是在坐标点(x,y)处添加图形说明 例
text(3.5, 0.6, '曲线比较');
x=[1.6*pi, 1.6*pi]; y=[-0.3, 0.8]; s=['曲线cos'; '曲线sin']; text(x,y,s);
.. .. ..
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务