【Matlab绘图要点汇总】Matlab图中添加图例+添加轴标签+添加文本+添加注释

做一个柔情的程序猿

共 8373字,需浏览 17分钟

 ·

2022-07-16 01:31

🔗 运行环境:Matlab

🚩 撰写作者:左手の明天


💗 大家好🤗🤗🤗,我是左手の明天!💗

📆  最近更新:2022 年 7 月 12 日,左手の明天的原创公众号【全栈技术专区】

🚩图添加标题和轴标签

⭐️创建简单的线图

创建 x,它是 100 个介于 −2π 和 2π 之间的线性间隔值。将 y1 和 y2 创建为 x 的正弦和余弦值。绘制两组数据。

  1. x = linspace(-2*pi,2*pi,100);

  2. y1 = sin(x);

  3. y2 = cos(x);

  4. figure

  5. plot(x,y1,x,y2)

⭐️添加标题

使用 title 函数向图中添加标题。要显示希腊符号 π,请使用 TeX 标记 \pi

title('Line Plot of Sine and Cosine Between -2\pi and 2\pi')

⭐️添加坐标轴标签

使用 xlabel 和 ylabel 函数向图中添加轴标签。

  1. xlabel('-2\pi < x < 2\pi')

  2. ylabel('Sine and Cosine Values')

⭐️添加图例

使用 legend 函数向图中添加标识每个数据集的图例。按照绘制线条的顺序指定图例说明。(可选)使用八个基本或斜角方位之一指定图例位置,在本例中为 'southwest'

legend({'y = sin(x)','y = cos(x)'},'Location','southwest')

⭐️更改字体大小

Axes 对象具有可用来自定义坐标区外观的属性。例如,FontSize 属性控制标题、标签和图例的字体大小。

使用 gca 函数访问当前 Axes 对象。然后使用圆点表示法设置 FontSize 属性。

  1. ax = gca;

  2. ax.FontSize = 13;

⭐️带有变量值的标题

通过使用 num2str 函数将值转换为文本,可在标题文本中包含变量值。您可以使用类似的方法为轴标签或图例条目添加变量值。

添加带有 sin(π)/2 值的标题。

  1. k = sin(pi/2);

  2. title(['sin(\pi/2) = ' num2str(k)])

 


🚩图中添加文本

⭐️文本位置

使用 text 函数在特定数据点旁边添加文本。在本例中,为点 (π,sin(π)) 添加文本。text 函数的前两个输入参数指定位置。第三个参数指定了文本。

默认情况下,text 支持一部分 TeX 标记。使用 TeX 标记 \pi 表示希腊字母 π。通过包含 TeX 标记 \leftarrow,显示一个指向左侧的箭头。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. txt = '\leftarrow sin(\pi) = 0';

  5. text(pi,sin(pi),txt)

⭐️文本对齐方式

默认情况下,指定的数据点位于文本的左侧。通过将 HorizontalAlignment 属性指定为 'right',使数据点出现在文本右侧。使用指向右侧而不是左侧的箭头。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. txt = 'sin(\pi) = 0 \rightarrow';

  5. text(pi,sin(pi),txt,'HorizontalAlignment','right')

⭐️字体大小

通过将 FontSize 属性设置为 text 函数的名称-值对组参数,指定文本的字体大小。使用 titlexlabelylabel 或 legend 函数时,可以通过类似的方法更改字体大小。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. txt = '\leftarrow sin(\pi) = 0';

  5. text(pi,sin(pi),txt,'FontSize',14)

⭐️设置文本属性

text 函数用于创建 Text 对象。Text 对象具有可用来自定义文本外观的属性,例如 HorizontalAlignment 或 FontSize

您可以通过两种方式设置属性:

  • 在 text 命令中使用名称-值对组,例如 'FontSize',14

  • 使用 Text 对象。您可以将 Text 对象作为 text 函数的输出参数返回,并将其赋给某个变量,例如 t。然后,使用圆点表示法设置属性,例如 t.FontSize = 14

对于此示例,使用圆点表示法而不是名称-值对组来更改字体大小。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. txt = '\leftarrow sin(\pi) = 0';

  5. t = text(pi,sin(pi),txt)


  6. t =

  7. Text (\leftarrow sin(\pi) = 0) with properties:


  8. String: '\leftarrow sin(\pi) = 0'

  9. FontSize: 10

  10. FontWeight: 'normal'

  11. FontName: 'Helvetica'

  12. Color: [0 0 0]

  13. HorizontalAlignment: 'left'

  14. Position: [3.1416 1.2246e-16 0]

  15. Units: 'data'


  16. Show all properties

t.FontSize = 14;

⭐️多行文本

使用字符向量元胞数组显示跨越多行的文本。元胞数组的每个元素代表一行文本。对于此示例,显示包含两行的标题。使用 titlexlabelylabel 或 legend 函数时,可以通过类似的方法显示多行文本。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. txt = {'Plotted Data:','y = sin(x)'};

  5. text(4,0.5,txt)

⭐️带有变量值的文本

