注解
Click here 下载完整的示例代码
写数学表达式¶
用matplotlib编写数学表达式的介绍。
通过将子集tex标记放在一对美元符号($)中,可以在任何matplotlib文本字符串中使用它。
注意,您不需要安装tex,因为matplotlib提供了自己的tex表达式解析器、布局引擎和字体。布局引擎是对Donald Knuth的tex中布局算法的一个相当直接的改编,因此质量相当好(Matplotlib还提供了 usetex
用于那些希望调用tex生成文本的用户的选项(请参见 Latex 文本渲染 )
任何文本元素都可以使用数学文本。您应该使用原始字符串(在引号前面加上 'r'
,并用美元符号($)将数学文本包围起来,就像在tex中一样。常规文本和数学文本可以在同一字符串中交错。MathText可以使用dejavu sans(默认)、dejavu serif、计算机现代字体(来自(la)tex)。 STIX 字体(的设计目的是与时间很好地混合),或您提供的Unicode字体。可以使用自定义变量选择MathText字体 mathtext.fontset
(见 使用样式表和RCPARAM自定义Matplotlib )
下面是一个简单的例子:
# plain text
plt.title('alpha > beta')
生成“α>β”。
鉴于此:
# math text
plt.title(r'$\alpha > \beta$')
生成“:mathmpl:alpha>beta
”。
注解
MathText应该放在一对美元符号($)之间。为了便于显示货币值,例如“100.00美元”,如果整个字符串中存在一个美元符号,它将以美元符号逐字显示。这是普通tex的一个小变化,在普通tex中,非数学文本中的美元符号必须转义(“\$”)。
注解
虽然美元符号($)对内的语法旨在类似于tex,但外部的文本则不是。尤其是字符,例如:
# $ % & ~ _ ^ \ { } \( \) \[ \]
在TeX的数学模式之外有特殊的含义。因此,这些字符的行为将因时间而异 rcParams["text.usetex"]
(default: False
) . 见 usetex tutorial 更多信息。
下标和上标¶
要制作下标和上标,请使用 '_'
和 '^'
符号:
r'$\alpha_i > \beta_i$'
要正确显示多字母下标或上标,应将它们放在大括号中 {{...}}
::
r'$\alpha^{ic} > \beta_{ic}$'
有些符号会自动将其子/上标放在运算符下方和上方。例如,写下 从
到
你可以这样做:
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}$'
任何底座都可以(可选)安装在方括号内。请注意,基必须是简单表达式,并且不能包含分数或子/上标等布局命令:
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”是斜体字体的变量(默认),“s in”是罗马字体,振幅“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}}
还有五个全局“字体集”可供选择,它们是使用 mathtext.fontset
参数在 matplotlibrc .
dejavusans
:DejaVu Sans公司
dejavuserif
:DejaVu衬线
cm
:现代计算机(TeX)
stix
:STIX(与时代完美融合)
stixsans
:STIX无衬线
此外,您可以使用 \mathdefault{{...}}
或它的别名 \mathregular{{...}}
使用MathText之外的常规文本所用的字体。这种方法有很多局限性,最显著的是可用符号要少得多,但是使数学表达式与绘图中的其他文本很好地混合是很有用的。
自定义字体¶
mathtext还提供了一种为数学使用自定义字体的方法。这种方法使用起来相当棘手,应该被视为仅针对患者用户的实验性功能。通过设置 rcParams["mathtext.fontset"]
(default: '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"]
(default: 'cm'
) 要么 'cm'
, 'stix'
或 'stixsans'
这将导致mathtext系统在自定义字体中找不到特定字符时使用替代字体中的字符。
请注意,Unicode中指定的数学glyph随着时间的推移而发展,许多字体的mathText位置可能不正确。
口音¶
重音命令可以在任何符号之前添加重音。有些表格有长的和短的。
命令 结果 \acute a
or\'a
\bar a
\breve a
\ddot a
or\''a
\dot a
or\.a
\grave a
or\`a
\hat a
or\^a
\tilde a
or\~a
\vec a
\overline{abc}
此外,还有两种特殊的重音符号可自动调整为以下符号的宽度:
命令 结果 \widehat{xyz}
\widetilde{xyz}
在小写字母I和J上加重音符号时应小心。注意以下内容 \imath
用于避免I:上的多余点:
r"$\hat i\ \ \hat \imath$"
符号¶
您还可以使用大量的tex符号,如 \infty
, \leftarrow
, \sum
, \int
.
Lower-case Greek
α \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
Upper-case Greek
Δ \Delta
Γ \Gamma
Λ \Lambda
Ω \Omega
Φ \Phi
Π \Pi
Ψ \Psi
Σ \Sigma
Θ \Theta
Υ \Upsilon
Ξ \Xi
℧ \mho
∇ \nabla
Hebrew
ℵ \aleph
ℶ \beth
ℸ \daleth
ℷ \gimel
Delimiters
/ /
[ [
⇓ \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公司 \arccos
阿尔辛 \arcsin
阿克坦 \arctan
精氨酸 \arg
余弦 \cos
科什 \cosh
童床 \cot
科思 \coth
csc公司 \csc
度 \deg
det公司 \det
昏暗的 \dim
EXP \exp
gcd公司 \gcd
高阶模 \hom
因弗 \inf
克尔 \ker
lg公司 \lg
林 \lim
liminf公司 \liminf
利姆苏 \limsup
自然对数 \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
X \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
ħ \hbar
♡ \heartsuit
ℏ \hslash
∭ \iiint
∬ \iint
ı \imath
Infinity \infty
ȷ \jmath
... \ldots
∡ \measuredangle
♮ \natural
¬ \neg
∄ \nexists
∰ \oiiint
∂ \partial
′ \prime
♯ \sharp
♠ \spadesuit
∢ \sphericalangle
ß \ss
▿ \triangledown
∅ \varnothing
▵ \vartriangle
⋮ \vdots
℘ \wp
¥ \yen
如果某个特定符号没有名称(对于Stix字体中许多比较模糊的符号也是如此),也可以使用Unicode字符::
r'$\u23ce$'
例子¶
下面是一个例子,说明了上下文中的许多特性。

PyPrand数学模型¶
关键词:matplotlib代码示例,codex,python plot,pyplot Gallery generated by Sphinx-Gallery