注意
前往結尾下載完整範例程式碼。
撰寫數學表達式#
Matplotlib 實作了一個輕量級的 TeX 表達式解析器和佈局引擎,而 *Mathtext* 是此引擎支援的 Tex 標記的子集。請注意,如果 rcParams["text.usetex"]
(預設:False
) 為 *True*,Matplotlib 也可以直接使用 TeX 呈現所有文字;詳情請參閱使用 LaTeX 呈現文字。如果 rcParams["text.usetex"]
(預設:False
) 為 *False*,則可以使用 Mathtext 支援。
任何字串都可以透過將字串放在一對錢幣符號 '$'
內來當作 Mathtext 處理。Mathtext 通常包含許多反斜線 '\'
;為了避免反斜線需要跳脫,Mathtext 通常使用原始字串撰寫。例如
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(3, 3), linewidth=1, edgecolor='black')
fig.text(.2, .7, "plain text: alpha > beta")
fig.text(.2, .5, "Mathtext: $\\alpha > \\beta$")
fig.text(.2, .3, r"raw string Mathtext: $\alpha > \beta$")

另請參閱
由於 Matplotlib 隨附 Mathtext 解析器和引擎,因此使用 Mathtext *不需要* 安裝 TeX。Mathtext 佈局引擎是對 Donald Knuth 的 TeX 中的佈局演算法進行相當直接的改編。若要使用不同的 TeX 引擎呈現數學文字,請參閱使用 LaTeX 呈現文字。
注意
若要在文件中產生與 mathtext
產生的輸出完全相同的 html 輸出,請使用matplotlib.sphinxext.mathmpl
Sphinx 擴充功能。
特殊字元#
Mathtext 必須放在一對(美金)錢幣符號 '$'
之間。包含 Mathtext 的字串中的常值錢幣符號 '$'
必須使用反斜線跳脫:'\$'
。字串可能包含多對錢幣符號,導致多個 Mathtext 表達式。具有奇數個錢幣符號的字串會僅呈現為純文字。
fig = plt.figure(figsize=(3, 3), linewidth=1, edgecolor='black')
fig.suptitle("Number of unescaped $")
fig.text(.1, .7, r"odd: $ \alpha $ = $1")
fig.text(.1, .5, r"even: $ \beta $= $ 2 $")
fig.text(.1, .3, r'odd: $ \gamma $= \$3 $')
fig.text(.1, .1, r'even: $ \delta $ = $ \$4 $')

