matplot2tikz
以前は tikzplotlib として知られていました。これはmatplot2tikzです。matplotlibの図を PGFPlots(PGF/TikZ) の図に変換するPythonツールです。

LaTeXやConTeXtドキュメントにネイティブに取り込むためのものです。
matplot2tikzの出力はPGFPlotsであり、これはTeXの ライブラリで、PGF/TikZの上位にあり、 軸やデータなどの観点からグラフを記述します。したがって、matplot2tikzの出力は
- より多くの情報を保持し、
- より簡単に理解でき、
- より簡単に編集可能です
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}
(コードを文字列として取得したい場合は、save()の代わりにget_tikz_code()を使用してください。)プロットの調整は簡単で、TeXのワークフローの一部として行うことができます。 素晴らしいPGFPlotsのマニュアルには、 プロットをさらに良く見せるための優れた例が掲載されています。
もちろん、matplotlibで作成されたすべての図がエラーなく変換できるわけではありません。 特に、3Dプロットは動作しません。
インストール
matplot2tikzはPythonパッケージインデックスから入手可能なので、単純に以下を実行してください。
pip install matplot2tikzインストール方法。
使用方法
- 通常通りmatplotlibのプロットを作成します。
pyplot.show()の代わりに、matplot2tikzを呼び出します。
python
import matplot2tikz matplot2tikz.save("mytikz.tex")
# or
matplot2tikz.save("mytikz.tex", flavor="context")
` TikZファイルを
mytikz.texとして保存します。
mytikz.texの内容を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()
`- [オプション]
clean_figure コマンドを使用して、tikz にエクスポートする前に図をクリーンアップします。
`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リポジトリをダウンロードします。例:
git clone git@github.com:ErwindeGelder/matplot2tikz.git。
仮想環境を作成します。例: python -m venv venv。
仮想環境を有効化します(例: Windowsでは venv\Scripts\activate)。
uvを pip install uv でインストールし、その後 uv pip install tox-uv で tox-uv をインストールします。
mainブランチは保護されているため、直接このブランチに変更をプッシュできません。
そのため、変更したい場合は別のブランチで作業してください。例えば、
git checkout -b feature/my_awesome_new_feature で新しいブランチを作成できます。
- 変更をプッシュする前に、コードがリンティングルールに準拠しており、テストが成功していることを確認してください。
tox を実行します。これはリンティングチェックを行い、すべてのテストスクリプトを実行します。
手動でこれらのステップを実行するには、以下のコマンドを使用します:
tox -e lint を実行します。リンティングコマンドを手動で行う場合は以下を使用してください:
(一度だけ) uv pip install -r requirements-lint.txt
ruff format . --check (ruff によるフォーマットを適用するには --check フラグを外してください)
ruff check .
mypy .
tox -e py310 を実行します。
tox -e py311 を実行します。
tox -e py312 を実行します。
tox -e py313 を実行します。
tox -e py314 を実行します。
tox -e combine-test-reports を実行します。
/reports/coverage_html/index.html にあるカバレッジレポートで、テストがすべてをカバーしているか確認してください。 注意: 現在、すべてのコードがカバーされているわけではありません。理想的には全コードをカバーしますが、
今はすべての新しいコードがテストでカバーされていることを確認してください。
- 変更をGitHubにプッシュします。すべて問題なければ、
main ブランチにマージするためにプルリクエストを作成してください。
理想的には、マージ前に少なくとも1人のレビュワーがプルリクエストをレビューします。現在、
main` ブランチへのプルリクエストをマージできるのは「コードオーナー」のみであることに注意してください。これは、誰もがメインコードを(意図せずにでも)壊すことがないようにするためです。「コードオーナー」になりたい場合は、お知らせください!ライセンス
matplot2tikz は MIT ライセンス の下で公開されています。
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-11 ---