matplot2tikz
Seniman yang sebelumnya dikenal sebagai tikzplotlib.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
- mempertahankan lebih banyak informasi,
- lebih mudah dipahami, dan
- lebih mudah untuk diedit
import matplotlib.pyplot as plt
import numpy as npplt.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
- Buat plot matplotlib Anda seperti biasa.
- Alih-alih menggunakan
pyplot.show(), panggil matplot2tikz dengan
python
import matplot2tikz matplot2tikz.save("mytikz.tex")
# or
matplot2tikz.save("mytikz.tex", flavor="context")
`
untuk menyimpan file TikZ sebagai mytikz.tex.- Tambahkan isi dari
mytikz.tex ke dalam kode sumber TeX Anda. Cara yang mudah untuk melakukannya
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()
`- [Opsional] Bersihkan gambar sebelum mengekspor ke tikz menggunakan perintah
clean_figure
.
`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:
- Unduh repository git, misalnya dengan
git clone git@github.com:ErwindeGelder/matplot2tikz.git.
- Buat lingkungan virtual, misalnya dengan
python -m venv venv.
Aktifkan lingkungan virtual (misalnya, pada Windows, venv\Scripts\activate).
Instal uv dengan pip install uv dan kemudian tox-uv dengan uv pip install tox-uv.
Branch utama dilindungi, artinya Anda tidak bisa langsung melakukan push perubahan ke branch ini.
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:
- Jalankan
tox -e lint. Anda dapat menjalankan perintah linting secara manual dengan:
(Satu kali) uv pip install -r requirements-lint.txt
ruff format . --check (hilangkan flag --check agar ruff melakukan pemformatan)
ruff check .
mypy .
Jalankan tox -e py310.
Jalankan tox -e py311.
Jalankan tox -e py312.
Jalankan tox -e py313.
Jalankan tox -e py314.
Jalankan tox -e combine-test-reports
Periksa apakah pengujian telah mencakup semua hal menggunakan laporan coverage di
/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.
- Push perubahan ke GitHub. Jika semuanya sudah OK dan Anda ingin menggabungkan perubahan ke branch
main,
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 ---