2.Matlab绘图

2.Matlab绘图


作者:Lanlor 参考:司守奎 2018/1/23 19:03:46
1.二维图形

1)·二维绘图的基本命令有plot,loglog,semilogx,semilogy 和polar。它们的使用方法基本相同,其不同特点是在不同的坐标中绘制图形。
·plot 命令使用线性坐标空间绘制图形;
·loglog 命令在两个对数坐标空间中绘制图形;
·semilogx(或semilogy)命令使用x 轴(或y 轴)为对数刻度,另外一个轴为线性刻度的坐标空间绘制图形;
·polar使用极坐标空间绘制图形。

2)plot
此二维绘图命令为了适应各种绘图需要,提供了用于控制线色、数据点和线型的3组基本参数。
·格式:plot(x,y,’color_point_linestyle’)
y与x 均为向量,且具有相同的元素个数。
用字符串‘color_point_linestyle’完成对上面3 个参数的设置。线色(r-red,g-green,
b-blue,w-white,k-black,i-invisible,y-yellow),数据点(.,o,x,+,*,S,
H,D,V,^,>,<,p)与线型(-,-.,--,:)都可以根据需要适当选择。
·当 plot(x,y)中的 x和y均为m×n矩阵时,plot 命令将绘制n条曲线。
·plot(t,[x1,x2,x3])在同一坐标轴内同时绘制三条曲线。
·如果多重曲线对应不同的向量绘制,可使用命令
plot(t1,x1,t2,x2,t3,x3),
式中x1对应t1,x2对应t2等等。在这种情况下,t1,t2和t3可以具有不同的元素个数,但要求x1,x2和x3必须分别与t1,t2和t3具有相同的元素数量。

3)subplot
·此命令使得在一个屏幕上可以分开显示n 个不同坐标系,且可分别在每一个坐标系中绘制曲线。
·格式:subplot(r,c,p)
该命令将屏幕分成r*c 个子窗口,而p表示激活第p个子窗口。窗口的排号是从左到右,自上而下。

4)在图形绘制完毕后,在图中加入标题、标号、说明和分格线等。
·这些命令有title,xlabel,ylabel,text,gtext 等。
·格式:
title(‘My Title’),
xlabel(‘My X-axis Label’),
ylabel(‘My Y-axis Label’),
text(x,y,'Text for annotation'),
gtext('Text for annotation'),
grid
gtext命令是使用鼠标器定位的文字注释命令。当输入命令后,可以在屏幕上得到一个光标,然后使用鼠标器控制它的位置。按鼠标器的左键,即可确定文字设定的位置。

5)hold on 是图形保持命令,可以把当前图形保持在屏幕上不变,同时在这个坐标系内绘制另外一个图形。hold 命令是一个交替转换命令,即执行一次,转变一个状态
(相当于hold on、hold off)

6)axis
Matlab可以自动选择坐标轴的定标尺度,也可以使用axis命令定义坐标轴的特殊定标尺度。
·格式:axis([x-min,x-max,y-min,y-max])
axis 命令的另一个作用是控制纵横尺度的比例。例如,输入axis('square')后,可得到一个显示方框,此时再在该框内绘制一个圆形时(如:plot(sin(x),cos(x)),在屏
幕上可以看到一个圆(一般情况下,由于屏幕的不规则原因,只能看到一个椭圆)。再次输入axis(‘normal’)命令,屏幕返回到一般状态。

7)命令使用实例:

①.

x=0:0.25:5;
y1=x.^0.1;
y2=x.^0.5;
y3=x.^0.8;
y4=x.^1.5;
t=0:0.001:2*pi;
hold on %当前不变,在当前坐标系绘制另一个图形
plot(3*cos(t),3*sin(t))
plot(x,y1,'bo',x,y2,'rH-')
plot(x,y3,'gp--')
plot(x,y4,'mx-.')
title('My Title')  
xlabel('My X-axis Label') 
ylabel('My Y-axis Label')
text(2,8,'Text for annotation') %坐标指定位置
gtext('Text for annotation') %光标指定位置
grid %显示网格

结果:
plot等命令运行结果

②.用极坐标绘图命令绘制方程r = cos 2θ (四叶玫瑰线)的图形。

x=0:0.1:2*pi;
r=cos(2*x);
polar(x,r)  

结果:
极坐标四叶玫瑰

③.随机地产生20 个数据,再根据这些数据画统计直方图。

x=rand(1,20);
y=round(20*x); %四舍五入
subplot(1,2,1)
hist(x) %直方图
subplot(1,2,2)
hist(y)

结果:
运用subplot和hist

2.三维图形

1)最常用的三维绘图是三维曲线图、三维网格图和三维曲面图3种基本类型。与此对应,Matlab 也提供了3 个三维基本绘图命令(三维曲线命令plot3、三维网格命令mesh 和三维曲面命令surf)。下面初步介绍其中的两个。
2)三维曲线
·plot3(x,y,z)通过描点连线画出曲线,这里x,y,z 都是n 维向量,分别表示该曲线上点集的横坐标、纵坐标、竖坐标。
·例:在区间[0,10*pi]画出参数曲线x = sin(t), y = cos(t),z = t ,并分别标注。

t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t')

结果:
三维曲线
3)三维网格
·命令mesh(x,y,z)画网格曲面。这里x,y,z 是三个同维数的数据矩阵,分别表示数
据点的横坐标、纵坐标、竖坐标,命令mesh(x,y,z)将该数据点在空间中描出,并连成
网格。
·例:绘制二元函数的三维网格图:
题目公式

