/ 写在前面 – 我热爱技术、热爱开源。我也相信开源能使技术变得更好、共享能使知识传播得更远。但是开源并不意味着某些商业机构/个人可以为了自身的利益而一味地索取,甚至直接剽窃大家曾为之辛勤付出的知识成果,所以本文未经允许,不得转载,谢谢/


二维曲线

  • plot(x) 函数:
    • x 是实向量的话,则以 x 向量元素的下标为横坐标,元素的值为纵坐标绘制一条曲线。
    • x 是复数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制出一条曲线。
  • plot(x,y) 函数用于绘制平面上的线性坐标曲线:
    • 通常 xy 为长度相等的向量。
    • x 是向量, y 是矩阵时:
      • 如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。
      • 如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。
    • xy 是同型矩阵时:(我感觉这个比较偏了……)
      • 以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
  1. x=1:10;
  2. y=x.^2;
  3. cx=complex(x,y);% 等价于cx=x+y*i;
  4. plot(cx);

image.png

  1. x=linspace(0,2*pi,100);
  2. y=[sin(x);sin(2*x);sin(0.5*x)];
  3. plot(x,y);

image.png

当需要绘制不同长度的多条曲线时,则采用包含若干组向量对的格式来使用 plot 函数。其中,每一向量对构成一组数据的横、纵坐标,绘制一条曲线。n组向量对绘制n条曲线。

  1. plot(x1, y1, x2, y2, ..., xn, yn)

含选项的 plot 函数

格式为:

  1. plot(x, y, options)

选项 options 包括:

  • 线型: - 实线(默认)、 : 虚线、 -. 点画线、 -- 双画线
  • 颜色: r 红色、 g 绿色、 b 蓝色、 w 白色、 k 黑色、……
  • 数据点标记: * 星号、 o 圆圈、 s 方块、 p 五角星、 ^ 朝上三角符号、……

当颜色选项省略时,绘图时自动循环使用当前坐标轴的 ColorOrder 属性指定的颜色。

当数据点标记选项省略时,默认无数据点标记符号。

  1. x=(0:pi/50:2*pi)';% 注意,这里要转置,否则第3行代码会报错!
  2. y1=2*exp(-0.5*x)*[1,-1];
  3. y2=2*exp(-0.5*x).*sin(2*pi*x);
  4. x1=0:0.5:6;
  5. y3=2*exp(-0.5*x1).*sin(2*pi*x1);
  6. plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');

image.png

fplot 函数

MATLAB提供了 fplot 函数,该函数可根据参数函数的变化特性自适应地设置采样间隔:

  • 当函数值变化缓慢时设置的采样间隔大;
  • 当函数值变化剧烈时设置的采样间隔小。

fplot 函数的基本用法: fplot (f, lims, 选项) 。其中:

  • f 代表一个函数,通常采用函数句柄的形式。
  • lims 为x轴的取值范围,用二元向量 [xmin, xmax] 描述,默认值为 [-5, 5] 。选项定义与 plot 函数相同。
  1. fplot(@(x) sin(1./x),[0,0.2],'b');

image.png

如果曲线以参数方程形式给出,则 fplot 函数采用这种调用格式: fplot(funx, funy, tlims, 选项) 。其中:

  • funxfuny 代表函数,通常采用函数句柄的形式。
  • tlims 为参数函数 funxfuny 的自变量的取值范围,用二元向量 [tmin, tmax] 描述默认为 [-5, 5]

已知螺旋线的方程:
MATLAB绘图 - 图5
绘制曲线:

  1. fplot(@(t) t.*sin(t), @(t) t.*cos(t), [0, 10*pi], 'r');

image.png

绘制图形的辅助操作

其他形式的二维图形

给图形添加标注

  • title(图形标题) :给图形添加标题
  • xlabel(x轴说明) :给x轴添加说明
  • ylabel(y轴说明) :给y轴添加说明
  • text(x, y, 图形说明) :用于在指定位置 (x,y) 添加图形说明
  • legend(图例1, 图例2, ...) :用于添加图例

⚠️ 如果标题有多行,例如在坐标轴上方显示两行标题,作为标题的两个字符串要用一对大括号 {} 括起来,字符串之间用逗号 , 分隔,应该是单元矩阵。

📖 图形标题除了普通字符以外,还可以用MATLAB绘图 - 图7格式控制的符号。但是请注意,受MATLAB绘图 - 图8控制的部分要用大括号括起来MATLAB绘图 - 图9中的控制符号 \bf\it\rm 分别定义粗体、斜体、正体三种样式。

调用 title 函数时,可以修改标题文字的某些属性,格式为: title(图形标题, 属性名, 属性值) 。注意,属性名与属性值成对出现。常用属性有:

  • Color 属性:设置标题文本的颜色,其取值与 plot 函数的颜色选项相同。
  • FontSize 属性:设置标题文字的字号,默认字号为11。

📖 xlabelylabeltext 函数也可以用MATLAB绘图 - 图10格式控制的符号。

  1. x=linspace(-2*pi,2*pi,100);
  2. y=sin(x);
  3. plot(x,y);
  4. ylim([-5,5]);
  5. xlabel('{-2\pi \leq x \leq 2\pi}');
  6. text(3,0.28,'\leftarrow sin(x)');
  7. title({'MATLAB','Plot of Sine Function'},'color','b','FontSize',18);

image.png

📖 我认为 gtext(说明) 函数比 text 函数要方便一点,它没有坐标参数,执行命令时十字光标跟随鼠标移动,单击鼠标即可将文本放置在十字光标处。

坐标控制

图形保持

图形窗口的分隔

三维曲线

三维曲面

图形修饰处理

交互式绘图工具