Web Analytics

matplot2tikz

⭐ 266 stars Dutch by ErwindeGelder

🌐 Taal

matplot2tikz

De artiest voorheen bekend als tikzplotlib.

PyPI - Versie GitHub Licentie PyPI - Python Versie Ruff Gecontroleerd met mypy codecov PyPI Downloads

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

dan ruwe TikZ-uitvoer. Bijvoorbeeld, de matplotlib-figuur

import matplotlib.pyplot as plt
import numpy as np

plt.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 matplot2tikz

om te installeren.

Gebruik

``python import matplot2tikz

matplot2tikz.save("mytikz.tex") # or matplot2tikz.save("mytikz.tex", flavor="context") `

om het TikZ-bestand op te slaan als mytikz.tex.

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() `

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:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. 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: /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.

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 ---