雖然 Mathtext 的目標是與一般 TeX 相容,但它在何時需要跳脫特殊字元時會有所不同。在 TeX 中,錢幣符號在非數學文字中必須跳脫 '\$'
,而在 Matplotlib 中,撰寫 Mathtext 時必須跳脫錢幣符號。
這些其他特殊字元在非數學 TeX 中也會跳脫,而在 Matplotlib 中,其行為取決於如何設定rcParams["text.usetex"]
(預設:False
)
# $ % & ~ _ ^ \ { } \( \) \[ \]
請參閱 usetex 教學以取得更多資訊。
下標與上標#
若要製作下標和上標,請使用 '_'
和 '^'
符號
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"]
(預設:'it'
) 來變更此預設值。若要設定 rcParams,請參閱使用樣式表和 rcParams 自訂 Matplotlib。例如,將預設值設定為 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)'
Mathtext 可以使用 DejaVu Sans (預設)、DejaVu Serif、(La)TeX 中的 Computer Modern 字型、STIX 字型 (這些字型旨在與 Times 完美融合),或您提供的 Unicode 字型。Mathtext 字型可以透過 rcParams["mathtext.fontset"]
(預設:'dejavusans'
) 來選取。
所有字型可用的選項為
命令 |
結果 |
---|---|
|
|
|
|
|
|
|
使用STIX 字型時,您也可以選擇
命令 |
結果 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
此外,還有五種全域「字體集」可供選擇,這些字體集可透過 mathtext.fontset
參數在 matplotlibrc 中選取。
dejavusans
:DejaVu Sansdejavuserif
:DejaVu Serifcm
:Computer Modern (TeX)stix
:STIX (設計為與 Times 字體良好搭配)stixsans
:STIX sans-serif
此外,您可以使用 \mathdefault{...}
或其別名 \mathregular{...}
來使用 Mathtext 之外用於一般文字的字體。此方法有一些限制,最明顯的是可用的符號會少得多,但它可以讓數學表達式與圖表中的其他文字更好地融合。
為了與流行的套件相容,可以使用 \text{...}
,它使用 \mathrm{...}
字體,但在其他方面保留空格並將 - 呈現為破折號(而非減號)。
自訂字體#
Mathtext 也提供一種方法可以使用自訂字體進行數學排版。這種方法使用起來相當棘手,應該被認為是僅適用於耐心使用者的實驗性功能。將 rcParams["mathtext.fontset"]
(預設值:'dejavusans'
) 設定為 custom
後,您可以設定以下參數,這些參數控制特定的一組數學字元要使用哪個字體檔案。
參數 |
對應到 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
每個參數都應設定為 fontconfig 字體描述符,如 Matplotlib 中的字體 中所定義。所使用的字體應具有 Unicode 對應,以便找到任何非拉丁字元,例如希臘字母。如果您想使用自訂字體中不包含的數學符號,您可以將 rcParams["mathtext.fallback"]
(預設值:'cm'
) 設定為 'cm'
、'stix'
或 'stixsans'
,這將使 Mathtext 系統在自訂字體中找不到特定字元時,使用替代字體的字元。
請注意,Unicode 中指定的數學符號已隨著時間的推移而演變,而且許多字體的字形可能不在 Mathtext 的正確位置。
重音符號#
重音命令可以放在任何符號之前,以在其上方添加重音符號。其中一些有長短兩種形式。
命令 |
結果 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此外,還有兩個特殊的重音符號會自動調整為下方符號的寬度
命令 |
結果 |
---|---|
|
|
|
在小寫 i 和 j 上加上重音符號時應格外小心。請注意,在以下範例中,\imath
用於避免 i 上方的額外點
r"$\hat i\ \ \hat \imath$"
符號#
您也可以使用大量的 TeX 符號,例如 \infty
、\leftarrow
、\sum
、\int
。
小寫希臘字母
α |
β |
γ |
δ |
ε |
ε |
ζ |
η |
θ |
ϑ |
ι |
κ |
ϰ |
λ |
μ |
ν |
ξ |
π |
ϖ |
ρ |
ϱ |
σ |
ς |
τ |
υ |
χ |
ψ |
ω |
ϕ |
φ |
ϝ |
大寫希臘字母
Γ |
Δ |
Θ |
Λ |
Ξ |
Π |
Σ |
Υ |
Φ |
Ψ |
Ω |
希伯來字母
ℸ |
ℷ |
ℶ |
ℵ |
拉丁語命名字元
Å |
Æ |
Ð |
Ø |
Þ |
ß |
å |
æ |
ð |
ð |
ø |
þ |
Œ |
œ |
分隔符號
( |
( |
) |
) |
. |
/ |
< |
> |
[ |
[ |
\ |
| |
| |
] |
] |
{ |
{ |
{ |
} |
} |
} |
‖ |
‖ |
↑ |
↓ |
↕ |
⇑ |
⇓ |
⇕ |
⌈ |
⌉ |
⌊ |
⌋ |
⟨ |
⟩ |
⟮ |
⟯ |
大型符號
∏ |
∐ |
∑ |
∫ |
∬ |
∭ |
∮ |
∯ |
∰ |
⋀ |
⋁ |
⋂ |
⋃ |
⨀ |
⨁ |
⨂ |
⨄ |
⨆ |
⨌ |
標準函數名稱
Pr |
arccos |
arcsin |
arctan |
arg |
cos |
cosh |
cot |
coth |
csc |
deg |
det |
dim |
exp |
gcd |
hom |
inf |
ker |
lg |
lim |
liminf |
limsup |
ln |
log |
max |
min |
sec |
sin |
sinh |
sup |
tan |
tanh |
二元運算符號
* |
+ |
- |
± |
× |
÷ |
† |
‡ |
− |
∓ |
∔ |
∕ |
∖ |
∗ |
∘ |
∙ |
∧ |
∨ |
∩ |
∪ |
∸ |
∹ |
∺ |
≀ |
⊍ |
⊎ |
⊓ |
⊔ |
⊕ |
⊖ |
⊗ |
⊘ |
⊙ |
⊚ |
⊛ |
⊝ |
⊞ |
⊟ |
⊠ |
⊡ |
⊴ |
⊵ |
⊺ |
⊻ |
⊼ |
⊽ |
⋄ |
⋅ |
⋆ |
⋇ |
⋋ |
⋌ |
⋎ |
⋏ |
⋒ |
⋓ |
⌆ |
⌽ |
△ |
▷ |
▷ |
▽ |
◁ |
◁ |
○ |
◫ |
⨿ |
⩕ |
關係符號
: |
< |
= |
= |
> |
϶ |
… |
∈ |
∉ |
∊ |
∋ |
∌ |
∍ |
∝ |
∝ |
∟ |
∣ |
∤ |
∥ |
∦ |
∴ |
∵ |
∶ |
∼ |
∽ |
≁ |
≂ |
≃ |
≄ |
≅ |
≆ |
≇ |
≈ |
≉ |
≊ |
≋ |
≌ |
≍ |
≎ |
≏ |
≐ |
≑ |
≑ |
≒ |
≓ |
≔ |
≕ |
≖ |
≗ |
≘ |
≙ |
≚ |
≛ |
≜ |
≜ |
≝ |
≞ |
≟ |
≠ |
≠ |
≡ |
≢ |
≣ |
≤ |
≥ |
≦ |
≧ |
≨ |
≩ |
≪ |
≫ |
≬ |
≮ |
≯ |
≰ |
≱ |
≲ |
≳ |
≴ |
≵ |
≶ |
≷ |
≸ |
≹ |
≺ |
≻ |
≼ |
≼ |
≽ |
≽ |
≾ |
≿ |
⊀ |
⊁ |
⊂ |
⊃ |
⊄ |
⊅ |
⊆ |
⊇ |
⊈ |
⊉ |
⊊ |
⊋ |
⊏ |
⊐ |
⊑ |
⊒ |
⊜ |
⊢ |
⊣ |
⊤ |
⊥ |
⊦ |
⊧ |
⊨ |
⊩ |
⊪ |
⊫ |
⊬ |
⊭ |
⊮ |
⊯ |
⊱ |
⊴ |
⊵ |
⊾ |
⊿ |
⋈ |
⋉ |
⋊ |
⋍ |
⋐ |
⋑ |
⋔ |
⋕ |
⋖ |
⋗ |
⋘ |
⋙ |
⋚ |
⋛ |
⋜ |
⋝ |
⋞ |
⋟ |
⋠ |
⋡ |
⋢ |
⋣ |
⋤ |
⋥ |
⋦ |
⋧ |
⋨ |
⋩ |
⋪ |
⋫ |
⋬ |
⋭ |
⋲ |
⋴ |
⋳ |
⋵ |
⋷ |
⋶ |
⋸ |
⋹ |
⋺ |
⋼ |
⋻ |
⋾ |
⋽ |
⋿ |
⌢ |
⌣ |
△ |
▶ |
▷ |
⊳ |
◀ |
◁ |
⊲ |
⟂ |
⨝ |
⩽ |
⩾ |
⪅ |
⪆ |
⪉ |
⪊ |
⪋ |
⪌ |
⪕ |
⪖ |
⪷ |
⪸ |
⪹ |
⪺ |
⫅ |
⫆ |
⫋ |
⫌ |
箭頭符號
⃖ |
|
← |
↑ |
→ |
→ |
↓ |
↔ |
↕ |
↖ |
↗ |
↘ |
↙ |
↚ |
↛ |
↜ |
↝ |
↞ |
↟ |
↠ |
↡ |
↢ |
↣ |
↤ |
↥ |
↦ |
↧ |
↨ |
↩ |
↪ |
↫ |
↬ |
↭ |
↮ |
↯ |
↰ |
↱ |
↲ |
↳ |
↶ |
↷ |
↺ |
↻ |
↻ |
↼ |
↽ |
↾ |
↿ |
⇀ |
⇁ |
⇂ |
⇃ |
⇄ |
⇅ |
⇆ |
⇇ |
⇈ |
⇉ |
⇊ |
⇋ |
⇌ |
⇍ |
⇎ |
⇏ |
⇐ |
⇑ |
⇒ |
⇓ |
⇔ |
⇕ |
⇖ |
⇗ |
⇘ |
⇙ |
⇚ |
⇛ |
⇝ |
⇝ |
⇤ |
⇥ |
⊌ |
⊸ |
⟵ |
⟶ |
⟷ |
⟸ |
⟹ |
⟺ |
⟼ |
⤎ |
⤏ |
點符號
… |
∴ |
∵ |
∷ |
⋮ |
⋯ |
⋰ |
⋱ |
黑板粗體字元
ℂ |
ℕ |
ℙ |
ℚ |
ℝ |
ℤ |
手寫體字元
ℊ |
ℋ |
ℐ |
ℒ |
ℛ |
ℬ |
ℯ |
ℰ |
ℱ |
ℳ |
ℴ |
哥德體字元
ℨ |
ℭ |
其他符號
$ |
¢ |
£ |
¥ |
§ |
© |
¬ |
® |
° |
¶ |
ħ |
ı |
ı |
Ł |
ł |
ƛ |
ȷ |
† |
‡ |
‰ |
′ |
‵ |
ℏ |
ℑ |
ℓ |
℘ |
ℜ |
℧ |
Ⅎ |
⅁ |
∀ |
∁ |
∂ |
∃ |
∄ |
∅ |
∅ |
∆ |
∇ |
∎ |
∞ |
∠ |
∡ |
∢ |
∾ |
∿ |
⊹ |
Ⓢ |
■ |
△ |
▵ |
▴ |
▾ |
▿ |
★ |
☡ |
♠ |
♡ |
♢ |
♣ |
♧ |
♭ |
♮ |
♯ |
✓ |
✠ |
如果特定符號沒有名稱(如同 STIX 字體中許多較不常用的符號),也可以使用 Unicode 字元。
r'$\u23ce$'