通过使用 num2str 函数将数字转换为文本,可在文本中包含变量值。对于此示例,计算均值 y 并在标题中包含该值。使用 titlexlabelylabel 或 legend 函数时,可以通过类似的方法包含变量值。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. avg = mean(y);

  5. txt = ['Average height: ' num2str(avg) ' units'];

  6. text(4,0.5,txt)

⭐️坐标区外部的文本

使用 annotation 函数而不是 text 函数,可在图窗内的任何位置添加文本。第一个输入参数指定注释的类型。第二个输入参数以归一化的图窗单位指定注释的位置。通过将 EdgeColor 属性设置为 'none',删除文本框边框。

  1. x = linspace(0,10,50);

  2. y = sin(x);

  3. plot(x,y)


  4. annotation('textbox',[.9 .5 .1 .2], ...

  5. 'String','Text outside the axes','EdgeColor','none')

⭐️图文本中的希腊字母和特殊字符

创建一个线图并向图中添加标题和轴标签。使用 ^ 字符在标题上显示上标。^ 字符会修改紧随其后的字符。用花括号 {} 包含多个字符以将这些字符放入上标中。分别使用 TeX 标记 \alpha 和 \mu 在文本中包含希腊字母 α 和 μ。

  1. t = 1:900;

  2. y = 0.25*exp(-0.005*t);


  3. figure

  4. plot(t,y)

  5. title('Ae^{\alphat} for A = 0.25 and \alpha = -0.0005')

  6. xlabel('Time')

  7. ylabel('Amplitude')

向 t = 300 处的数据点添加文本。使用 TeX 标记 \bullet 向指定点添加标记,并使用 \leftarrow 包含一个指向左侧的箭头。默认情况下,指定的数据点位于文本的左侧。 

  1. txt = '\bullet \leftarrow 0.25t e^{-0.005t} at t = 300';

  2. text(t(300),y(300),txt)

MATLAB 支持部分 TeX 标记。使用 TeX 标记可添加上标和下标、修改文本类型和颜色以及包含特殊字符。只要文本对象的 Interpreter 属性设置为 'tex'(默认值),MATLAB 便会解释 TeX 标记。

修饰符会一直作用到文本结尾,但上标和下标除外,因为它们仅修饰下一个字符或花括号中的字符。当您将解释器设置为 'tex' 时,支持的修饰符如下所示。

修饰符说明示例
^{ }上标'text^{superscript}'
_{ }下标'text_{subscript}'
\bf粗体'\bf text'
\it斜体'\it text'
\sl伪斜体(通常与斜体相同)'\sl text'
\rm常规字体'\rm text'
\fontname{specifier}字体名称 - 将 specifier 替换为字体系列的名称。您可以将此说明符与其他修饰符结合使用。'\fontname{Courier} text'
\fontsize{specifier}字体大小 - 将 specifier 替换为以磅为单位的数值标量值。'\fontsize{15} text'
\color{specifier}字体颜色 - 将 specifier 替换为以下颜色之一:redgreenyellowmagentablueblackwhitegraydarkGreenorange 或 lightBlue'\color{magenta} text'
\color[rgb]{specifier}自定义字体颜色 - 将 specifier 替换为三元素 RGB 三元组。'\color[rgb]{0,0.5,0.5} text'

下表列出了 'tex' 解释器所支持的特殊字符。

字符序列符号字符序列符号字符序列符号

\alpha

α

\upsilon

υ

\sim

~

\angle

\phi

\leq

\ast

*

\chi

χ

\infty

\beta

β

\psi

ψ

\clubsuit

\gamma

γ

\omega

ω

\diamondsuit

\delta

δ

\Gamma

Γ

\heartsuit

\epsilon

ϵ

\Delta

Δ

\spadesuit

\zeta

ζ

\Theta

Θ

\leftrightarrow

\eta

η

\Lambda

Λ

\leftarrow

\theta

θ

\Xi

Ξ

\Leftarrow

\vartheta

ϑ

\Pi

Π

\uparrow

\iota

ι

\Sigma

Σ

\rightarrow

\kappa

κ

\Upsilon

ϒ

\Rightarrow

\lambda

λ

\Phi

Φ

\downarrow

\mu

µ

\Psi

Ψ

\circ

º

\nu

ν

\Omega

Ω

\pm

±

\xi

ξ

\forall

\geq

\pi

π

\exists

\propto

\rho

ρ

\ni

\partial

\sigma

σ

\cong

\bullet

\varsigma

ς

\approx

\div

÷

\tau

τ

\Re

\neq

\equiv

\oplus

\aleph

\Im

\cup

\wp

\otimes

\subseteq

\oslash

\cap

\in

\supseteq

\supset

\lceil

\subset

\int

\cdot

·

\o

ο

\rfloor

\neg

¬

\nabla

\lfloor

\times

x

\ldots

...

\perp

\surd

\prime

´

\wedge

\varpi

ϖ

\0

\rceil

\rangle

\mid

|

\vee

\langle

\copyright

©

 

