Mathematische Ausdrücke schreiben#

Matplotlib implementiert einen leichten TeX-Ausdrucksparser und eine Layout-Engine. Mathtext ist die Untermenge des Tex-Markup, das diese Engine unterstützt. Beachten Sie, dass Matplotlib auch allen Text direkt mit TeX rendern kann, wenn rcParams["text.usetex"] (Standard: False) auf True gesetzt ist; siehe Text-Rendering mit LaTeX für weitere Details. Mathtext-Unterstützung ist verfügbar, wenn rcParams["text.usetex"] (Standard: False) False ist.

Jede Zeichenkette kann als Mathtext verarbeitet werden, indem sie in ein Paar Dollarzeichen '$' eingeschlossen wird. Mathtext enthält oft viele Backslashes '\'. Damit die Backslashes nicht escaped werden müssen, wird Mathtext oft mit Raw-Strings geschrieben. Zum Beispiel:

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$")
mathtext

Siehe auch

Mathtext-Beispiel

TeX muss nicht installiert sein, um Mathtext zu verwenden, da Matplotlib den Mathtext-Parser und die Engine mitliefert. Die Mathtext-Layout-Engine ist eine ziemlich direkte Anpassung der Layout-Algorithmen in Donald Knuths TeX. Um mathematischen Text mit einer anderen TeX-Engine zu rendern, siehe Text-Rendering mit LaTeX.

Hinweis

Um HTML-Ausgabe in der Dokumentation zu erzeugen, die exakt mit der von mathtext generierten Ausgabe übereinstimmt, verwenden Sie die Sphinx-Erweiterung matplotlib.sphinxext.mathmpl.

Sonderzeichen#

Mathtext muss zwischen einem Paar (US) Dollarzeichen '$' stehen. Ein literales Dollarzeichen '$' in einer Zeichenkette, die Mathtext enthält, muss mit einem Backslash escaped werden: '\$'. Eine Zeichenkette kann mehrere Paare von Dollarzeichen enthalten, was zu mehreren Mathtext-Ausdrücken führt. Zeichenketten mit einer ungeraden Anzahl von Dollarzeichen werden ausschließlich als normaler Text gerendert.

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 $')
Number of unescaped $

Obwohl Mathtext Kompatibilität mit regulärem TeX anstrebt, unterscheidet es sich darin, wann Sonderzeichen escaped werden müssen. In TeX muss das Dollarzeichen in Nicht-Mathematik-Text '\$' escaped werden, während in Matplotlib das Dollarzeichen beim Schreiben von Mathtext escaped werden muss.

Diese anderen Sonderzeichen werden in Nicht-Mathematik-TeX ebenfalls escaped, während in Matplotlib ihr Verhalten davon abhängt, wie rcParams["text.usetex"] (Standard: False) gesetzt ist.

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

Siehe das usetex Tutorial für weitere Informationen.

Indizes und Exponenten#

Um Indizes und Exponenten zu erstellen, verwenden Sie die Symbole '_' und '^'.

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

Um mehrbuchstabige Indizes oder Exponenten korrekt anzuzeigen, sollten Sie diese in geschweifte Klammern {...} setzen.

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

Einige Symbole setzen ihre Indizes/Exponenten automatisch unter und über den Operator. Zum Beispiel, um die Summe von von bis zu schreiben, könnten Sie Folgendes tun:

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

Brüche, Binomialkoeffizienten und gestapelte Zahlen#

Brüche, Binomialkoeffizienten und gestapelte Zahlen können mit den Befehlen \frac{}{}, \binom{}{} und \genfrac{}{}{}{}{}{} erstellt werden.

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

ergibt

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

Brüche können beliebig verschachtelt werden.

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

ergibt

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

Beachten Sie, dass besondere Sorgfalt erforderlich ist, um Klammern und eckige Klammern um Brüche zu setzen. Wenn Sie die Dinge auf offensichtliche Weise tun, werden die Klammern zu klein.

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

Die Lösung besteht darin, der Klammer \left und \right voranzustellen, um dem Parser mitzuteilen, dass diese Klammern das gesamte Objekt umschließen.

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

Radikale#

Radikale können mit dem Befehl \sqrt[]{} erzeugt werden. Zum Beispiel:

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

