Web Analytics

matplot2tikz

⭐ 266 stars Indonesian by ErwindeGelder

🌐 Bahasa

matplot2tikz

Seniman yang sebelumnya dikenal sebagai tikzplotlib.

PyPI - Versi Lisensi GitHub PyPI - Versi Python Ruff Diperiksa dengan mypy codecov PyPI Downloads

Ini adalah matplot2tikz, sebuah alat Python untuk mengonversi gambar matplotlib menjadi gambar PGFPlots (PGF/TikZ) seperti

untuk penyisipan langsung ke dalam dokumen LaTeX atau ConTeXt.

Output dari matplot2tikz berupa PGFPlots, sebuah pustaka TeX yang berada di atas PGF/TikZ dan menggambarkan grafik dalam istilah sumbu, data, dll. Dengan demikian, output dari matplot2tikz

daripada output TikZ mentah. Sebagai contoh, gambar 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}

(Gunakan get_tikz_code() sebagai pengganti save() jika Anda menginginkan kode tersebut dalam bentuk string.)

Mengubah plot sangat mudah dan dapat dilakukan sebagai bagian dari alur kerja TeX Anda. Manual PGFPlots yang luar biasa berisi contoh-contoh hebat tentang cara membuat plot Anda terlihat lebih baik lagi.

Tentu saja, tidak semua gambar yang dihasilkan oleh matplotlib dapat dikonversi tanpa kesalahan. Terutama, plot 3D tidak berfungsi.

Instalasi

matplot2tikz tersedia di Python Package Index, jadi cukup lakukan

pip install matplot2tikz
untuk menginstal.

Penggunaan

``python import matplot2tikz

matplot2tikz.save("mytikz.tex") # or matplot2tikz.save("mytikz.tex", flavor="context") ` untuk menyimpan file TikZ sebagai mytikz.tex.

adalah melalui

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

Pastikan juga bahwa paket untuk PGFPlots dan dukungan Unicode yang tepat sudah disertakan di header dokumen Anda:

`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} ` Anda juga dapat memperoleh kode melalui:

`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") ` Perintah ini akan menghapus titik-titik yang berada di luar batas sumbu, menyederhanakan kurva dan mengurangi kepadatan titik untuk resolusi target yang ditentukan.

matplot2tikz vs. tikzplotlib

Pustaka matplot2tikz ini berasal dari proyek tikzplotlib. Alasan pustaka baru dibuat adalah karena tikzplotlib sudah tidak lagi dipelihara dan pemeliharaan hanya bisa dilakukan oleh satu pemilik pustaka tikzplotlib. Jika Anda perlu menggunakan kode pihak ketiga yang sudah bergantung pada tikzplotlib, disarankan untuk mengganti dependensi tikzplotlib ke matplot2tikz. Jika hal ini tidak memungkinkan, solusi sementara adalah dengan menaruh kode berikut sebelum mengimpor kode pihak ketiga:

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

Berkontribusi

Jika Anda mengalami bug, ingin berkontribusi, memiliki contoh menarik tentang apa yang dapat dilakukan matplot2tikz, atau jika Anda hanya mencari informasi lebih lanjut, silakan kunjungi halaman GitHub matplot2tikz.

Untuk berkontribusi, ikuti langkah-langkah berikut:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. Oleh karena itu, jika Anda ingin melakukan perubahan, lakukan di branch terpisah. Sebagai contoh, Anda dapat membuat branch baru dengan git checkout -b feature/my_awesome_new_feature.
  • Sebelum melakukan push perubahan, pastikan kode sudah mematuhi aturan linting dan semua pengujian
berhasil. Jalankan
tox. Perintah ini melakukan pengecekan linting dan menjalankan semua skrip pengujian. Untuk melakukan langkah-langkah ini secara manual, gunakan perintah berikut: /reports/coverage_html/index.html.

CATATAN: Saat ini, tidak semua kode tercakup. Idealnya, semua kode tercakup, namun untuk saat ini, pastikan bahwa semua kode baru sudah tercakup oleh pengujian.

buatlah pull request. Idealnya, ada setidaknya satu reviewer yang meninjau pull request sebelum proses merge.

Perhatikan bahwa saat ini hanya "Pemilik Kode" yang dapat menggabungkan pull request ke cabang main`. Ini untuk memastikan bahwa tidak semua orang dapat merusak kode utama (bahkan secara tidak sengaja). Jika Anda ingin menjadi "Pemilik Kode", beritahu kami!

Lisensi

matplot2tikz diterbitkan di bawah lisensi MIT.

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