写数学表达式#

您可以在任何 Matplotlib 文本字符串中使用 TeX 标记的子集,方法是将其放在一对美元符号 ($) 内。

请注意,您不需要安装 TeX,因为 Matplotlib 提供了自己的 TeX 表达式解析器、布局引擎和字体。布局引擎是 Donald Knuth 的 TeX 中布局算法的直接改编,因此质量非常好(Matplotlib 还usetex 为那些想要调用 TeX 来生成文本的人提供了一个选项;请参阅 Text rendering with LaTeX) .

任何文本元素都可以使用数学文本。您应该使用原始字符串(在引号前加上'r'),并用美元符号 ($) 将数学文本括起来,就像在 TeX 中一样。常规文本和数学文本可以在同一个字符串中交错。Mathtext 可以使用 DejaVu Sans(默认)、DejaVu Serif、Computer Modern 字体(来自 (La)TeX)、STIX字体(旨在与 Times 完美融合)或您提供的 Unicode 字体。可以通过rcParams["mathtext.fontset"](默认值:)选择 mathtext 字体'dejavusans'(请参阅 使用样式表和 rcParams 自定义 Matplotlib

这是一个简单的例子:

# plain text
plt.title('alpha > beta')

产生“阿尔法>贝塔”。

而这:

# math text
plt.title(r'$\alpha > \beta$')

产生“ ”。

笔记

Mathtext 应放在一对美元符号 ($) 之间。为了便于显示货币值,例如“$100.00”,如果整个字符串中存在单个美元符号,它将逐字显示为美元符号。这是与常规 TeX 的一个小变化,其中非数学文本中的美元符号必须被转义('\$')。

笔记

虽然这对美元符号 ($) 内部的语法旨在类似于 TeX,但外部的文本却不是。特别是,诸如以下的字符:

# $ % & ~ _ ^ \ { } \( \) \[ \]

在 TeX 中具有数学模式之外的特殊含义。因此,这些字符的行为会有所不同rcParams["text.usetex"](默认值:False)。有关更多信息,请参阅 usetex 教程

下标和上标#

要制作下标和上标,请使用'_''^'符号:

r'$\alpha_i > \beta_i$'
\[\alpha_i > \beta_i\]

要正确显示多字母下标或上标,您应该将它们放在花括号中{...}

r'$\alpha^{ic} > \beta_{ic}$'
\[\alpha^{ic} > \beta_{ic}\]

一些符号会自动将它们的下标/上标放在运算符的下方和上方。例如,要写入from到 的总和,您可以这样做:

r'$\sum_{i=0}^\infty x_i$'
\[\sum_{i=0}^\infty x_i\]

分数、二项式和堆积数#

分数、二项式和堆积数可以分别用 \frac{}{},\binom{}{}\genfrac{}{}{}{}{}{}命令创建:

r'$\frac{3}{4} \binom{3}{4} \genfrac{}{}{0}{}{3}{4}$'

生产

\[\frac{3}{4} \binom{3}{4} \genfrac{}{}{0pt}{}{3}{4}\]

分数可以任意嵌套:

r'$\frac{5 - \frac{1}{x}}{4}$'

生产

\[\frac{5 - \frac{1}{x}}{4}\]

请注意,需要特别注意在分数周围放置括号和方括号。以明显的方式做事会产生太小的括号:

r'$(\frac{5 - \frac{1}{x}}{4})$'
\[(\frac{5 - \frac{1}{x}}{4})\]

解决方案是在括号前面加上\left\right通知解析器这些括号包含整个对象:

r'$\left(\frac{5 - \frac{1}{x}}{4}\right)$'
\[\left(\frac{5 - \frac{1}{x}}{4}\right)\]

激进分子#

部首可以用\sqrt[]{}命令产生。例如:

r'$\sqrt{2}$'
\[\sqrt{2}\]

任何基础都可以(可选地)在方括号内提供。请注意,base 必须是简单的表达式,并且不能包含分数或下标/上标等布局命令:

r'$\sqrt[3]{x}$'
\[\sqrt[3]{x}\]

字体#

数学符号的默认字体是斜体

笔记

可以使用rcParams["mathtext.default"](default: 'it') 更改此默认值。这很有用,例如,通过将其设置为 ,将与常规非数学文本相同的字体用于数学文本regular

要更改字体,例如用罗马字体写“sin”,请将文本包含在字体命令中:

r'$s(t) = \mathcal{A}\mathrm{sin}(2 \omega t)$'
\[s(t) = \mathcal{A}\mathrm{sin}(2 \omega t)\]

更方便的是,很多常用的以罗马字体排版的函数名都有快捷键。所以上面的表达式可以写成:

r'$s(t) = \mathcal{A}\sin(2 \omega t)$'
\[s(t) = \mathcal{A}\sin(2 \omega t)\]

这里“s”和“t”是斜体(默认)变量,“sin”是罗马字体,幅度“A”是书法字体。请注意,在上面的示例中,书法A被挤压成sin. 您可以使用间距命令在它们之间添加一点空格:

r's(t) = \mathcal{A}\/\sin(2 \omega t)'
\[s(t) = \mathcal{A}\,\sin(2 \omega t)\]

所有字体的可用选项包括:

命令

结果

\mathrm{Roman}

\mathit{Italic}

\mathtt{Typewriter}

\mathcal{CALLIGRAPHY}

使用STIX字体时,您还可以选择:

命令

结果

\mathbb{blackboard}

\mathrm{\mathbb{blackboard}}

\mathfrak{Fraktur}

\mathsf{sansserif}

\mathrm{\mathsf{sansserif}}

还有五个全局“字体集”可供选择,它们是使用matplotlibrcmathtext.fontset中的参数选择的。

dejavusans: DejaVu Sans

dejavuserif: 似曾相识的衬线

cm: 现代计算机 (TeX)

stix:STIX(旨在与时代完美融合)

stixsans: STIX 无衬线字体

此外,您可以使用\mathdefault{...}或其别名 \mathregular{...}来使用用于 mathtext 之外的常规文本的字体。这种方法有许多限制,最明显的是可用的符号要少得多,但使数学表达式与图中的其他文本很好地融合会很有用。

自定义字体#

mathtext 还提供了一种使用自定义字体进行数学运算的方法。这种方法使用起来相当棘手,应该被认为是仅供患者用户使用的实验性功能。通过将rcParams["mathtext.fontset"](默认值:)设置'dejavusans'custom,您可以设置以下参数,这些参数控制用于特定数学字符集的字体文件。

范围

对应于

mathtext.it

\mathit{}或默认斜体

mathtext.rm

\mathrm{}罗马式(立式)

mathtext.tt

\mathtt{}打字机(等宽)

mathtext.bf

\mathbf{}加粗斜体

mathtext.cal

\mathcal{}书法

mathtext.sf

\mathsf{}无衬线字体

每个参数都应该设置为一个 fontconfig 字体描述符(在尚未编写的字体章节中定义)。

使用的字体应具有 Unicode 映射,以便查找任何非拉丁字符,例如希腊语。如果您想使用自定义字体中未包含的数学符号,您可以将 rcParams["mathtext.fallback"](默认值:)设置'cm''cm''stix'或者'stixsans' 当在自定义字体。

请注意,Unicode 中指定的数学字形随着时间的推移而演变,许多字体可能在数学文本的正确位置没有字形。

口音#

重音命令可以在任何符号之前添加重音符号。其中一些有长格式和短格式。

命令

结果

\acute a或者\'a

\bar a

\breve a

\dot a或者\.a

\ddot a或者\''a

\dddot a

\ddddot a

\grave a或者\`a

\hat a或者\^a

\tilde a或者\~a

\vec a

\overline{abc}

此外,还有两个特殊的重音会自动调整到以下符号的宽度:

命令

结果

\widehat{xyz}

\widetilde{xyz}

在小写 i 和 j 上添加重音时应小心。请注意,以下\imath内容用于避免 i 上的额外点:

r"$\hat i\ \ \hat \imath$"
\[\hat i\ \ \hat \imath\]

符号#

您还可以使用大量的 TeX 符号,例如\infty, \leftarrow, \sum, \int

小写希腊语

α\alpha

β\beta

χ\chi

δ\delta

ε\digamma

ε\epsilon

η\eta

γ\gamma

\iota

κ\kappa

λ\lambda

μ\mu

ν\nu

ω\omega

φ\phi

π\pi

ψ\psi

ρ\rho

σ\sigma

τ\tau

θ\theta

υ\upsilon

ε\varepsilon

ε\varkappa

φ\varphi

ϖ\varpi

ϱ\varrho

ε\varsigma

ϑ\vartheta

ξ\xi

ζ\zeta

大写希腊语

Δ\Delta

Γ\Gamma

Λ\Lambda

Ω\Omega

Φ\Phi

Π\Pi

Ψ\Psi

Σ\Sigma

θ\Theta

Υ\Upsilon

Ξ\Xi

\mho

\nabla

希伯来语

\aleph

\beth

\daleth

\gimel

分隔符

//

[[

\Downarrow

\Uparrow

\Vert

\\backslash

\downarrow

\langle

\lceil

\lfloor

\llcorner

\lrcorner

\rangle

\rceil

\rfloor

\ulcorner

\uparrow

\urcorner

|\vert

{\{

|\|

}\}

]]

||

大符号

\bigcap

\bigcup

\bigodot

\bigoplus

\bigotimes

\biguplus

\bigvee

\bigwedge

\coprod

\int

\oint

\prod

\sum

标准函数名称

公关\Pr

阿尔科斯\arccos

反正弦\arcsin

反正切\arctan

参数\arg

\cos

科什\cosh

婴儿床\cot

考特\coth

csc\csc

\deg

检测\det

暗淡\dim

经验\exp

gcd\gcd

霍姆\hom

信息\inf

克尔\ker

lg\lg

\lim

限制\liminf

利姆苏普\limsup

ln\ln

日志\log

最大限度\max

分钟\min

\sec

\sin

\sinh

支持\sup

棕褐色\tan

\tanh

二元运算和关系符号

\Bumpeq

\Cap

\Cup

\Doteq

\Join

\Subset

\Supset

\Vdash

\Vvdash

\approx

\approxeq

*\ast

\asymp

ε\backepsilon

\backsim

\backsimeq

\barwedge

\because

\between

\bigcirc

\bigtriangledown

\bigtriangleup

\blacktriangleleft

\blacktriangleright

\bot

\bowtie

\boxdot

\boxminus

\boxplus

\boxtimes

\bullet

\bumpeq

\cap

\cdot

\circ

\circeq

\coloneq

\cong

\cup

\curlyeqprec

\curlyeqsucc

\curlyvee

\curlywedge

\dag

\dashv

\ddag

\diamond

÷\div

\divideontimes

\doteq

\doteqdot

\dotplus

\doublebarwedge

\eqcirc

\eqcolon

\eqsim

\eqslantgtr

\eqslantless

\equiv

\fallingdotseq

\frown

\geq

\geqq

\geqslant

\gg

\ggg

\gnapprox

\gneqq

\gnsim

\gtrapprox

\gtrdot

\gtreqless

\gtreqqless

\gtrless

\gtrsim

\in

\intercal

\leftthreetimes

\leq

\leqq

\leqslant

\lessapprox

\lessdot

\lesseqgtr

\lesseqqgtr

\lessgtr

\lesssim

\ll

\lll

\lnapprox

\lneqq

\lnsim

\ltimes

\mid

\models

\mp

\nVDash

\nVdash

\napprox

\ncong

\ne

\neq

\neq

\nequiv

\ngeq

\ngtr

\ni

\nleq

\nless

\nmid

\notin

\nparallel

\nprec

\nsim

\nsubset

\nsubseteq

\nsucc

\nsupset

\nsupseteq

\ntriangleleft

\ntrianglelefteq

\ntriangleright

\ntrianglerighteq

\nvDash

\nvdash

\odot

\ominus

\oplus

\oslash

\otimes

\parallel

\perp

\pitchfork

±\pm

\prec

\precapprox

\preccurlyeq

\preceq

\precnapprox

\precnsim

\precsim

\propto

\rightthreetimes

\risingdotseq

\rtimes

\sim

\simeq

\slash

\smile

\sqcap

\sqcup

\sqsubset

\sqsubset

\sqsubseteq

\sqsupset

\sqsupset

\sqsupseteq

\star

\subset

\subseteq

\subseteqq

\subsetneq

\subsetneqq

\succ

\succapprox

\succcurlyeq

\succeq

\succnapprox

\succnsim

\succsim

\supset

\supseteq

\supseteqq

\supsetneq

\supsetneqq

\therefore

×\times

\top

\triangleleft

\trianglelefteq

\triangleq

\triangleright

\trianglerighteq

\uplus

\vDash

\varpropto

\vartriangleleft

\vartriangleright

\vdash

\vee

\veebar

\wedge

\wr

箭头符号

\Downarrow

\Leftarrow

\Leftrightarrow

\Lleftarrow

\Longleftarrow

\Longleftrightarrow

\Longrightarrow

\Lsh

\Nearrow

\Nwarrow

\Rightarrow

\Rrightarrow

\Rsh

\Searrow

\Swarrow

\Uparrow

\Updownarrow

\circlearrowleft

\circlearrowright

\curvearrowleft

\curvearrowright

\dashleftarrow

\dashrightarrow

\downarrow

\downdownarrows

\downharpoonleft

\downharpoonright

\hookleftarrow

\hookrightarrow

\leadsto

\leftarrow

\leftarrowtail

\leftharpoondown

\leftharpoonup

\leftleftarrows

\leftrightarrow

\leftrightarrows

\leftrightharpoons

\leftrightsquigarrow

\leftsquigarrow

\longleftarrow

\longleftrightarrow

\longmapsto

\longrightarrow

\looparrowleft

\looparrowright

\mapsto

\multimap

\nLeftarrow

\nLeftrightarrow

\nRightarrow

\nearrow

\nleftarrow

\nleftrightarrow

\nrightarrow

\nwarrow

\rightarrow

\rightarrowtail

\rightharpoondown

\rightharpoonup

\rightleftarrows

\rightleftarrows

\rightleftharpoons

\rightleftharpoons

\rightrightarrows

\rightrightarrows

\rightsquigarrow

\searrow

\swarrow

\to

\twoheadleftarrow

\twoheadrightarrow

\uparrow

\updownarrow

\updownarrow

\upharpoonleft

\upharpoonright

\upuparrows

杂项符号

$\$

一个\AA

\Finv

\Game

\Im

\P

\Re

§\S

\angle

\backprime

\bigstar

\blacksquare

\blacktriangle

\blacktriangledown

\cdots

\checkmark

®\circledR

\circledS

\clubsuit

\complement

©\copyright

\ddots

\diamondsuit

\ell

\emptyset

ð\eth

\exists

\flat

\forall

H\hbar

\heartsuit

\hslash

\iiint

\iint

一世\imath

\infty

Ÿ\jmath

\ldots

\measuredangle

\natural

¬\neg

\nexists

\oiiint

\partial

'\prime

\sharp

\spadesuit

\sphericalangle

ß\ss

\triangledown

\varnothing

\vartriangle

\vdots

\wp

¥\yen

如果特定符号没有名称(STIX 字体中的许多更晦涩的符号也是如此),也可以使用 Unicode 字符:

r'$\u23ce$'

示例#

这是一个在上下文中说明许多这些功能的示例。

../../_images/sphx_glr_pyplot_mathtext_001.png

由 Sphinx-Gallery 生成的画廊