Eine beliebige Basis kann (optional) in eckigen Klammern angegeben werden. Beachten Sie, dass die Basis ein einfacher Ausdruck sein muss und keine Layout-Befehle wie Brüche oder Indizes/Exponenten enthalten darf.

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

Schriftarten#

Die Standardschriftart ist kursiv für mathematische Symbole.

Diese Standardeinstellung kann über rcParams["mathtext.default"] (Standard: 'it') geändert werden. Zum Einstellen von rcParams siehe Anpassen von Matplotlib mit Stilvorlagen und rcParams. Beispielsweise ermöglicht das Setzen des Standards auf regular die Verwendung derselben Schriftart für mathematischen Text und normalen Nicht-Mathematik-Text.

Um Schriftarten zu ändern, z. B. um "sin" in einer serifenlosen Schriftart zu schreiben, schließen Sie den Text in einen Schriftbefehl ein.

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

Praktischerweise haben viele gebräuchliche Funktionsnamen, die in serifenloser Schriftart gesetzt werden, Verknüpfungen. Der obige Ausdruck könnte also wie folgt geschrieben werden:

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

Hier sind "s" und "t" Variablen in kursiver Schriftart (Standard), "sin" in serifenloser Schriftart und die Amplitude "A" in kalligrafischer Schriftart. Beachten Sie im obigen Beispiel, dass das kalligrafische A in das sin gequetscht wird. Sie können einen Abstands-Befehl verwenden, um etwas Leerraum dazwischen einzufügen.

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

Mathtext kann DejaVu Sans (Standard), DejaVu Serif, Computer Modern-Schriften von (La)TeX, STIX-Schriften, die so konzipiert sind, dass sie gut mit Times harmonieren, oder eine von Ihnen bereitgestellte Unicode-Schriftart verwenden. Die Mathtext-Schriftart kann über rcParams["mathtext.fontset"] (Standard: 'dejavusans') ausgewählt werden.

Die mit allen Schriftarten verfügbaren Optionen sind:

Befehl

Ergebnis

\mathrm{Roman}

\mathit{Italic}

\mathtt{Typewriter}

\mathcal{CALLIGRAPHY}

Bei Verwendung der STIX-Schriften haben Sie auch die Wahl zwischen:

Befehl

Ergebnis

\mathbb{blackboard}

\mathrm{\mathbb{blackboard}}

\mathfrak{Fraktur}

\mathsf{sansserif}

\mathrm{\mathsf{sansserif}}

\mathbfit{bolditalic}

Es gibt auch fünf globale "Schriftarten-Sets" zur Auswahl, die über den Parameter mathtext.fontset in matplotlibrc ausgewählt werden.

dejavusans: DejaVu Sans
dejavuserif: DejaVu Serif
cm: Computer Modern (TeX)
stix: STIX (konzipiert, um gut mit Times zu harmonieren)
stixsans: STIX serifenlos

Zusätzlich können Sie \mathdefault{...} oder dessen Alias \mathregular{...} verwenden, um die Schriftart zu nutzen, die für normalen Text außerhalb von Mathtext verwendet wird. Dieser Ansatz hat eine Reihe von Einschränkungen, insbesondere dass weitaus weniger Symbole verfügbar sind, aber er kann nützlich sein, um mathematische Ausdrücke gut mit anderem Text im Diagramm zu verbinden.

Zur Kompatibilität mit beliebten Paketen ist \text{...} verfügbar und verwendet die \mathrm{...}-Schriftart, behält aber ansonsten Leerzeichen bei und rendert - als Bindestrich (nicht Minus).

Benutzerdefinierte Schriftarten#

Mathtext bietet auch eine Möglichkeit, benutzerdefinierte Schriftarten für Mathematik zu verwenden. Diese Methode ist ziemlich schwierig zu verwenden und sollte als experimentelles Feature nur für geduldige Benutzer betrachtet werden. Durch Setzen von rcParams["mathtext.fontset"] (Standard: 'dejavusans') auf custom können Sie dann die folgenden Parameter setzen, die steuern, welche Schriftdatei für einen bestimmten Satz mathematischer Zeichen verwendet wird.

Parameter

Entspricht

mathtext.it

\mathit{} oder Standard kursiv

