Matlab图形功能与图像绘制(重叠与多区绘图、二维、三维、等值线)

目录

想查找相关内容也可在页面按ctrl+F搜索文字

一、MATLAB的图形功能

二、瞄点连线绘图(plot)

三、绘图控制——坐标系设置

四、重叠绘图与多区绘图

1.重叠绘图(hold on;hold off)

2.多区绘图(subplot(m,n,p))

五、三维空间曲线绘制(plot3(x,y,z))

六、网格点的坐标生成 / 曲面绘制

七、等值线绘制(contour/contour3)

七、曲面颜色控制(colormap)


一、MATLAB的图形功能

二、瞄点连线绘图(plot)

plot(x,y)

x的分量做横坐标,对应的y分量做纵坐标,描点作图。

plot(x1,y1, x2,y2,…)

同时绘制(x1,y1)、(x2,y2)等多条曲线。

%示例
x=0:0.1:2*pi;
plot(x,sin(x),x,cos(x))

plot(x,y,'clor-linestyle-marker'…)

在plot中可设定颜色、线型、数据点标记,clor-linestyle-marker为一字符串,由代表颜色、线型、数据点标记的字符组成。(颜色、线性、标记可以调换顺序)

(color)颜色字符:y(黄); r(红); g(绿); b(蓝); w(白); k(黑);m(紫);c(青)。

(linestyle)线型字符有:-(实线); :(点线); -.(点划线); --(虚线)。

(marker)数据点标记字符: .(小黑点); +(加号); *(星号); o(小圆圈); pentagram(五角星)。

%示例
x=0:0.1:2*pi;
plot(x,sin(x),'-r',x,cos(x),'ob')

ezplot(f)

对绘图细节控制要求不高的话还可用简易绘图指令ezplot(f)

好处:只需输入函数,默认范围。无需自己离散,去掉采样过程。

示例:

f=@(x) 2*sin(3*x)-1 ;
ezplot(f)

三、绘图控制——坐标系设置

如不指定,MATLAB将自动设置纵横坐标比例和显示范围,若不满意,可用axis指令控制。常用的形式有

  • axis([xmin xmax ymin ymax])  %坐标刻度范围
  • axis equal   %各坐标轴单位长度相同
  • axis square  %图框呈正方形
  • axis off   %取消坐标轴显示

图形标注:

  • xlabel ('字符串')
  • ylabel ('字符串')
  • zlabel ('字符串')
  • title('字符串')        % 图形窗标题
  • text(x,y,'字符串')   %图形窗内点(x,y)出贴标签
  • gtext ('字符串')      %鼠标点击处贴标签
  • grid on/off             %打开/关闭网格参考线

四、重叠绘图与多区绘图

1.重叠绘图(hold on;hold off)

  • hold on  保持原坐标属性,可以叠加图形。
  • hold off  重设坐标属性,后图覆盖前图。

示例:

x=0:0.1:6;
y=sin(x);
z=cos(x);
u=cos(2*x);
hold on
plot(x,y,'r')
plot(x,z,'b')

hold off 
plot(x,u)

2.多区绘图(subplot(m,n,p))

用subplot(m,n,p)可在一个图形窗口内分割出m×n个绘图区,并指定当前绘图区为第p个。

示例:

%输入数据
x=linspace(0,2*pi,30);y=sin(x);
z=cos(x);u=2*sin(x).*cos(x);v=sin(x)./cos(x);

%绘图过程不要关闭Figure窗口
subplot(2,2,1),plot(x,y),title('y=sinx')
subplot(2,2,2),plot(x,z),title('z=cosx')
subplot(2,2,3),plot(x,u),title('u=sin2x')
subplot(2,2,4),plot(x,v),title('v=tanx')

五、三维空间曲线绘制(plot3(x,y,z))

用plot3(x,y,z)指令可以绘制空间曲线,其中x、y、z是曲线上点的坐标向量。(关键:事先准备好曲线上顺序采样点的三维坐标数组)

示例

%输入数据
t=0:pi/50:10*pi;

%绘图
plot3(sin(t),cos(t),t)

电脑绘图的本质是描点绘图,所以必须把控制曲面形状的点坐标准备好,通常是曲面上的网格点。

六、网格点的坐标生成 / 曲面绘制

  • [X,Y]=meshgrid(x,y):指令将生成以x向量各分量为横坐标的竖线与以y向量各分量为纵坐标的横线相交形成的矩形网格点坐标矩阵X和Y。(用Z=fun(X,Y)生成Z坐标)
  • [X,Y,Z]=sphere(n):将生成单位球面上(n+1)2个网格点坐标矩阵
  • [X,Y,Z] = cylinder:高度为1,z为中轴,单位圆柱面 [X,Y,Z] = cylinder(r) 旋转面,r为旋转半径(母线)向量.
  • [X,Y,Z] = cylinder(r,n) :n为旋转圆周上等分采样数.
  • mesh(X,Y,Z):画三维曲面网格
  • meshc(X,Y,Z): 画带等值线的三维曲面网格
  • meshz(X,Y,Z): 画带底座的三维曲面网格 surf(X,Y,Z)  画三维曲面
  • surfc(X,Y,Z):画带等值线的三维曲面 浓淡处理指令shading的使用方式:
  • shading flat:每个小贴片都有一种颜色。
  • shading faceted: 在flat用色基础上,在贴片四周勾画出黑色网线。
  • shading interp: 不同贴片间颜色通过插值而平滑过渡。

示例:

[X1,Y1]=meshgrid([-3:.1:3]);
Z1=sin(X1.^2+Y1.^2)./sqrt(X1.^2+Y1.^2+eps);
[X0,Y0,Z0]=sphere(20);
X2=X0+1;
Y2=Y0+1;
Z2=0.8*Z0+2;
surf(X1,Y1,Z1) ; 
hold on
mesh(X2,Y2,Z2) ;
hold off
axis equal
shading interp

七、等值线绘制(contour/contour3

  • contour(X,Y,Z)    画等高线
  • contour3(X,Y,Z)  画三维等高线

示例:

[X,Y,Z]=peaks(30);
surf(X,Y,Z)
figure(2);
contour(X,Y,Z,16)
figure(3); contour3(X,Y,Z,16)

七、曲面颜色控制(colormap)

  • colormap(maps):其中maps为m×3的调色盘矩阵,它的每一行是RGB三原色数组;
  • colormap('调色盘名'): 其中预设的调色盘名有: hot,cool,bone,gray,hsv,jet,pink,winter,summer, spring等;
  • caxis([a,b]):指令指定a,b间的实际数据与调色盘中所有颜色相对应;
  • colorbar('vert'),colorbar('horiz'):colorbar指令可将调色盘中所有颜色用颜色尺条显示出来。
  • surf(X,Y,Z,C):用指定颜色画曲面。其中C为与Z结构相同的颜色矩阵,若C缺省则默认为Z。

示例:

colormap('winter')
map=[1,1,0;0,1,1;1,0,1;1,0,0;0,1,0;0,0,1]
colormap(map);[X,Y,Z]=peaks(30);
surf(X,Y,Z)

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值