diff options
Diffstat (limited to 'Master/texmf-dist/doc/lualatex/pyluatex/example/matplotlib-pgf.tex')
-rw-r--r-- | Master/texmf-dist/doc/lualatex/pyluatex/example/matplotlib-pgf.tex | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/lualatex/pyluatex/example/matplotlib-pgf.tex b/Master/texmf-dist/doc/lualatex/pyluatex/example/matplotlib-pgf.tex new file mode 100644 index 00000000000..2962be862f8 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/pyluatex/example/matplotlib-pgf.tex @@ -0,0 +1,61 @@ +%% Copyright 2021-2022 Tobias Enderle +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. + +\documentclass{article} + +\usepackage{pyluatex} +\usepackage{unicode-math} +\usepackage{pgf} +\usepackage{url} + +\title{PyLuaTeX Example -- Matplotlib PGF} +\author{Tobias Enderle} + +\begin{document} + +\maketitle + +In this document we demonstrate how \emph{matplotlib} plots can be generated and +included in a document. In the Python code in this document, the plot is +configured and saved to PGF\footnote{\url{https://ctan.org/pkg/pgf}} code. +The PGF code is then included in the document and creates the plot. + +To avoid intermediate files, the PGF code is saved into an in-memory file +using the Python \verb|io.StringIO| class% +\footnote{\url{https://docs.python.org/3/library/io.html#io.StringIO}}. + +\begin{center} +\begin{python} +# example based on +# https://matplotlib.org/stable/gallery/lines_bars_and_markers/simple_plot.html +import matplotlib.pyplot as plt +import numpy as np +import io + +t = np.arange(0.0, 2.0, 0.01) +s = 1 + np.sin(2 * np.pi * t) + +fig, ax = plt.subplots(figsize=(5, 3.5)) +ax.plot(t, s) + +ax.set(xlabel='time (s)', ylabel='voltage (mV)', + title='About as simple as it gets, folks') +ax.grid() + +with io.StringIO() as file: # save to "in-memory file" + fig.savefig(file, format='pgf', bbox_inches='tight', pad_inches=0.1) + print(file.getvalue()) +\end{python} +\end{center} + +For an alternative approach of creating plots with \emph{matplotlib}, +consider the example \verb|matplotlib-external.tex|. + +\end{document} |