您可以使用 TeX 标记向图中添加包含希腊字母和特殊字符的文本。此外,还可以使用 TeX 标记添加上标、下标以及修改文本类型和颜色。默认情况下,MATLAB 支持一部分 TeX 标记。要使用其他特殊字符,如积分和求和符号,可以改用 LaTeX 标记。此示例说明如何向图文本中插入希腊字母、上标和注释,并解释其他可用的 TeX 选项。
1.使用TEX标记
2.1.希腊字母
创建一个简单的线图并添加标题。使用 TeX 标记 \pi
在标题中包含希腊字母
π
。
x = linspace(0,2*pi);
y = sin(x);
plot(x,y)
title('x ranges from 0 to 2\pi')
2.2.上标和注释
创建一个线图并向图中添加标题和轴标签。使用 ^
字符在标题上显示上标。
^ 字符会修改紧随其后的字符。用花括号
{}
包含多个字符以将这些字符放入上标中。分别使用 TeX 标记
\alpha
和
\mu 在文本中包含希腊字母
α
和
μ
。
t = 1:900;
y = 0.25*exp(-0.005*t);
figure
plot(t,y)
title('Ae^{\alphat} for A = 0.25 and \alpha = -0.0005')
xlabel('Time')
ylabel('Amplitude')
向 t = 300
处的数据点添加文本。使用 TeX 标记
\bullet
向指定点添加标记,并使用
\leftarrow 包含一个指向左侧的箭头。默认情况下,指定的数据点位于文本的左侧。
txt = '\bullet \leftarrow 0.25t e^{-0.005t} at t = 300';
text(t(300),y(300),txt)
2.3.TeX 标记选项
MATLAB 支持部分 TeX 标记。使用 TeX 标记可添加上标和下标、修改文本类型和颜色以及包含特殊字符。只要文本对象的
Interpreter
属性设置为 'tex'(默认值),MATLAB 便会解释 TeX 标记。修饰符会一直作用到文本结尾,但上标和下标除外,因为它们仅修饰下一个字符或花括号中的字符。当您将解释器设置为
'tex'
时,支持的修饰符如下所示。


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


2.使用LaTeX标记
2.1 用 LaTeX 创建文本
默认情况下,MATLAB 可以解析使用 TeX 标记的文本。但是,要获得更多格式设置选项,您可以改用LaTeX 标记。
例如,绘制 y
=
x²
sin(
x
)
并在
x
= 2 处绘制一条垂直线。使用 LaTeX 标记向图中添加包含积分表达式的文本。要在显示模式下显示表达式,请用双美元符号 (
$$
) 将标记括起来。调用
text 函数时,请将Interpreter
属性设置为
'latex'
。
x = linspace(0,3);
y = x.^2.*sin(x);
plot(x,y)
line([2,2],[0,2^2*sin(2)])
str = '$$ \int_{0}^{2} x^2\sin(x) dx $$';
text(1.1,0.5,str,'Interpreter','latex')
2.2 使用 LaTeX 创建绘图标题、刻度标签和图例
您可以在绘图标题、刻度标签和图例中使用 LaTeX 标记。例如,创建正弦波和余弦波的绘图。
x = -10:0.1:10;
y = [sin(x); cos(x)];
plot(x,y)
通过调用 xticks
函数,将 x 轴刻度值设置为
pi
的倍数。然后,调用
gca 函数以获取当前坐标区,并将TicklabelInterpreter
属性设置为
'latex'。使用 LaTeX 标记指定刻度标签。对于行内表达式,请用单个美元符号 (
$
) 括起标记。
xticks([-3*pi -2*pi -pi 0 pi 2*pi 3*pi])
ax = gca;
ax.TickLabelInterpreter = 'latex';
xticklabels({'$-3\pi$','$-2\pi$','$-\pi$','0', '$\pi$','$2\pi$','$3\pi$'});
通过调用 title
函数并将
Interpreter
属性设置为
'latex',添加包含 LaTeX 标记的标题。同样,创建一个标签包含 LaTeX 标记的图例。
% Add title
str = 'Estimates $\hat{\psi_1}$ and $\hat{\psi_2}$';
title(str,'Interpreter','latex')
% Add legend
label1 = '$\hat{\psi_1}$';
label2 = '$\hat{\psi_2}$';
legend(label1,label2,'Interpreter','latex')