mathtext.rm

\mathrm{} Roman (aufrecht)

mathtext.tt

\mathtt{} Schreibmaschine (Monospace)

mathtext.bf

\mathbf{} fett

mathtext.bfit

\mathbfit{} fett kursiv

mathtext.cal

\mathcal{} kalligrafisch

mathtext.sf

\mathsf{} serifenlos

Jeder Parameter sollte auf eine Fontconfig-Schriftartbeschreibung gesetzt werden, wie in Schriftarten in Matplotlib definiert. Die verwendeten Schriftarten sollten eine Unicode-Zuordnung haben, um nicht-lateinische Zeichen wie Griechisch zu finden. Wenn Sie ein mathematisches Symbol verwenden möchten, das nicht in Ihren benutzerdefinierten Schriftarten enthalten ist, können Sie rcParams["mathtext.fallback"] (Standard: 'cm') auf 'cm', 'stix' oder 'stixsans' setzen, was dazu führt, dass das Mathtext-System Zeichen aus einer alternativen Schriftart verwendet, wenn ein bestimmtes Zeichen nicht in der benutzerdefinierten Schriftart gefunden werden kann.

Beachten Sie, dass sich die in Unicode spezifizierten mathematischen Glyphen im Laufe der Zeit weiterentwickelt haben und viele Schriftarten möglicherweise keine Glyphen an der richtigen Stelle für Mathtext haben.

Akzente#

Ein Akzentbefehl kann einem beliebigen Symbol vorangestellt werden, um einen Akzent darüber zu setzen. Für einige davon gibt es lange und kurze Formen.

Befehl

Ergebnis

\acute a oder \'a

\bar a

\breve a

\dot a oder \.a

\ddot a oder \''a

\dddot a

\ddddot a

