%% Copyright 2021-2024 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{graphicx}

\title{PyLuaTeX Example -- Matplotlib External}
\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 an external PDF file. This PDF file is then
included as picture using \verb|\includegraphics|.

\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

t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)

ax.set(xlabel='time (s)', ylabel='voltage (mV)',
       title='About as simple as it gets, folks')
ax.grid()

fig.savefig('matplotlib-plot.pdf', bbox_inches='tight', pad_inches=0.1)
\end{python}
\includegraphics[width=0.8\textwidth]{matplotlib-plot.pdf}
\end{center}

For an alternative approach using the PGF backend, consider the example
\verb|matplotlib-pgf.tex|.

\end{document}
