matplot2tikz
Eskiden tikzplotlib olarak bilinen sanatçı.Bu, matplotlib figürlerini PGFPlots (PGF/TikZ) figürlerine dönüştüren bir Python aracı olan matplot2tikz'dir, örneğin

LaTeX veya ConTeXt belgelerine yerel olarak dahil edilmek üzere.
Matplot2tikz'in çıktısı PGFPlots içindedir; bu, PGF/TikZ üzerine kurulu bir TeX kütüphanesidir ve eksenler, veriler vb. açısından grafikleri tanımlar. Sonuç olarak, matplot2tikz'in çıktısı
- daha fazla bilgiyi korur,
- daha kolay anlaşılabilir ve
- daha kolay düzenlenebilir
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}
(Kodu bir dize olarak almak istiyorsanız, save() yerine get_tikz_code() kullanın.)
Grafiği düzenlemek kolaydır ve TeX çalışma akışınızın bir parçası olarak yapılabilir. Harika PGFPlots kılavuzu grafiğinizi daha da iyi gösterecek harika örnekler içerir.
Elbette, matplotlib tarafından üretilen tüm figürler hatasız şekilde dönüştürülemez. Özellikle, 3D grafikler çalışmaz.
Kurulum
matplot2tikz Python Paket İndeksi üzerinden mevcuttur, bu yüzden sadece
pip install matplot2tikzkurmak için.
Kullanım
- Her zamanki gibi matplotlib grafiğinizi oluşturun.
pyplot.show()yerine, matplot2tikz'i şu şekilde çağırın:
python
import matplot2tikz matplot2tikz.save("mytikz.tex")
# or
matplot2tikz.save("mytikz.tex", flavor="context")
` TikZ dosyasını
mytikz.tex olarak kaydetmek için.
mytikz.tex içeriğini TeX kaynak kodunuza ekleyin. Bunu yapmanın pratik bir yolu
şudur:
`latex
\input{/path/to/mytikz}
` Ayrıca, belgenizin başlığında PGFPlots paketlerinin ve uygun Unicode desteğinin
dahil edildiğinden emin olun:
`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}
` Koda ayrıca şu yollarla da ulaşabilirsiniz:
`python
import matplot2tikz matplot2tikz.Flavors.latex.preamble()
# or
matplot2tikz.Flavors.context.preamble()
`- [Opsiyonel] Şekli tikz'e aktarmadan önce
clean_figure
komutunu kullanarak temizleyin.
`python
import matplotlib.pyplot as plt
import numpy as np # ... do your plotting
import matplot2tikz
matplot2tikz.clean_figure()
matplot2tikz.save("test.tex")
`
Komut, eksen sınırlarının dışında kalan noktaları kaldıracak, eğrileri basitleştirecek ve
belirtilen hedef çözünürlük için nokta yoğunluğunu azaltacaktır.matplot2tikz vs. tikzplotlib
Bu matplot2tikz kütüphanesi tikzplotlib
projesinden türemiştir.
Yeni bir kütüphane oluşturulmasının nedeni, tikzplotlib'in artık bakımda olmaması ve
bakımın yalnızca tikzplotlib kütüphanesinin tek sahibi tarafından yapılabiliyor olmasıdır.
Zaten tikzplotlib'e bağımlı olan üçüncü parti kodları kullanmanız gerekiyorsa, tikzplotlib
bağımlılığını matplot2tikz olarak değiştirmeniz önerilir.
Eğer bu mümkün değilse, bir geçici çözüm olarak aşağıdaki kodu üçüncü parti kodu import etmeden
önce ekleyebilirsiniz:
`
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.
`Katkıda Bulunma
Hatalarla karşılaşırsanız, katkıda bulunmak isterseniz, matplot2tikz'in neler yapabildiğine dair güzel örnekleriniz varsa veya sadece daha fazla bilgi arıyorsanız, lütfen
matplot2tikz'in GitHub sayfasını ziyaret edin.
Katkıda bulunmak için şu adımları izleyin:
- Git deposunu indirin, örneğin
git clone git@github.com:ErwindeGelder/matplot2tikz.git komutunu kullanarak.
- Bir sanal ortam oluşturun, örneğin
python -m venv venv komutunu kullanarak.
Sanal ortamı etkinleştirin (örneğin, Windows'ta venv\Scripts\activate).
uv'yi pip install uv ile, ardından tox-uv'yi uv pip install tox-uv ile kurun.
Ana dal korumalıdır, yani bu dala doğrudan değişiklikleri gönderemezsiniz.
Bu nedenle, değişiklik yapmak istiyorsanız, bunu ayrı bir dalda yapın. Örneğin, yeni bir dalı
git checkout -b feature/my_awesome_new_feature komutuyla oluşturabilirsiniz.
- Değişiklikleri göndermeden önce kodun biçimlendirme kurallarına uyduğundan ve testlerin
başarılı olduğundan emin olun. tox komutunu çalıştırın. Bu komut biçimlendirme kontrolü yapar ve tüm test betiklerini çalıştırır. Bu adımları elle yapmak için aşağıdaki komutları kullanın:
tox -e lint komutunu çalıştırın. Biçimlendirme komutlarını elle yapmak için:
(Bir kez) uv pip install -r requirements-lint.txt
ruff format . --check (--check bayrağını kaldırırsanız ruff biçimlendirmeyi yapar)
ruff check .
mypy .
tox -e py310 komutunu çalıştırın.
tox -e py311 komutunu çalıştırın.
tox -e py312 komutunu çalıştırın.
tox -e py313 komutunu çalıştırın.
tox -e py314 komutunu çalıştırın.
tox -e combine-test-reports komutunu çalıştırın.
Testlerin her şeyi kapsayıp kapsamadığını /reports/coverage_html/index.html
içindeki kapsam raporundan kontrol edin. NOT: Şu anda tüm kod kapsanmamaktadır. İdeal olarak tüm kod kapsanmalıdır, ancak şimdilik
tüm yeni kodun testlerle kapsandığından emin olun.
- Değişiklikleri GitHub'a gönderin. Her şey tamamsa ve değişikliklerinizi
main
dalına birleştirmek istiyorsanız bir çekme isteği (pull request) oluşturun.
İdeal olarak, birleştirmeden önce en az bir inceleyici çekme isteğini incelemelidir.Şu anda yalnızca "Kod sahipleri"nin
main` dalına pull request birleştirebileceğini unutmayın. Bu,
ana kodun herkes tarafından (istemeden de olsa) bozulmamasını sağlamak içindir. "Kod sahibi"
olmak istiyorsanız, bize bildirin!Lisans
matplot2tikz, MIT lisansı altında yayımlanmıştır.
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-11 ---