当前位置: 首页 > news >正文

MATLAB学习文档(二十四)

参考资料:MATLAB 教程新手入门篇——数学建模清风主讲

目录

9.1.7 图形的组成元素

9.2二维平面上的线图(plot)及通用绘图操作

9.2.1 使用 plot 函数绘制线图

9.2.1.1 plot 函数的基础用法

向量和矩阵数据

表数据

其他选项

参数说明

LineSpec 说明

举例

注意事项

9.2.1.2 plot 函数的名称 - 值参

使用示例

注意事项

更多名称-值参数

9.2.2 hold on/hold off:同一个坐标区中绘制多个图形

功能概述

详细语法与参数说明

核心要点

举例说明

示例 1:基础叠加绘图

示例 2:解决名称-值参数无法分别设置的问题

总结

9.2.3 使用 legend 函数添加图例

功能概述

详细语法与参数说明

legend 函数的语法支持多种调用方式

'Location' 参数的可选值

举例说明

示例 1:基础用法与位置调整

示例 2:使用句柄控制图例内容

总结

9.2.4 使用 text 函数在图形中添加文本

功能概述

详细语法与参数说明

支持丰富的名称-值参数来控制文本的外观。

常用名称-值参数

核心要点

举例说明

示例 1:标记数据点

示例 2:添加数学公式

总结


9.1.7 图形的组成元素

9.2二维平面上的线图(plot)及通用绘图操作

9.2.1 使用 plot 函数绘制线图

9.2.1.1 plot 函数的基础用法

官网截屏:

向量和矩阵数据
  • plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。
  • 要绘制由线段连接的一组坐标,请将 X 和 Y 指定为相同长度的向量。
  • 要在同一组坐标区上绘制多组坐标,请将 X 或 Y 中的至少一个指定为矩阵。
  • plot(X,Y,LineSpec) 使用指定的线型、标记和颜色创建绘图。
  • plot(X1,Y1,...,Xn,Yn) 在同一组坐标轴上绘制多对 x 和 y 坐标。此语法可替代将坐标指定为矩阵的形式。
  • plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) 可为每个 x-y 对组指定特定的线型、标记和颜色。您可以对某些 x-y 对组指定 LineSpec,而对其他对组省略它。例如,plot(X1,Y1,"o",X2,Y2) 对第一个 x-y 对组指定标记,但没有对第二个对组指定标记。
  • plot(Y) 绘制 Y 对一组隐式 x 坐标的图:

如果 Y 是向量,则 x 坐标范围从 1 到 length(Y)。

如果 Y 是矩阵,则对于 Y 中的每个列,图中包含一个对应的行。x 坐标的范围是从 1 到 Y 的行数。

如果 Y 包含复数,MATLAB® 绘制 Y 的虚部对 Y 的实部的图。如果同时指定了 X 和 Y,虚部将被忽略。

  • plot(Y,LineSpec) 使用隐式 x 坐标绘制 Y,并指定线型、标记和颜色。
表数据
  • plot(tbl,xvar,yvar) 绘制表 tbl 中的变量 xvar 和 yvar。要绘制一个数据集,请为 xvar 指定一个变量,为 yvar 指定一个变量。要绘制多个数据集,请为 xvar、yvar 或两者指定多个变量。如果两个参量都指定多个变量,它们指定的变量数目必须相同。 (自 R2022a 起)
  • plot(tbl,yvar) 绘制表中的指定变量对表的行索引的图。如果该表是时间表,则绘制指定变量对时间表的行时间的图。 (自 R2022a 起)
其他选项
  • plot(ax,___) 在目标坐标区上显示绘图。将坐标区指定为上述任一语法中的第一个参量。
  • plot(___,Name,Value) 使用一个或多个名称-值参量指定 Line 属性。这些属性应用于绘制的所有线条。需要在上述任一语法中的所有参量之后指定名称-值参量。有关属性列表,请参阅 Line 属性。
  • p = plot(___) 返回一个 Line 对象或 Line 对象数组。创建绘图后,使用 p 修改该绘图的属性。有关属性列表,请参阅 Line 属性。
参数说明

参数

说明

x

横坐标数据,可以是向量或矩阵。

