Web Analytics

matplot2tikz

⭐ 266 stars Japanese by ErwindeGelder

🌐 言語

matplot2tikz

以前は tikzplotlib として知られていました。

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

これはmatplot2tikzです。matplotlibの図を PGFPlotsPGF/TikZ) の図に変換するPythonツールです。

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で作成されたすべての図がエラーなく変換できるわけではありません。 特に、3Dプロットは動作しません

インストール

matplot2tikzはPythonパッケージインデックスから入手可能なので、単純に以下を実行してください。

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パッケージと適切なUnicodeサポートのパッケージが ドキュメントのヘッダーに含まれていることを確認してください:

`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 checkout -b feature/my_awesome_new_feature で新しいブランチを作成できます。
  • 変更をプッシュする前に、コードがリンティングルールに準拠しており、テストが成功していることを確認してください。
tox を実行します。これはリンティングチェックを行い、すべてのテストスクリプトを実行します。 手動でこれらのステップを実行するには、以下のコマンドを使用します: 注意: 現在、すべてのコードがカバーされているわけではありません。理想的には全コードをカバーしますが、 今はすべての新しいコードがテストでカバーされていることを確認してください。 理想的には、マージ前に少なくとも1人のレビュワーがプルリクエストをレビューします。

現在、main` ブランチへのプルリクエストをマージできるのは「コードオーナー」のみであることに注意してください。これは、誰もがメインコードを(意図せずにでも)壊すことがないようにするためです。「コードオーナー」になりたい場合は、お知らせください!

ライセンス

matplot2tikz は MIT ライセンス の下で公開されています。

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