Web Analytics

matplot2tikz

⭐ 266 stars Polish by ErwindeGelder

🌐 Język

matplot2tikz

Artysta wcześniej znany jako tikzplotlib.

PyPI - Wersja GitHub Licencja PyPI - Wersja Pythona Ruff Sprawdzono z mypy codecov PyPI Downloads

To jest matplot2tikz, narzędzie Pythona do konwersji wykresów matplotlib na PGFPlots (PGF/TikZ) wykresy takie jak

do natywnego osadzania w dokumentach LaTeX lub ConTeXt.

Wyjście z matplot2tikz jest w formacie PGFPlots, biblioteki TeX opartej na PGF/TikZ, która opisuje wykresy za pomocą osi, danych itp. W związku z tym wynik matplot2tikz

niż surowe wyjście TikZ. Na przykład, wykres 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}

(Użyj get_tikz_code() zamiast save(), jeśli chcesz otrzymać kod jako łańcuch znaków.)

Dostosowywanie wykresu jest proste i można to zrobić jako część pracy w TeX. Fantastyczny podręcznik PGFPlots zawiera świetne przykłady, jak sprawić, by Twój wykres wyglądał jeszcze lepiej.

Oczywiście nie wszystkie wykresy utworzone przez matplotlib można przekonwertować bez błędów. W szczególności, wykresy 3D nie działają.

Instalacja

matplot2tikz jest dostępny w Python Package Index, więc po prostu wykonaj

pip install matplot2tikz
aby zainstalować.

Użytkowanie

``python import matplot2tikz

matplot2tikz.save("mytikz.tex") # or matplot2tikz.save("mytikz.tex", flavor="context") ` aby zapisać plik TikZ jako mytikz.tex.

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

Upewnij się również, że pakiety PGFPlots oraz odpowiednie wsparcie Unicode są uwzględnione w nagłówku Twojego dokumentu:

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

Kod można również uzyskać poprzez:

`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") ` Polecenie usunie punkty znajdujące się poza granicami osi, uprości krzywe oraz zmniejszy gęstość punktów do określonej docelowej rozdzielczości.

matplot2tikz vs. tikzplotlib

Biblioteka matplot2tikz wywodzi się z projektu tikzplotlib. Powodem powstania nowej biblioteki jest fakt, że tikzplotlib nie jest już utrzymywana, a utrzymanie mogło być realizowane tylko przez jedynego właściciela biblioteki tikzplotlib. Jeśli musisz korzystać z zewnętrznego kodu, który już zależy od tikzplotlib, zaleca się zmianę zależności tikzplotlib na matplot2tikz. Jeśli nie jest to możliwe, obejściem jest umieszczenie poniższego kodu przed importowaniem zewnętrznego kodu:

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

Współtworzenie

Jeśli napotkasz błędy, chciałbyś wnieść swój wkład, masz ciekawe przykłady możliwości matplot2tikz, lub po prostu szukasz więcej informacji, odwiedź stronę GitHub matplot2tikz.

Aby wnieść swój wkład, wykonaj następujące kroki:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. Dlatego jeśli chcesz wprowadzić zmiany, zrób to w osobnej gałęzi. Na przykład możesz utworzyć nową gałąź używając git checkout -b feature/my_awesome_new_feature.
  • Przed wysłaniem zmian upewnij się, że kod spełnia zasady lintowania i testy przechodzą
pomyślnie. Uruchom
tox. To sprawdza lintowanie i uruchamia wszystkie skrypty testujące. Aby ręcznie wykonać te kroki, użyj następujących poleceń: /reports/coverage_html/index.html.

UWAGA: Obecnie nie cały kod jest pokryty testami. Idealnie byłoby, aby cały kod był pokryty, ale na razie upewnij się, że cały nowy kod jest pokryty testami.

utwórz pull request. Najlepiej, jeśli co najmniej jedna osoba zrecenzuje pull request przed mergem.

Zwróć uwagę, że obecnie tylko "Właściciele kodu" mogą scalać pull requesty do gałęzi main`. Ma to na celu zapewnienie, że nie każdy może przypadkowo zepsuć główny kod (nawet nieumyślnie). Jeśli chcesz zostać "Właścicielem kodu", daj nam znać!

Licencja

matplot2tikz jest publikowany na licencji MIT.

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