y

纵坐标数据,可以是向量或矩阵。

LineSpec (可选)

用于指定线型、标记和颜色,可以使用符号或字符串来表示。

LineSpec 说明

符号/字符串

说明

线型

’ -’ 实线, ’ --’ 虚线, ‘:’ 点线, ‘-.’ 点划线

标记

’ o’ 圆圈, ’ *’ 星号, ’ +’ 加号, ’ x’ 叉号

颜色

’ r’ 红色, ’ g’ 绿色, ’ b’ 蓝色, ’ k’ 黑色, ’ c’ 青色, ’ m’ 品红色, ’ y’ 黄色

举例
% 绘制简单线图x = [1 2 3 4];y = [2 3 5 7];plot(x, y);% 绘制带标记和颜色的线图plot(x, y, 'ro-');% 绘制多条线图x1 = [1 2 3 4];y1 = [2 3 5 7];x2 = [1 3 5 7];y2 = [4 6 8 10];plot(x1, y1, 'r-', x2, y2, 'b--');
注意事项
  1. LineSpec 中线型、标记和颜色的顺序可以任意排列。
  2. 如果不指定 LineSpec,则使用默认的实线、无标记和默认颜色。
  3. 可以只指定线型、标记或颜色中的一项或两项。
  4. 如果不指定横坐标数据,则默认横坐标为 1, 2, ... 的序列。
  5. 可以使用矩阵作为 x 或 y 的输入,此时会绘制多条线图。
  6. 可以重复输入 x 和 y,同时绘制多组线图。
9.2.1.2 plot 函数的名称 - 值参

plot 函数除了支持 LineSpec 参数控制线条颜色、线型和标记形状外,还支持使用名称-值参数进行更精细的调整,例如线条宽度、标记大小、标记颜色等。

以下是一些常用名称-值参数的总结:

参数名称

含义

默认值

示例代码

Color

线条颜色

[0 0.4470 0.7410] (蓝色)

plot(x,y,'Color',[1,0,0]) (红色)

LineWidth

线条宽度

0.5

plot(x,y,'LineWidth',2) (宽度为2)

Marker

标记符号

‘none’

plot(x,y,'Marker','o') (圆形标记)

MarkerSize

标记大小

6

plot(x,y,'MarkerSize',10) (大小为10)

MarkerEdgeColor

标记的轮廓颜色

‘auto’

plot(x,y,'MarkerEdgeColor','r') (红色轮廓)

MarkerFaceColor

标记填充颜色

‘none’

plot(x,y,'MarkerFaceColor',[0,0,0]) (黑色填充)

DatetimeTickFormat

datetime 刻度标签的格式 (横坐标是时间点数组)

MATLAB 默认格式

plot(t,y,'DatetimeTickFormat','HH:mm') (显示小时和分钟)

DurationTickFormat

duration 刻度标签的格式 (横坐标是持续时间数组)

MATLAB 默认格式

plot(d,y,'DurationTickFormat','%H:%M:%S') (显示小时、分钟和秒)

使用示例
% 绘制函数 y = x^2 在区间 [0, 5] 上的图像,设置线条宽度为 2,标记为圆形,标记大小为 10,标记填充颜色为红色x = 0:0.1:5;y = x.^2;plot(x,y,'LineWidth',2,'Marker','o','MarkerSize',10,'MarkerFaceColor','r');
注意事项
  1. 名称-值参数必须出现在其他参数之后。
  2. 使用名称-值参数无法为不同的线条设置不同的属性,例如线条宽度。
  3. 如果需要为不同的线条设置不同的属性,可以使用 hold on 命令将图像保持在当前坐标系中,然后分别绘制每条线并设置相应的属性。
更多名称-值参数

除了上述表格中列出的参数外,plot 函数还支持更多名称-值参数,例如:

  • MarkerIndices: 指定哪些数据点上显示标记。
  • LineStyle: 线型 (与 LineSpec 参数作用相同)。
  • XData: 指定 x 轴数据。
  • YData: 指定 y 轴数据。

更多可参考 MATLAB 官方文档。

9.2.2 hold on/hold off:同一个坐标区中绘制多个图形

功能概述

