Web Analytics

matplot2tikz

⭐ 266 stars Persian by ErwindeGelder

🌐 زبان

matplot2tikz

هنرمندی که قبلاً با نام tikzplotlib شناخته می‌شد.

نسخه PyPI مجوز GitHub نسخه پایتون PyPI Ruff بررسی شده با 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}

(اگر به جای save() می‌خواهید کد را به صورت رشته دریافت کنید، از get_tikz_code() استفاده کنید.)

تنظیم نمودار به سادگی انجام می‌شود و می‌تواند بخشی از جریان کاری 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 دارید، یا فقط به دنبال اطلاعات بیشتری هستید، لطفاً به صفحه GitHub پروژه matplot2tikz مراجعه نمایید.

برای مشارکت، مراحل زیر را دنبال کنید:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. بنابراین، اگر می‌خواهید تغییراتی اعمال کنید، این کار را در یک شاخه جداگانه انجام دهید. به عنوان مثال، می‌توانید با دستور git checkout -b feature/my_awesome_new_feature یک شاخه جدید بسازید.
  • قبل از ارسال تغییرات، مطمئن شوید که کد مطابق قوانین linting بوده و تست‌ها با موفقیت
اجرا شده‌اند. دستور
tox را اجرا کنید. این دستور بررسی linting را انجام داده و تمام تست‌ها را اجرا می‌کند. برای اجرای دستی این مراحل، از دستورات زیر استفاده کنید: /reports/coverage_html/index.html.

توجه: در حال حاضر، تمام کدها پوشش داده نشده‌اند. در حالت ایده‌آل، همه کدها باید پوشش داده شوند اما فعلاً مطمئن شوید که تمام کدهای جدید توسط تست‌ها پوشش داده شده‌اند.

ادغام کنید، یک pull request ایجاد نمایید. ایده‌آل این است که حداقل یک نفر بازبینی کننده، pull request را قبل از ادغام بررسی کند.

توجه داشته باشید که در حال حاضر فقط "مالکین کد" می‌توانند درخواست‌های pull را به شاخه main` ادغام کنند. این کار برای اطمینان از این است که همه نتوانند (حتی به طور غیرعمدی) کد اصلی را خراب کنند. اگر می‌خواهید "مالک کد" باشید، به ما اطلاع دهید!

مجوز

matplot2tikz تحت مجوز MIT منتشر شده است.

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