\grave a oder \`a

\hat a oder \^a

\tilde a oder \~a

\vec a

\overline{abc}

Zusätzlich gibt es zwei spezielle Akzente, die sich automatisch an die Breite der darunter liegenden Symbole anpassen:

Befehl

Ergebnis

\widehat{xyz}

\widetilde{xyz}

Bei der Platzierung von Akzenten über Kleinbuchstaben "i" und "j" ist Vorsicht geboten. Beachten Sie, dass im Folgenden \imath verwendet wird, um den zusätzlichen Punkt über dem "i" zu vermeiden.

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

Symbole#

Sie können auch eine große Anzahl von TeX-Symbolen verwenden, wie \infty, \leftarrow, \sum, \int.

Kleinbuchstaben Griechisch

α \alpha

β \beta

γ \gamma

δ \delta

ε \epsilon

ε \varepsilon

ζ \zeta

η \eta

θ \theta

ϑ \vartheta

ι \iota

κ \kappa

ϰ \varkappa

λ \lambda

μ \mu

ν \nu

ξ \xi

π \pi

ϖ \varpi

ρ \rho

ϱ \varrho

σ \sigma

ς \varsigma

τ \tau

υ \upsilon

χ \chi

ψ \psi

ω \omega

ϕ \phi

φ \varphi

ϝ \digamma

Großbuchstaben Griechisch

Γ \Gamma

Δ \Delta

Θ \Theta

Λ \Lambda

Ξ \Xi

Π \Pi

Σ \Sigma

Υ \Upsilon

Φ \Phi

Ψ \Psi

Ω \Omega

Hebräisch

\daleth

\gimel

\beth

\aleph

Lateinische benannte Zeichen

Å \AA

Æ \AE

Ð \DH

Ø \O

Þ \Thorn

ß \ss

å \aa

æ \ae

ð \eth

ð \dh

ø \o

þ \thorn

Œ \OE

œ \oe

Begrenzer

( (

( \leftparen

) \rightparen

) )

. .

/ /

< <

> >

[ [

[ \lbrack

\ \backslash

| |

| \vert

] \rbrack

] ]

{ \{

{ \leftbrace

{ \lbrace

} \rightbrace

} \}

} \rbrace

\|

\Vert

\uparrow

\downarrow

\updownarrow

\Uparrow

\Downarrow

\Updownarrow

\lceil

\rceil

\lfloor

\rfloor

\langle

\rangle

\lgroup

\rgroup

Große Symbole

\prod

\coprod

\sum

\int

\iint

\iiint

\oint

\oiint

\oiiint

\bigwedge

\bigvee

\bigcap

\bigcup

\bigodot

\bigoplus

\bigotimes

\biguplus

\bigsqcup

\iiiint

Standard-Funktionsnamen

Pr \Pr

arccos \arccos

arcsin \arcsin

arctan \arctan

arg \arg

cos \cos

cosh \cosh

cot \cot

coth \coth

csc \csc

deg \deg

det \det

dim \dim

exp \exp

gcd \gcd

hom \hom

inf \inf

ker \ker

lg \lg

lim \lim

liminf \liminf

limsup \limsup

ln \ln

log \log

max \max

min \min

sec \sec

sin \sin

sinh \sinh

sup \sup

tan \tan

tanh \tanh

Binäre Operationssymbole

* *

+ +

- -

± \pm

× \times

÷ \div

\dagger

\ddagger

\mp

\dotplus

\slash

\setminus

\ast

\circ

\bullet

\wedge

\vee

\cap

\cup

\dotminus

\minuscolon

\dotsminusdots

\wr

\cupdot

\uplus

\sqcap

\sqcup

\oplus

\ominus

\otimes

\oslash

\odot

\circledcirc

\circledast

\circleddash

\boxplus

\boxminus

\boxtimes

\boxdot

\unlhd

\unrhd

\intercal

\veebar

\barwedge

\barvee

\diamond

\cdot

\star

\divideontimes

\leftthreetimes

\rightthreetimes

\curlyvee

\curlywedge

\Cap

\Cup

\doublebarwedge

\obar

\bigtriangleup

\triangleright

\rhd

\bigtriangledown

\lhd

\triangleleft

\bigcirc

\boxbar

⨿ \amalg

\merge

Relation symbols

: :

< <

= \equal

= =

> >

϶ \backepsilon

\dots

\in

\notin

\smallin

\ni

\notsmallowns

\smallowns

\propto

\varpropto

\rightangle

\mid

\nmid

\parallel

\nparallel

\therefore

\because

\ratio

\sim

\backsim

\nsim

\eqsim

\simeq

\nsimeq

\cong

\simneqq

\ncong

\approx

\napprox

\approxeq

\approxident

\backcong

\asymp

\Bumpeq

\bumpeq

\doteq

\doteqdot

\Doteq

\fallingdotseq

\risingdotseq

\coloneq

\eqcolon

\eqcirc

\circeq

\arceq

\wedgeq

\veeeq

\stareq

\triangleq

\triangleeq

\eqdef

\measeq

\questeq

\neq

\ne

\equiv

\nequiv

\Equiv

\leq

\geq

\leqq

\geqq

\lneqq

\gneqq

\ll

\gg

\between

\nless

\ngtr

\nleq

\ngeq

\lesssim

\gtrsim

\nlesssim

\ngtrsim

\lessgtr

\gtrless

\nlessgtr

\ngtrless

\prec

\succ

\preccurlyeq

\preceq

\succeq

\succcurlyeq

\precsim

\succsim

\nprec

\nsucc

\subset

\supset

\nsubset

\nsupset

\subseteq

\supseteq

\nsubseteq

\nsupseteq

\subsetneq

\supsetneq

\sqsubset

\sqsupset

\sqsubseteq

\sqsupseteq

\oequal

\vdash

\dashv

\top

\bot

\rightassert

\models

\vDash

\Vdash

\Vvdash

\rightModels

\nvdash

\nvDash

\nVdash

\nVDash

\scurel

\trianglelefteq

\trianglerighteq

\measuredrightangle

\varlrtriangle

\bowtie

\ltimes

\rtimes

\backsimeq

\Subset

\Supset

\pitchfork

\equalparallel

\lessdot

\gtrdot

\lll

\ggg

\lesseqgtr

\gtreqless

\eqless

\eqgtr

\curlyeqprec

\curlyeqsucc

\npreccurlyeq

\nsucccurlyeq

\nsqsubseteq

\nsqsupseteq

\sqsubsetneq

\sqsupsetneq

\lnsim

\gnsim

\precnsim

\succnsim

\ntriangleleft

\ntriangleright

\ntrianglelefteq

\ntrianglerighteq

\disin

\isins

\varisins

\isindot

\isinobar

\varisinobar

\isinvb

\isinE

\nisd

\nis

\varnis

\niobar

\varniobar

\bagmember

\frown

\smile

\triangle

\blacktriangleright

\triangleright

\vartriangleright

\blacktriangleleft

\triangleleft

\vartriangleleft

\perp

\Join

\leqslant

\geqslant

\lessapprox

\gtrapprox

\lnapprox

\gnapprox

\lesseqqgtr

\gtreqqless

\eqslantless

\eqslantgtr

\precapprox

\succapprox

\precnapprox

\succnapprox

\subseteqq

\supseteqq

\subsetneqq

\supsetneqq

Arrow symbols

\overleftarrow

\overleftrightarrow

\leftarrow

\uparrow

\rightarrow

\to

\downarrow

\leftrightarrow

\updownarrow

\nwarrow

\nearrow

\searrow

\swarrow

\nleftarrow

\nrightarrow

\leftsquigarrow

\rightsquigarrow

\twoheadleftarrow

\twoheaduparrow

\twoheadrightarrow

\twoheaddownarrow

\leftarrowtail

\rightarrowtail

\mapsfrom

\mapsup

\mapsto

\mapsdown

\updownarrowbar

\hookleftarrow

\hookrightarrow

\looparrowleft

\looparrowright

\leftrightsquigarrow

\nleftrightarrow

\downzigzagarrow

\Lsh

\Rsh

\Ldsh

\Rdsh

\curvearrowleft

\curvearrowright

\circlearrowleft

\circlearrowright

\cwopencirclearrow

\leftharpoonup

\leftharpoondown

\upharpoonright

\upharpoonleft

\rightharpoonup

\rightharpoondown

\downharpoonright

\downharpoonleft

\rightleftarrows

\updownarrows

\leftrightarrows

\leftleftarrows

\upuparrows

\rightrightarrows

\downdownarrows

\leftrightharpoons

\rightleftharpoons

\nLeftarrow

\nLeftrightarrow

\nRightarrow

\Leftarrow

\Uparrow

\Rightarrow

\Downarrow

\Leftrightarrow

\Updownarrow

\Nwarrow

\Nearrow

\Searrow

\Swarrow

\Lleftarrow

\Rrightarrow

\rightzigzagarrow

\leadsto

\barleftarrow

\rightarrowbar

\cupleftarrow

\multimap

\longleftarrow

\longrightarrow

\longleftrightarrow

\Longleftarrow

\Longrightarrow

\Longleftrightarrow

\longmapsto

\dashleftarrow

\dashrightarrow

Dot symbols

\ldots

\therefore

\because

\Colon

\vdots

\cdots

\adots

\ddots

Black-board characters

\BbbC

\BbbN

\BbbP

\BbbQ

\BbbR

\BbbZ

Script characters

\scrg

\scrH

\scrI

\scrL

\scrR

\scrB

\scre

\scrE

\scrF

\scrM

\scro

Fraktur characters

\frakZ

\frakC

Miscellaneous symbols

$ \$

¢ \cent

£ \sterling

¥ \yen

§ \S

© \copyright

¬ \neg

® \circledR

° \degree

\P

ħ \hbar

ı \imath

ı \i

Ł \L

ł \l

ƛ \lambdabar

ȷ \jmath

\dag

\ddag

\perthousand

\prime

\backprime

\hslash

\Im

\ell

\wp

\Re

\mho

\Finv

\Game

\forall

\complement

\partial

\exists

\nexists

\emptyset

\varnothing

\increment

\nabla

\QED

\infty

\angle

\measuredangle

\sphericalangle

\ac

\sinewave

\hermitmatrix

\circledS

\blacksquare

\triangle

\vartriangle

\blacktriangle

\blacktriangledown

\triangledown

\bigstar

\danger

\spadesuit

\heartsuit

\diamondsuit

\clubsuit

\clubsuitopen

\flat

\natural

\sharp

\checkmark

\maltese

If a particular symbol does not have a name (as is true of many of the more obscure symbols in the STIX fonts), Unicode characters can also be used

r'$\u23ce$'

Galerie generiert von Sphinx-Gallery