hold on 和 hold off 用于控制当前坐标区的“保持”状态。

hold on

开启坐标区保持状态。在此状态下,后续的绘图命令(如 plot, scatter 等)不会清除当前图形,而是直接在现有图形上叠加绘制新的图形。

hold off

关闭坐标区保持状态。这是 MATLAB 的默认状态。在此状态下,执行新的绘图命令会清除当前坐标区的所有内容,然后绘制新图形。

简单来说,hold on 就像是在一张画上覆盖一层透明描图纸继续画,而 hold off 则是每次都换一张新纸画。

详细语法与参数说明

这两个命令的语法非常简单,没有复杂的参数。

命令

语法

参数说明

开启保持

hold on

无参数。执行后,当前坐标区进入保持状态。

关闭保持

hold off

无参数。执行后,当前坐标区退出保持状态,恢复到默认的替换模式。

切换状态

hold

无参数。在 on  off 状态之间切换。如果当前是 on,则变为 off;反之亦然。

查询状态

hold(state)

state 可以是一个逻辑变量。例如,ishold = hold('query') 会返回当前坐标区的保持状态(true  false)。

核心要点
  • hold on 和 hold off 通常成对出现,以确保在完成叠加绘图后,绘图状态能恢复到默认,避免影响后续代码。
  • 它们的作用域是当前图形窗口的当前坐标区。
  • 如果有多个子图(subplot),hold 命令只对最后点击或最后操作的子图生效。
举例说明
示例 1:基础叠加绘图

这个例子展示了如何在一个坐标区中绘制两条不同属性的曲线。

% 准备数据x = 0:0.1:2*pi;y1 = sin(x);y2 = cos(x);% 绘制第一条曲线figure; % 创建一个新的图形窗口plot(x, y1, 'r-', 'LineWidth', 2); % 红色实线,线宽为2title('正弦和余弦函数图像');xlabel('x');ylabel('y');legend('sin(x)'); % 添加图例% 开启保持状态,准备叠加绘制hold on;% 绘制第二条曲线plot(x, y2, 'b--', 'LineWidth', 2); % 蓝色虚线,线宽为2legend('sin(x)', 'cos(x)'); % 更新图例,加入第二条曲线% 关闭保持状态,恢复默认hold off;

先用 plot 绘制了 sin(x) 的图像。

hold on 告诉 MATLAB:“接下来不要擦掉这张图,我要在上面继续画。”

第二个 plot 命令直接在 sin(x) 的图像上叠加绘制了 cos(x) 的图像。

hold off 将绘图状态恢复,这样如果后面还有 plot 命令,它会重新开始画一张新图。

示例 2:解决名称-值参数无法分别设置的问题
% 准备数据x = 0:0.01:6;y1 = x.^3;y2 = exp(x);% 创建图形和第一条曲线(红色实线,线宽1.5)figure;plot(x, y1, 'r-', 'LineWidth', 1.5);hold on; % 开启保持% 绘制第二条曲线(蓝色虚线,线宽3)plot(x, y2, 'b--', 'LineWidth', 3);% 添加图例和标签legend('y = x^3', 'y = e^x');title('不同属性的函数图像');xlabel('x');ylabel('y');grid on; % 添加网格% 关闭保持hold off;
总结

功能

命令

作用

使用场景

开启叠加绘图

hold on

保持当前图形,新图形叠加绘制

需要在同一坐标区展示多条曲线、散点或其他图形对象时。

关闭叠加绘图

hold off

清除当前图形,新图形替换旧图形(恢复默认)

完成叠加绘图后,避免影响后续的绘图代码,是良好的编程习惯。

切换状态

hold

 on  off 状态间切换

在循环或条件语句中,需要根据情况切换绘图模式时。

查询状态

ishold = hold('query')

