matplot2tikz
De artiest voorheen bekend als tikzplotlib.Dit is matplot2tikz, een Python-tool voor het omzetten van matplotlib-figuren naar PGFPlots (PGF/TikZ) figuren zoals

voor native opname in LaTeX- of ConTeXt-documenten.
De uitvoer van matplot2tikz is in PGFPlots, een TeX- bibliotheek die bovenop PGF/TikZ draait en grafieken beschrijft in termen van assen, data, enzovoort. Daardoor bevat de uitvoer van matplot2tikz
- meer informatie,
- gemakkelijker te begrijpen is, en
- eenvoudiger te bewerken is
import matplotlib.pyplot as plt
import numpy as npplt.style.use("ggplot")
t = np.arange(0.0, 2.0, 0.1)
s = np.sin(2 np.pi t)
s2 = np.cos(2 np.pi t)
plt.plot(t, s, "o-", lw=4.1)
plt.plot(t, s2, "o-", lw=4.1)
plt.xlabel("time (s)")
plt.ylabel("Voltage (mV)")
plt.title("Simple plot $\\frac{\\alpha}{2}$")
plt.grid(True)
import matplot2tikz
matplot2tikz.save("test.tex")
--> (see above) gives
\begin{tikzpicture}\definecolor{chocolate2267451}{RGB}{226,74,51}
\definecolor{dimgray85}{RGB}{85,85,85}
\definecolor{gainsboro229}{RGB}{229,229,229}
\definecolor{steelblue52138189}{RGB}{52,138,189}
\begin{axis}[
axis background/.style={fill=gainsboro229},
axis line style={white},
tick align=outside,
tick pos=left,
title={Simple plot \(\displaystyle \frac{\alpha}{2}\)},
x grid style={white},
xlabel=\textcolor{dimgray85}{time (s)},
xmajorgrids,
xmin=-0.095, xmax=1.995,
xtick style={color=dimgray85},
y grid style={white},
ylabel=\textcolor{dimgray85}{Voltage (mV)},
ymajorgrids,
ymin=-1.1, ymax=1.1,
ytick style={color=dimgray85}
]
\addplot [line width=1.64pt, chocolate2267451, mark=*, mark size=3, mark options={solid}]
table {%
0 0
% [...]
1.9 -0.587785252292473
};
\addplot [line width=1.64pt, steelblue52138189, mark=*, mark size=3, mark options={solid}]
table {%
0 1
% [...]
1.9 0.809016994374947
};
\end{axis}
\end{tikzpicture}
(Gebruik get_tikz_code() in plaats van save() als je de code als een string wilt hebben.)
Het aanpassen van de plot is eenvoudig en kan onderdeel zijn van je TeX-werkstroom. De fantastische PGFPlots-handleiding bevat geweldige voorbeelden van hoe je je plot er nog beter uit kunt laten zien.
Natuurlijk kunnen niet alle figuren die door matplotlib zijn gemaakt zonder fouten worden geconverteerd. Met name 3D-plots werken niet.
Installatie
matplot2tikz is beschikbaar via de Python Package Index, dus voer gewoon uit
pip install matplot2tikzom te installeren.
Gebruik
- Genereer je matplotlib-plot zoals gebruikelijk.
- In plaats van
pyplot.show(), roep matplot2tikz aan door
python
import matplot2tikz matplot2tikz.save("mytikz.tex")
# or
matplot2tikz.save("mytikz.tex", flavor="context")
` om het TikZ-bestand op te slaan als
mytikz.tex.- Voeg de inhoud van
mytikz.tex toe aan je TeX-broncode. Een handige manier om dit te doen
is via
`latex
\input{/path/to/mytikz}
` Zorg er ook voor dat de pakketten voor PGFPlots en juiste Unicode-ondersteuning zijn
opgenomen in de header van uw document:
`latex
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\DeclareUnicodeCharacter{2212}{−}
\usepgfplotslibrary{groupplots,dateplot}
\usetikzlibrary{patterns,shapes.arrows}
\pgfplotsset{compat=newest}
` or:
`latex
\setupcolors[state=start]
\usemodule[tikz]
\usemodule[pgfplots]
\usepgfplotslibrary[groupplots,dateplot]
\usetikzlibrary[patterns,shapes.arrows]
\pgfplotsset{compat=newest}
\unexpanded\def\startgroupplot{\groupplot}
\unexpanded\def\stopgroupplot{\endgroupplot}
` U kunt de code ook verkrijgen via:
`python
import matplot2tikz matplot2tikz.Flavors.latex.preamble()
# or
matplot2tikz.Flavors.context.preamble()
`- [Optioneel] Maak de figuur schoon voordat je deze exporteert naar tikz met het
clean_figure
commando.
`python
import matplotlib.pyplot as plt
import numpy as np # ... do your plotting
import matplot2tikz
matplot2tikz.clean_figure()
matplot2tikz.save("test.tex")
`
Het commando zal punten verwijderen die buiten de assenlimieten liggen, krommen vereenvoudigen en
de puntdichtheid verminderen voor de opgegeven doeldetail.matplot2tikz vs. tikzplotlib
Deze matplot2tikz-bibliotheek is ontstaan uit het tikzplotlib
project.
De reden dat er een nieuwe bibliotheek is gemaakt, is omdat tikzplotlib niet langer wordt onderhouden en
onderhoud alleen door de enige eigenaar van de tikzplotlib-bibliotheek kon worden gedaan.
Als u gebruik moet maken van externe code die al afhankelijk is van tikzplotlib, wordt aangeraden om de
tikzplotlib-afhankelijkheid te vervangen door matplot2tikz.
Als dit niet mogelijk is, is een oplossing om de volgende code voor het importeren van de
externe code te plaatsen:
`
import sys
import matplot2tikz
sys.modules["tikzplotlib"] = matplot2tikz
# Do other imports, e.g., using import my_third_party_library
# If tikzplotlib is used in this library, it will automatically use matplot2tikz instead.
`Bijdragen
Als je bugs tegenkomt, wilt bijdragen, mooie voorbeelden hebt van wat matplot2tikz kan doen, of gewoon op zoek bent naar meer informatie, bezoek dan de GitHub-pagina van matplot2tikz.
Volg deze stappen om bij te dragen:
- Download de git repository, bijvoorbeeld met
git clone git@github.com:ErwindeGelder/matplot2tikz.git.
- Maak een virtuele omgeving aan, bijvoorbeeld met
python -m venv venv.
Activeer de virtuele omgeving (bijvoorbeeld op Windows, venv\Scripts\activate).
Installeer uv met pip install uv en daarna tox-uv met uv pip install tox-uv.
De hoofdbranch is beschermd, wat betekent dat je niet direct wijzigingen naar deze branch kunt pushen.
Wil je wijzigingen aanbrengen, doe dat dan in een aparte branch. Bijvoorbeeld, je kunt een nieuwe branch maken met git checkout -b feature/mijn_coole_nieuwe_feature.
- Voordat je wijzigingen pusht, zorg ervoor dat de code voldoet aan de lint-regels en dat de tests geslaagd zijn.
Voer tox uit. Dit doet een lint-controle en voert alle test scripts uit. Om deze stappen handmatig uit te voeren, gebruik de volgende commando's:
- Voer
tox -e lint uit. Je kunt de lint-opdrachten handmatig doen met:
(Eenmalig) uv pip install -r requirements-lint.txt
ruff format . --check (verwijder de --check vlag om ruff de formatting te laten uitvoeren)
ruff check .
mypy .
Voer tox -e py310 uit.
Voer tox -e py311 uit.
Voer tox -e py312 uit.
Voer tox -e py313 uit.
Voer tox -e py314 uit.
Voer tox -e combine-test-reports uit.
Controleer of de tests alles hebben gedekt via het coverage rapport in
/reports/coverage_html/index.html. LET OP: Op dit moment is nog niet alle code gedekt. Idealiter is alle code gedekt, maar zorg er nu voor dat alle nieuwe code door tests wordt gedekt.
- Push wijzigingen naar GitHub. Als alles goed is en je wilt je wijzigingen mergen naar de
main branch, maak dan een pull request.
Idealiter is er ten minste één reviewer die de pull request beoordeelt vóór de merge.Let op dat momenteel alleen "Code-eigenaren" pull requests kunnen samenvoegen naar de
main` branch. Dit is om te
verzekeren dat niet iedereen de hoofdcode kan breken (zelfs niet per ongeluk). Als je een "Code-eigenaar"
wilt worden, laat het ons weten!Licentie
matplot2tikz wordt gepubliceerd onder de MIT licentie.
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-11 ---