例如,绘制 y=x^2sin(x) 并在 x=2 处绘制一条垂直线。使用 LaTeX 标记向图中添加包含积分表达式的文本。要在显示模式下显示表达式,请用双美元符号 ($$) 将标记括起来。调用 text 函数时,请将 Interpreter 属性设置为 'latex'

  1. x = linspace(0,3);

  2. y = x.^2.*sin(x);

  3. plot(x,y)

  4. line([2,2],[0,2^2*sin(2)])


  5. str = '$$ \int_{0}^{2} x^2\sin(x) dx $$';

  6. text(1.1,0.5,str,'Interpreter','latex')

通过调用 xticks 函数,将 x 轴刻度值设置为 pi 的倍数。然后,调用 gca 函数以获取当前坐标区,并将 TicklabelInterpreter 属性设置为 'latex'。使用 LaTeX 标记指定刻度标签。对于行内表达式,请用单个美元符号 ($) 括起标记。

  1. x = -10:0.1:10;

  2. y = [sin(x); cos(x)];

  3. plot(x,y)


  4. xticks([-3*pi -2*pi -pi 0 pi 2*pi 3*pi])

  5. ax = gca;

  6. ax.TickLabelInterpreter = 'latex';

  7. xticklabels({'$-3\pi$','$-2\pi$','$-\pi$','0', '$\pi$','$2\pi$','$3\pi$'});

通过调用 title 函数并将 Interpreter 属性设置为 'latex',添加包含 LaTeX 标记的标题。同样,创建一个标签包含 LaTeX 标记的图例。 

  1. % Add title

  2. str = 'Estimates $\hat{\psi_1}$ and $\hat{\psi_2}$';

  3. title(str,'Interpreter','latex')


  4. % Add legend

  5. label1 = '$\hat{\psi_1}$';

  6. label2 = '$\hat{\psi_2}$';

  7. legend(label1,label2,'Interpreter','latex')


🚩图中添加注释

⭐️注释的类型

使用 annotation 函数可以向图中添加注释。函数的第一个输入指定要创建的注释的类型。

  • 如果将类型指定为 'line''arrow''doublearrow' 或 'textarrow',则第二个输入是注释的起点和终点 x 位置。第三个输入是注释的起点和终点 y 位置。例如,annotation('line',[x_begin x_end],[y_begin y_end])

  • 如果将类型指定为 'rectangle''ellipse' 或 'textbox',则第二个参数是位置和大小。例如,annotation('rectangle',[x y w h])

注释使用归一化的图窗单位,并且可以在一个图窗中跨越多个坐标区。

⭐️创建简单的图

定义和绘制函数 f(x) 和 g(x)

  1. x = -3.0:0.01:3.0;

  2. f = x.^2;

  3. g = 5*sin(x) + 5;


  4. figure

  5. plot(x,f)

  6. hold on

  7. plot(x,g)

  8. hold off

⭐️圆圈注释

在图中添加一个圆圈,以突出显示 f(x) 等于 g(x) 的位置。要创建圆圈,请使用 'ellipse' 选项作为注释类型。

通过设置底层对象的属性来自定义圆圈。将 Ellipse 对象作为 annotation 函数的输出参数返回。然后,使用圆点表示法访问对象的属性。例如,设置 Color 属性。

  1. elps = annotation('ellipse',[.84 .68 .05 .05])


  2. elps =

  3. Ellipse with properties:


  4. Color: [0 0 0]

  5. FaceColor: 'none'

  6. LineStyle: '-'

  7. LineWidth: 0.5000

  8. Position: [0.8400 0.6800 0.0500 0.0500]

  9. Units: 'normalized'


  10. Show all properties

elps.Color = [0 0.5 0.5];

⭐️文本箭头注释

使用 'textarrow' 选项作为注释类型,向图中添加一个文本箭头。

您可以通过设置底层对象的属性来自定义文本箭头。将 TextArrow 对象作为 annotation 函数的输出参数返回。然后,使用圆点表示法访问对象的属性。例如,将 String 属性设置为所需的文本,将 Color 属性设置为颜色值。

ta = annotation('textarrow', [0.76 0.83], [0.71 0.71])
ta = 
TextArrow with properties:

String: {''}
FontName: 'Helvetica'
FontSize: 10
Color: [0 0 0]
TextColor: [0 0 0]
LineStyle: '-'
LineWidth: 0.5000
HeadStyle: 'vback2'
Position: [0.7600 0.7100 0.0700 0]
Units: 'normalized'
X: [0.7600 0.8300]
Y: [0.7100 0.7100]

Show all properties
  1. ta.String = 'f(x) = g(x) ';

  2. ta.Color = [0 0.5 0.5];

推荐阅读

(点击标题可跳转阅读)

【1】python程序设计思想

【2】【初学不要怕】教你全方位理解python函数及其使用(包括lambda函数和递归函数详解系列)

【3】【加解密算法实现】全面剖析RSA加解密算法(附完整C/Python源码)

【4】详解python的运行方式

【5】强推10款Python常用的开发工具

【6】【专家推荐】保姆级开源工具推荐,一用一个爽,非常劲爆(收藏系列)

【7】【恭喜考研拟录取】极力推荐科研必备软件,让你科研生涯事半功倍

老铁,三连支持一下,好吗?↓↓↓


点分享

点点赞

点在看


浏览 111
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报