Web Analytics

matplot2tikz

⭐ 266 stars Italian by ErwindeGelder

🌐 Lingua

matplot2tikz

L'artista precedentemente conosciuto come tikzplotlib.

PyPI - Versione GitHub Licenza PyPI - Versione Python Ruff Verificato con mypy

codecov PyPI Downloads

Questo è matplot2tikz, uno strumento Python per convertire figure matplotlib in figure PGFPlots (PGF/TikZ) come

per l'inclusione nativa in documenti LaTeX o ConTeXt.

L'output di matplot2tikz è in PGFPlots, una libreria TeX che si basa su PGF/TikZ e descrive i grafici in termini di assi, dati, ecc. Di conseguenza, l'output di matplot2tikz

rispetto all'output TikZ grezzo. Ad esempio, la figura matplotlib

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}

(Usa get_tikz_code() invece di save() se desideri il codice come stringa.)

Modificare il grafico è semplice e può essere fatto come parte del tuo flusso di lavoro TeX. Il fantastico manuale di PGFPlots contiene ottimi esempi su come rendere il tuo grafico ancora migliore.

Ovviamente, non tutte le figure prodotte da matplotlib possono essere convertite senza errori. In particolare, i grafici 3D non funzionano.

Installazione

matplot2tikz è disponibile dal Python Package Index, quindi basta eseguire

pip install matplot2tikz

per installare.

Utilizzo

``python import matplot2tikz

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

per memorizzare il file TikZ come mytikz.tex.

è tramite

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

Assicurati inoltre che i pacchetti per PGFPlots e il corretto supporto Unicode siano inclusi nell'intestazione del tuo documento:

`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} ` Puoi anche ottenere il codice tramite:

`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") ` Il comando rimuoverà i punti che sono al di fuori dei limiti degli assi, semplificherà le curve e ridurrà la densità dei punti per la risoluzione di destinazione specificata.

matplot2tikz vs. tikzplotlib

Questa libreria matplot2tikz ha origine dal progetto tikzplotlib. La ragione per cui è stata creata una nuova libreria è che tikzplotlib non è più mantenuta e la manutenzione poteva essere effettuata solo dal singolo proprietario della libreria tikzplotlib. Se hai bisogno di usare codice di terze parti che già dipende da tikzplotlib, si suggerisce di cambiare la dipendenza da tikzplotlib a matplot2tikz. Se ciò non è possibile, una soluzione alternativa è inserire il seguente codice prima di importare il codice di terze parti:

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

Contribuire

Se riscontri bug, desideri contribuire, hai ottimi esempi di ciò che matplot2tikz può fare, o se semplicemente cerchi maggiori informazioni, visita la pagina GitHub di matplot2tikz.

Per contribuire, segui questi passaggi:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. Pertanto, se vuoi apportare modifiche, fallo in un branch separato. Ad esempio, puoi creare un nuovo branch usando git checkout -b feature/mia_fantastica_nuova_feature.
  • Prima di inviare le modifiche, assicurati che il codice rispetti le regole di linting e che i test siano
superati. Esegui
tox. Questo esegue un controllo di linting e tutti gli script di test. Per eseguire manualmente questi passaggi, usa i seguenti comandi: /reports/coverage_html/index.html.

NOTA: Attualmente, non tutto il codice è coperto. Idealmente, tutto il codice dovrebbe esserlo, ma per ora assicurati che tutto il nuovo codice sia coperto dai test.

crea una pull request. Idealmente, ci dovrebbe essere almeno un revisore che controlla la pull request prima della fusione.

Nota che attualmente solo i "Code owners" possono unire le pull request sul branch main`. Questo serve a garantire che non tutti possano compromettere il codice principale (anche involontariamente). Se vuoi diventare un "Code owner", faccelo sapere!

Licenza

matplot2tikz è pubblicato sotto la licenza MIT.

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