笔记
单击此处 下载完整的示例代码
写数学表达式#
您可以在任何 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$'
要正确显示多字母下标或上标,您应该将它们放在花括号中{...}
:
r'$\alpha^{ic} > \beta_{ic}$'
一些符号会自动将它们的下标/上标放在运算符的下方和上方。例如,要写入from到 的总和,您可以这样做:
r'$\sum_{i=0}^\infty x_i$'
分数、二项式和堆积数#
分数、二项式和堆积数可以分别用
\frac{}{}
,\binom{}{}
和\genfrac{}{}{}{}{}{}
命令创建:
r'$\frac{3}{4} \binom{3}{4} \genfrac{}{}{0}{}{3}{4}$'
生产
分数可以任意嵌套:
r'$\frac{5 - \frac{1}{x}}{4}$'
生产
请注意,需要特别注意在分数周围放置括号和方括号。以明显的方式做事会产生太小的括号:
r'$(\frac{5 - \frac{1}{x}}{4})$'
解决方案是在括号前面加上\left
并\right
通知解析器这些括号包含整个对象:
r'$\left(\frac{5 - \frac{1}{x}}{4}\right)$'
激进分子#
部首可以用\sqrt[]{}
命令产生。例如:
r'$\sqrt{2}$'
任何基础都可以(可选地)在方括号内提供。请注意,base 必须是简单的表达式,并且不能包含分数或下标/上标等布局命令:
r'$\sqrt[3]{x}$'
字体#
数学符号的默认字体是斜体。
笔记
可以使用rcParams["mathtext.default"]
(default: 'it'
) 更改此默认值。这很有用,例如,通过将其设置为 ,将与常规非数学文本相同的字体用于数学文本regular
。
要更改字体,例如用罗马字体写“sin”,请将文本包含在字体命令中:
r'$s(t) = \mathcal{A}\mathrm{sin}(2 \omega t)$'
更方便的是,很多常用的以罗马字体排版的函数名都有快捷键。所以上面的表达式可以写成:
r'$s(t) = \mathcal{A}\sin(2 \omega t)$'
这里“s”和“t”是斜体(默认)变量,“sin”是罗马字体,幅度“A”是书法字体。请注意,在上面的示例中,书法A
被挤压成sin
. 您可以使用间距命令在它们之间添加一点空格:
r'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$"
符号#
您还可以使用大量的 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$'
示例#
这是一个在上下文中说明许多这些功能的示例。