Web Analytics

matplot2tikz

⭐ 266 stars German by ErwindeGelder

🌐 Sprache

matplot2tikz

Der Künstler, ehemals bekannt als tikzplotlib.

PyPI - Version GitHub Lizenz PyPI - Python Version Ruff Geprüft mit mypy codecov PyPI Downloads

Dies ist matplot2tikz, ein Python-Tool zur Umwandlung von matplotlib-Grafiken in PGFPlots- (PGF/TikZ) Grafiken wie

zur nativen Einbindung in LaTeX- oder ConTeXt-Dokumente.

Die Ausgabe von matplot2tikz erfolgt in PGFPlots, einer TeX- Bibliothek, die auf PGF/TikZ aufbaut und Grafiken anhand von Achsen, Daten usw. beschreibt. Folglich enthält die Ausgabe von matplot2tikz

als roher TikZ-Ausgabe. Zum Beispiel die matplotlib-Grafik

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}

(Verwenden Sie get_tikz_code() anstelle von save(), wenn Sie den Code als String erhalten möchten.)

Das Anpassen des Plots ist unkompliziert und kann als Teil Ihres TeX-Workflows erfolgen. Das fantastische PGFPlots-Handbuch enthält großartige Beispiele dafür, wie Sie Ihr Diagramm noch besser aussehen lassen können.

Natürlich können nicht alle von matplotlib erzeugten Abbildungen fehlerfrei konvertiert werden. Insbesondere funktionieren 3D-Plots nicht.

Installation

matplot2tikz ist über den Python Package Index erhältlich, daher führen Sie einfach aus

pip install matplot2tikz

zu installieren.

Verwendung

``python import matplot2tikz

matplot2tikz.save("mytikz.tex") # or matplot2tikz.save("mytikz.tex", flavor="context") ` um die TikZ-Datei als mytikz.tex zu speichern.

dies zu tun ist mittels

`latex \input{/path/to/mytikz} `

Stellen Sie außerdem sicher, dass die Pakete für PGFPlots und die richtige Unicode-Unterstützung im Kopfbereich Ihres Dokuments eingebunden sind:

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

Sie können den Code auch erhalten über:

`python import matplot2tikz

matplot2tikz.Flavors.latex.preamble() # or matplot2tikz.Flavors.context.preamble() `

`python import matplotlib.pyplot as plt import numpy as np

# ... do your plotting

import matplot2tikz

matplot2tikz.clean_figure() matplot2tikz.save("test.tex") ` Der Befehl entfernt Punkte, die außerhalb der Achsengrenzen liegen, vereinfacht Kurven und reduziert die Punktdichte auf die angegebene Zielauflösung.

matplot2tikz vs. tikzplotlib

Diese matplot2tikz-Bibliothek stammt ursprünglich aus dem tikzplotlib- Projekt. Der Grund für die Erstellung einer neuen Bibliothek ist, dass tikzplotlib nicht mehr gepflegt wird und die Wartung nur vom alleinigen Besitzer der tikzplotlib-Bibliothek durchgeführt werden konnte. Wenn Sie Drittanbieter-Code verwenden müssen, der bereits von tikzplotlib abhängt, wird empfohlen, die tikzplotlib-Abhängigkeit auf matplot2tikz umzustellen. Wenn dies nicht möglich ist, besteht eine Lösung darin, den folgenden Code vor dem Import des Drittanbieter-Codes einzufügen:

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

Beitrag leisten

Wenn Sie auf Fehler stoßen, beitragen möchten, schöne Beispiele dafür haben, was matplot2tikz leisten kann, oder einfach nach weiteren Informationen suchen, besuchen Sie bitte die matplot2tikz GitHub-Seite.

Zum Mitwirken befolgen Sie diese Schritte:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. Wenn Sie Änderungen vornehmen möchten, tun Sie dies daher in einem separaten Branch. Zum Beispiel können Sie einen neuen Branch mit git checkout -b feature/mein_tolles_neues_feature erstellen.
  • Bevor Sie Änderungen pushen, stellen Sie sicher, dass der Code den Linting-Regeln entspricht und die Tests
erfolgreich sind. Führen Sie
tox aus. Dies macht einen Linting-Check und führt alle Testskripte aus. Um diese Schritte manuell auszuführen, verwenden Sie folgende Befehle: /reports/coverage_html/index.html aufrufen.

HINWEIS: Derzeit ist noch nicht aller Code abgedeckt. Im Idealfall ist aller Code abgedeckt, aber stellen Sie sicher, dass zumindest aller neuer Code durch Tests abgedeckt ist.

Branch übernehmen möchten, erstellen Sie einen Pull-Request. Im Idealfall gibt es mindestens einen Reviewer, der den Pull-Request vor dem Merge überprüft.

Beachte, dass derzeit nur "Code-Besitzer" Pull Requests in den main`-Branch zusammenführen können. Dies soll sicherstellen, dass nicht jeder den Hauptcode (auch unbeabsichtigt) beschädigen kann. Wenn du "Code-Besitzer" werden möchtest, lass es uns wissen!

Lizenz

matplot2tikz wird unter der MIT- Lizenz veröffentlicht.

--- Tranlated By Open Ai Tx | Last indexed: 2025-12-11 ---