获取当前坐标区的保持状态(true/false

在编写通用函数或工具箱时,需要根据当前状态决定下一步操作。

9.2.3 使用 legend 函数添加图例

功能概述

legend 函数用于在当前坐标区创建一个图例。

图例会关联图中的图形对象(如线条、散点等),并用一个小的文本标签和对应的样式(颜色、线型、标记)来解释每个对象代表什么。

详细语法与参数说明
legend 函数的语法支持多种调用方式

语法

参数说明

legend(label1, ..., labelN)

最常用的语法。为当前坐标区中的图形对象按创建顺序手动指定图例标签。label1 对应第一个对象,以此类推。标签可以是字符向量、字符串或字符串数组。

legend(labels)

使用字符串数组 labels 为图形对象指定标签。

legend(obj, ___)

指定要添加图例的图形对象 obj(如线条句柄)。这种方式可以精确控制哪些对象显示在图例中,以及它们的顺序。obj 后面可以跟上标签。

legend(___,'Location',loc)

核心参数。使用 'Location' 名称-值参数来指定图例在坐标区中的位置。loc 可以是字符串或字符向量。

legend(___,'Orientation',orient)

指定图例的排列方向。orient 可以是 'vertical'(垂直,默认)或 'horizontal'(水平)。

legend('toggle')

切换图例的可见状态。如果图例存在则隐藏,如果不存在则显示。

legend('hide')

隐藏图例。

legend('show')

显示图例。

legend('off')

删除图例。

'Location' 参数的可选值

这是 legend 中最重要的参数之一,它决定了图例放置的位置,以避免遮挡数据。

位置值

说明

'north'

坐标区内的顶部

'south'

坐标区内的底部

'east'

坐标区内的右侧

'west'

坐标区内的左侧

'northeast'

坐标区内的右上角(默认)

'northwest'

坐标区内的左上角

'southeast'

坐标区内的右下角

'southwest'

坐标区内的左下角

'northoutside'

坐标区外的顶部

'southoutside'

坐标区外的底部

'eastoutside'

坐标区外的右侧

'westoutside'

坐标区外的左侧

'northeastoutside'

坐标区外的右上角

'northwestoutside'

坐标区外的左上角

'southeastoutside'

坐标区外的右下角

'southwestoutside'

坐标区外的左下角

'best'

在坐标区内部,MATLAB 自动选择最佳位置以避免与数据冲突

'bestoutside'

在坐标区外部,MATLAB 自动选择最佳位置

举例说明
示例 1:基础用法与位置调整

这个例子复用之前 hold on 的例子,并为其添加一个位于左上角的图例。

% 准备数据x = 0:0.1:2*pi;y1 = sin(x);y2 = cos(x);% 绘制第一条曲线figure;plot(x, y1, 'r-', 'LineWidth', 2);hold on;% 绘制第二条曲线plot(x, y2, 'b--', 'LineWidth', 2);% 添加图例,并指定位置为左上角legend('sin(x)', 'cos(x)', 'Location', 'northwest');title('正弦和余弦函数图像');xlabel('x');ylabel('y');grid on;hold off;

使用 hold on 绘制了两条曲线。

legend('sin(x)', 'cos(x)', ...) 为第一条红色实线指定标签 'sin(x)',为第二条蓝色虚线指定标签 'cos(x)'。

'Location', 'northwest' 将整个图例框放置在坐标区的左上角。

示例 2:使用句柄控制图例内容

有时候可能绘制了很多条线,但只想为其中几条添加图例。这时,获取图形对象的句柄就非常有用。

x = linspace(0, 10, 100);y1 = sin(x);y2 = 0.5*sin(x);y3 = cos(x);% 绘制所有曲线,并获取它们的句柄figure;p1 = plot(x, y1, 'k-'); % 黑色实线hold on;p2 = plot(x, y2, 'c--'); % 青色虚线p3 = plot(x, y3, 'g-.'); % 绿色点划线hold off;% 只为 p1 和 p3 添加图例legend([p1, p3], {'主要正弦波', '余弦波'}, 'Location', 'best');title('选择性添加图例');xlabel('x');ylabel('y');grid on;

p1 = plot(...) 在绘制图形的同时,将返回的图形对象(线条)句柄存储在变量 p1, p2, p3 中。

legend([p1, p3], ...) 第一个参数是一个句柄数组 [p1, p3],明确告诉 legend 只为这两条线创建图例项。

第二个参数是与之对应的标签字符串数组 {'主要正弦波', '余弦波'}。

注意,青色虚线 p2 没有出现在图例中。

总结

legend 是提升图表可读性的重要工具。熟练掌握它的各种用法,特别是 'Location' 参数和句柄控制,能让你在制作学术报告、数据分析图表时更加得心应手。

功能

语法/参数

作用

使用场景

手动添加标签

legend('label1', 'label2')

按绘图顺序为每个对象指定标签

最常用、最直接的方式,适用于大多数情况。

指定位置

'Location', 'northwest'

将图例放置在坐标区的特定位置

避免图例遮挡重要的数据点或曲线。

选择性添加

legend([h1, h3], ...)

只为指定的图形对象(通过句柄)添加图例

当图中包含辅助线、参考线或不需说明的元素时。

水平排列

'Orientation', 'horizontal'

使图例项水平排列而非垂直排列

当坐标区顶部或底部有较多空间时。

动态控制

legend('toggle')

切换图例的显示/隐藏状态

在交互式应用或GUI中,用于动态控制界面元素。

删除图例

legend('off')

从坐标区中彻底删除图例

当不再需要图例时。

9.2.4 使用 text 函数在图形中添加文本

功能概述

text 函数用于在当前坐标区的指定位置添加文本字符串。

与 legend 不同,text 的位置是完全由你通过坐标值来定义的,这赋予了它极高的灵活性。

可以用它来标记峰值、解释异常值、或者在任何需要文字说明的地方进行注释。

详细语法与参数说明

text 函数的核心是“位置”和“内容”。

支持丰富的名称-值参数来控制文本的外观。

语法

参数说明

text(x, y, txt)

最基础的语法。在二维坐标 (x, y) 处添加文本 txttxt 可以是字符向量、字符串或字符串数组。

text(x, y, z, txt)

在三维坐标 (x, y, z) 处添加文本 txt

text(___,Name,Value)

在上述任何语法后,添加一个或多个名称-值参数对,来指定文本的属性,如字体大小、颜色、对齐方式等。

常用名称-值参数

参数名称

含义

可选值/示例

FontSize

字体大小

正数,如 12 (默认通常是 10)

Color

文本颜色

颜色简写 ('r''g') RGB 向量 ([0, 0, 1])

FontWeight

字体粗细

'normal' (默认), 'bold'

HorizontalAlignment

水平对齐方式

'left' (默认), 'center''right'

VerticalAlignment

垂直对齐方式

'middle' (默认), 'top''bottom''baseline''cap'

BackgroundColor

文本背景颜色

颜色简写或 RGB 向量,如 'yellow'

EdgeColor

文本框边缘颜色

颜色简写或 RGB 向量,如 'k' (黑色)

Interpreter

文本解释器

'tex' (默认, 支持 LaTeX 子集), 'latex' (完整 LaTeX), 'none'

这些参数能像在 Word 里一样精细地调整文本样式。

核心要点

对齐方式

HorizontalAlignment 和 VerticalAlignment 非常重要。

它们决定了指定的坐标 (x, y) 是文本的左上角、中心还是右下角等。

例如,'HorizontalAlignment','right' 会让文本的右边缘对齐到指定的 x 坐标。

Interpreter

设置为 'tex' 时,可以在文本中使用简单的 LaTeX 命令来显示数学公式、希腊字母等。

如 '\alpha' 会显示为 α,'x^2' 会显示为 x²。

举例说明
示例 1:标记数据点

这个例子中,绘制一个正弦波,并标记出它的最大值点。

% 准备数据x = 0:0.1:2*pi;y = sin(x);% 绘制图形figure;plot(x, y, 'b-', 'LineWidth', 2);hold on;% 找到最大值点的坐标[y_max, idx] = max(y);x_max = x(idx);% 绘制最大值点plot(x_max, y_max, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r');% 在最大值点旁边添加文本注释% 使用右对齐,让文本在点的左侧text(x_max, y_max, '  峰值点', ...'FontSize', 12, ...'Color', 'r', ...'FontWeight', 'bold', ...'HorizontalAlignment', 'left', ...'VerticalAlignment', 'middle');title('正弦函数及其峰值');xlabel('x');ylabel('sin(x)');grid on;hold off;

找到最大值点的坐标 (x_max, y_max)。

text(x_max, y_max, ...) 将文本的起始位置设置在该点。

'HorizontalAlignment','left' 和 'VerticalAlignment','middle' 确保文本的左边缘中心对齐到 (x_max, y_max),这样文本就会整齐地出现在点的右侧。

还调整了字体大小、颜色和粗细,使其更醒目。

示例 2:添加数学公式

利用 Interpreter 属性,可以在图中添加漂亮的数学公式。

% 准备数据x = linspace(-2, 2, 200);y = x.^2;% 绘制图形figure;plot(x, y, 'm-', 'LineWidth', 2);% 在图上添加公式text(0, 3, '函数: y = x^2', ...'Interpreter', 'tex', ...'FontSize', 14, ...'HorizontalAlignment', 'center');title('二次函数图像');xlabel('x');ylabel('y');grid on;

text(0, 3, ...) 将文本放置在坐标 (0, 3) 附近。

'Interpreter','tex' 是关键,它告诉 MATLAB 将字符串 'y = x^2' 中的 ^ 解析为上标。

'HorizontalAlignment','center' 让文本以 (0, 3) 为中心居中对齐。

总结

text 函数是 MATLAB 可视化中实现“精准表达”的工具。

功能

语法/参数

作用

使用场景

基础添加文本

text(x, y, 'label')

在坐标 (x, y) 处添加文本 ‘label’

快速在图上做简单标记。

设置字体样式

'FontSize',12'Color','r'

调整文本的大小、颜色等外观

突出重要信息,美化图表。

控制对齐方式

'HorizontalAlignment','center'

精确控制文本相对于指定坐标的对齐方式

让文本与数据点、箭头等元素精确对齐。

添加文本框

'BackgroundColor','y'

为文本添加背景色和边框

让文本在复杂的背景中依然清晰可读。

显示数学公式

'Interpreter','tex'

使用 LaTeX 语法在文本中插入数学符号和公式

在学术论文或报告中标注函数、变量等。

结合 hold on,可以在任何图形上自由地添加想要的任何文字说明,让图表不仅能展示数据,更能讲述数据背后的故事。

http://www.dtcms.com/a/483563.html

相关文章:

  • 【卷积神经网络CNN】基本原理
  • Jenkins Share Library教程 —— 高级实战与最佳实践
  • 基于DNA编码与混沌系统的图像加密
  • 网站建设中的html网站页面设计图片素材
  • 【数据库】MySQL InnoDB Cluster 高可用架构部署(MGR 3节点)
  • 网站关键词选取网站开发使用软件有哪些
  • 网站建设 鼠标定制化网站开发公司
  • WebUI自动化测试:POM设计模式全解析
  • tauri 应用相关文件夹
  • 建设网站哪家便宜南昌网站排名
  • AI赋能,重塑未来招聘:深度解析易路AI人岗匹配解决方案
  • 四川网站建设的公司哪家好苏州网站建设熊掌
  • QT6中Dial、Key Sequence Edit、LCD Number 功能及用法详解
  • 为什么要创建网站公司网站建设管理
  • Tomcat核心架构与生产部署指南
  • 启闭机闸门的网站建设wp做图网站
  • 一个网站项目的价格表wordpress主题Qinmei
  • 虎扑的网站是用什么技术做的江苏免费建站
  • 做网站前景怎样国家企业年审营业执照官网
  • 开封市城乡建设局网站宁德公司做网站
  • mysql网站数据库深圳双区建设
  • 论述网站建设整个流程网站开发完整的解决方案
  • Web渗透之身份认证与访问控制缺陷(越权(水平垂直),访问控制(没有验证),脆弱验证(Cookie,JWT,Session等))
  • CoRL-2025 | SocialNav-SUB:用于社交机器人导航场景理解的视觉语言模型基准测试
  • 做优化网站是什么意思设计网络品牌营销方案思路
  • 单网页网站网站 制作公司
  • c++20|第k大-快速选择|nth_element
  • 小杰深度学习(sixteen)——视觉-经典神经网络——MobileNetV2
  • asp.net企业网站设计广州一建筑外墙脚手架坍塌
  • 自动化测试脚本环境搭建