x=-3:0.1:3;
y=-5:0.1:5;
x1=ones(size(y'))*x;
y1=y'*ones(size(x));
[x2,y2]=meshgrid(x,y); %生成网格矩阵
z1=(sin(x1.*y1)+eps)./(x1.*y1+eps);
z2=(sin(x2.*y2)+eps)./(x2.*y2+eps);
subplot(1,2,1),mesh(x1,y1,z1)
subplot(1,2,2),mesh(x2,y2,z2)  

2和1等效,结果:
三维网格

注:[A,B]=Meshgrid(a,b)
生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。因此命令等效于:
A=ones(size(b))a;
B=b'
ones(size(a))
meshgrid

3.符号函数的简易绘图函数 ezplot

·ezplot(f)绘制f(x)的函数图,这里f为代表数学表达式的包含单个符号变量x的字符串或符号表达式。x 轴的近似范围为[-2pi,2pi]。
ezplot(f,[xmin,xmax])使用输入参数来代替默认横坐标范围[-2pi,2pi]。
·例:画出函数 y = tan x的图形。

ezplot('tan(x)')

结果:
ezplot(‘tan(x)’)

4.绘制函数图函数 fplot

·fplot(fun,lims)绘制由字符串fun 指定函数名的函数在x轴区间为lims=[xmin, xmax]的函数图。若lims=[xmin,xmax,ymin,ymax],则y 轴也被限制。fun 必须为M文件的函数名或对变量x 的可执行字符串,此字符串被送入函数eval 后被执行。函数fun(x)必须
要返回针对向量x 的每一元素结果的向量。
·例:
题目
···--用fun1.m定义函数f(x):

function y = fun1(x);
if x<1
    y = x+1;
else 
    y = 1 +1./x; %好像不能用点除
end

--输入绘图命令:
fplot(‘fun1’,[-3,3])

···或者使用匿名函数:

fun1=@(x) (x+1)*(x<1)+(1+1/x)*(x>=1);
fplot(fun1,[-3,3]) %匿名函数就不需要单引号

结果:
函数绘图

5.画等高线的函数contour

·可以用contour命令绘制平面等高线,用contour3 命令绘制空间等高线。

·绘制平面等高线格式:
contour(x,y,z,n)
contour(x,y,z,v)
contourf(…)
·y为其横纵坐标值向量;
如果x为s维,y为m维,则z为m×s维矩阵,为对应于坐标(x,y)的高度。
参数n 为整数,指定了绘出等高线的条数。
参数v 为向量,指定了在哪些高度绘出等高线,如只想在一个高度z 绘出等高线,则v=[z,z]。
contourf(…)命令的参数与contour 命令完全相同,只是其绘出的等高线图将被自动填上颜色。

·c=contour(x,y,z,n)
c=contour(x,y,z,v)
上面2 个命令用来计算所画等高线的x,y 坐标值。

·clabel(c)
clabel(c,v)
上面2 个命令用来标注计算的c 阵处的高度值。clabel(c)将把所绘等高线全部自动
标注,clabel(c,v)将自动标注由向量v确定的若干条等高线的高度值。

等高线例:

%二维
clc;clf; %clf:用来清除图形的命令。一般在画图之前用。  clc:清除命令窗口的内容,只是清屏    
x=0:400:5600;  
y=0:400:4800;  
z=[370,470,550,600,670,690,670,620,580,450,400,300,100,150,250;
510,620,730,800,850,870,850,780,720,650,500,200,300,350,320;
650,760,880,970,1020,1050,1020,830,800,700,300,500,550,480,350;
740,880,1080,1130,1250,1280,1230,1040,900,500,700,780,750,650,550;
830,980,1180,1320,1450,1420,1400,1300,700,900,850,810,380,780,750;
880,1060,1230,1390,1500,1500,1400,900,1100,1060,950,870,900,930,950;
910,1090,1270,1500,1200,1100,1350,1450,1200,1150,1010,880,1000,1050,1100;
950,1190,1370,1500,1200,1100,1550,1600,1550,1380,1070,900,1050,1150,1200;
1430,1450,1460,1500,1550,1600,1550,1600,1600,1600,1550,1500,1500,1550,1550;
1420,1430,1450,1480,1500,1550,1510,1430,1300,1200,980,850,750,550,500;
1380,1410,1430,1450,1470,1320,1280,1200,1080,940,780,620,460,370,350;
1370,1390,1410,1430,1440,1140,1110,1050,950,820,690,540,380,300,210;
1350,1370,1390,1400,1410,960,940,880,800,690,570,430,290,210,150];  
hold on  
c=contourf(x,y,z,10); %绘出的等高线图将被自动填上颜色,画10条等高线。  
clabel(c) %把所绘等高线全部自动标注,还有一个clabel(c,v)
text(0,800,'▼\leftarrow 起点','fontsize',15,'color','r')  
text(4000,2000,'▼\leftarrow 居民点','fontsize',15,'color','r')  
text(2000,4000,'▼\leftarrow 矿区','fontsize',15,'color','b')  
line([2400,4800],[2400,0])    

%三维
figure %建立一个新图纸(figure2)  
surf(x,y,z) %建立三维曲面  
view(50,30) %view([方位角,俯视角]): 通过方位角、俯视角设置视点  
hold on  
text(0,800,680,'▼','fontsize',15,'color','r')  
text(0,600,880,'起点','fontsize',15,'color','r')  
text(4000,2000,950,'▼','fontsize',15,'color','r')  
text(4200,2000,1150,'居民点','fontsize',15,'color','w')  
text(2000,4000,1320,'▼\leftarrow 矿区','fontsize',15,'color','b')  

结果:
二维:
二维等高线
三维:
三维等高线

posted on 2018-01-23 19:04 lanlorr 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wsnanxixi/p/8337399.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值