[Matlab] 高层绘图 1

  1. meshgrid 二维和三维网格
 **语法**
 
**[X,Y] = meshgrid(x,y)

[X,Y] = meshgrid(x)

[X,Y,Z] = meshgrid(x,y,z)

[X,Y,Z] = meshgrid(x)**

-----------------------------------------------------------------------------------------------------------------------

**说明**

[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本; Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。

[X,Y] = meshgrid(x)[X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。

[X,Y,Z] = meshgrid(x,y,z) 返回由向量 x、y 和 z 定义的三维网格坐标。X、Y 和 Z 表示的网格的大小为 length(y)×length(x)×length(z)[X,Y,Z] = meshgrid(x)[X,Y,Z] = meshgrid(x,x,x) 相同,并返回网格大小为 length(x)×length(x)×length(x) 的三维网格坐标。

-----------------------------------------------------------------------------------------------------------------------
**二维网络**

*示例1*
使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标。
>>x = 1:3;
>>y = 1:5;
>>[X,Y] = meshgrid(x,y)

X = 5×3

     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3

Y = 5×3

     1     1     1
     2     2     2
     3     3     3
     4     4     4
     5     5     5
     
*示例2*
在二维网格上计算表达式 x^2+y^2>>X.^2 + Y.^2
ans = 5×3

     2     5    10
     5     8    13
    10    13    18
    17    20    25
    26    29    34

--------------------
**绘制曲面图**

使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格。
 
x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);
在二维网格上计算并绘制函数 f(x,y)=xe^(−x^2−y^2)。

F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)surf(x,y,x.*exp(-x.^2-(y').^2))

在这里插入图片描述

**创建三维绘图**

网格图
mesh 函数可创建线框网格图。默认情况下,网格图颜色与曲面高度成正比。

>> z = peaks(25);         %  z=peaks(n); 返回一个n*n的矩阵
>> figure
>> mesh(z)

网格图

2. **曲面图**
surf 函数用于创建三维曲面图。

surf(z)
colormap(jet)    % change color map

曲面图

**曲面图(着色)**
surfl 函数使用基于颜色图的光照创建曲面图。为了实现更平滑的颜色过渡,请使用具有线性强度变化的颜色图,如 pink。

surfl(z)
colormap(pink)    % change color map
shading interp    % interpolate colors across lines and faces

曲面图(着色)

**等高线图**
3. contour 函数用于创建包含常量值等高线的绘图。

contour(z,16)
colormap default    % change color map

在这里插入图片描述

4. **subplot**
在平铺位置创建坐标区

**语法**
subplot(m,n,p)
subplot(m,n,p,'replace')
subplot(m,n,p,'align')
subplot(m,n,p,ax)
subplot('Position',pos)
subplot(___,Name,Value)
ax = subplot(___)
subplot(ax)

**说明**

**subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。**

subplot(m,n,p,'replace') 删除位置 p 处的现有坐标区并创建新坐标区。

subplot(m,n,p,'align') 创建新坐标区,以便对齐图框。此选项为默认行为。

subplot(m,n,p,ax) 将现有坐标区 ax 转换为同一图窗中的子图。

subplot('Position',pos) 在 pos 指定的自定义位置创建坐标区。使用此选项可定位未与网格位置对齐的子图。指定 pos 作为 [left bottom width height] 形式的四元素向量。如果新坐标区与现有坐标区重叠,新坐标区将替换现有坐标区。

subplot(___,Name,Value) 使用一个或多个名称-值对组参数修改坐标区属性。在所有其他输入参数之后设置坐标区属性。

ax = subplot(___) 创建一个 Axes 对象、PolarAxes 对象或 GeographicAxes 对象。以后可以使用 ax 修改坐标区。

subplot(ax) 将 ax 指定的坐标区设为父图窗的当前坐标区。如果父图窗尚不是当前图窗,此选项不会使父图窗成为当前图窗。

**示例**
1.子图的象限
subplot(2,2,1)
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Subplot 1: sin(x)')

subplot(2,2,2)
y2 = sin(2*x);
plot(x,y2)
title('Subplot 2: sin(2x)')

subplot(2,2,3)
y3 = sin(4*x);
plot(x,y3)
title('Subplot 3: sin(4x)')

subplot(2,2,4)
y4 = sin(8*x);
plot(x,y4)
title('Subplot 4: sin(8x)')

在这里插入图片描述

2.大小不同的子图
subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')

subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')

**subplot(2,2,[3,4]);**
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')

在这里插入图片描述

3.自定义位置上的子图
创建包含两个未与网格位置对齐的子图的图窗。为每个子图指定一个自定义位置。
**pos1 = [0.1 0.3 0.3 0.3];**
**subplot('Position',pos1)**
y = magic(4);
plot(y)
title('First Subplot')

**pos2 = [0.5 0.15 0.4 0.7];
subplot('Position',pos2)**
bar(y)
title('Second Subplot')

在这里插入图片描述

要清除图窗的内容,请使用 clf。例如,您可以在创建新子图布局之前清除图窗中的现有子图布局。
Matlab官方文档的搬运工 (_)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值