Web Analytics

matplot2tikz

⭐ 266 stars Arabic by ErwindeGelder

🌐 اللغة

matplot2tikz

الفنان المعروف سابقاً باسم tikzplotlib.

PyPI - Version GitHub License PyPI - Python Version Ruff Checked with mypy codecov PyPI Downloads

هذه هي matplot2tikz، أداة بايثون لتحويل أشكال matplotlib إلى PGFPlots (PGF/TikZ) مثل الشكل التالي

لإدراجها بشكل أصلي في مستندات LaTeX أو ConTeXt.

مخرجات matplot2tikz تكون بصيغة PGFPlots، وهي مكتبة TeX تعتمد على PGF/TikZ وتصف الرسومات من حيث المحاور والبيانات وغيرها. بناءً على ذلك، فإن مخرجات matplot2tikz

مقارنةً بـ مخرجات TikZ الخام. على سبيل المثال، شكل 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}

(استخدم get_tikz_code() بدلاً من save() إذا كنت تريد الحصول على الكود كسلسلة نصية.)

تعديل الرسم البياني أمر بسيط ويمكن القيام به كجزء من سير عمل TeX الخاص بك. دليل PGFPlots الرائع يحتوي على أمثلة رائعة حول كيفية جعل الرسم البياني يبدو أفضل حتى.

بالطبع، ليس كل الرسومات التي ينتجها matplotlib يمكن تحويلها بدون أخطاء. على وجه الخصوص، الرسومات ثلاثية الأبعاد لا تعمل.

التثبيت

matplot2tikz متوفر من فهرس حزم بايثون Index، لذا ببساطة قم بـ

pip install matplot2tikz

للتثبيت.

طريقة الاستخدام

``python import matplot2tikz

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

لحفظ ملف TikZ باسم mytikz.tex.

بذلك هي عبر

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

تأكد أيضًا من تضمين الحزم الخاصة بـ PGFPlots ودعم يونيكود المناسب في ترويسة مستندك:

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

يمكنك أيضًا الحصول على الشيفرة من خلال:

`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") ` سيقوم الأمر بإزالة النقاط التي تقع خارج حدود المحاور، وتبسيط المنحنيات وتقليل كثافة النقاط للدقة المستهدفة المحددة.

مقارنة بين matplot2tikz و tikzplotlib

ظهرت مكتبة matplot2tikz هذه من مشروع tikzplotlib. السبب في إنشاء مكتبة جديدة هو أن مكتبة tikzplotlib لم تعد مدعومة ويمكن إجراء الصيانة فقط من قبل مالك tikzplotlib الوحيد. إذا كنت بحاجة لاستخدام كود طرف ثالث يعتمد بالفعل على tikzplotlib، يُنصح بتغيير الاعتماد من tikzplotlib إلى matplot2tikz. إذا لم يكن ذلك ممكنًا، يمكن التحايل بوضع الكود التالي قبل استيراد كود الطرف الثالث:

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

المساهمة

إذا واجهت أخطاء أو كنت ترغب في المساهمة أو لديك أمثلة رائعة لما يمكن أن يفعله matplot2tikz، أو إذا كنت تبحث فقط عن مزيد من المعلومات، يرجى زيارة صفحة matplot2tikz على GitHub.

للمساهمة، اتبع الخطوات التالية:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. لذلك، إذا كنت ترغب في إجراء تغييرات، قم بذلك في فرع منفصل. على سبيل المثال، يمكنك إنشاء فرع جديد باستخدام git checkout -b feature/my_awesome_new_feature.
  • قبل دفع التغييرات، تأكد من أن الشيفرة تلتزم بقواعد التنسيق وأن الاختبارات ناجحة.
شغّل
tox. هذا يقوم بفحص التنسيق ويشغّل جميع برامج الاختبار. لتنفيذ هذه الخطوات يدويًا، استخدم الأوامر التالية: /reports/coverage_html/index.html.

ملاحظة: حاليًا، ليس كل الشيفرة مغطاة. من الناحية المثالية، يجب تغطية كل الشيفرة، ولكن الآن تأكد من أن كل الشيفرة الجديدة مغطاة بالاختبار.

أنشئ طلب دمج (pull request). من المثالي أن يكون هناك على الأقل مراجع واحد يراجع طلب الدمج قبل الدمج.

يرجى ملاحظة أنه في الوقت الحالي يمكن فقط لـ "مالكي الكود" دمج طلبات السحب على الفرع main`. هذا لضمان عدم تمكن الجميع من كسر الكود الرئيسي (حتى لو كان ذلك عن غير قصد). إذا كنت ترغب في أن تصبح "مالك كود"، أخبرنا بذلك!

الرخصة

يتم نشر matplot2tikz بموجب رخصة MIT.

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