summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hybrid-latex/examples/example-04.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/hybrid-latex/examples/example-04.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/hybrid-latex/examples/example-04.tex')
-rw-r--r--macros/latex/contrib/hybrid-latex/examples/example-04.tex119
1 files changed, 119 insertions, 0 deletions
diff --git a/macros/latex/contrib/hybrid-latex/examples/example-04.tex b/macros/latex/contrib/hybrid-latex/examples/example-04.tex
new file mode 100644
index 0000000000..71e437b9fd
--- /dev/null
+++ b/macros/latex/contrib/hybrid-latex/examples/example-04.tex
@@ -0,0 +1,119 @@
+\documentclass[12pt]{pylatex}
+\usepackage{examples}
+\usepackage{caption}
+\usepackage{pgfplots}
+
+\begin{document}
+
+\section*{Plotting Bessel functions}
+
+\vspace{-5pt}
+
+This simple example uses {\tt\small numpy, scipy} and {\tt\small Matplotlib} to produce a plot of the first six Bessel functions. Two plots are shown, one created by {\tt\small Matplotlib} and a second created by LaTeX using the plotting package {\tt\small pgfplots} and the data exported from {\tt\small Matplotlib}.
+
+If you are using macOS, you may need to use the {\tt\small -Ppythonw} option when running {\tt\small pylatex.sh}. This is a known problem with macOS and {\tt\small Matplotlib}, see\ \url{https://matplotlib.org/faq/osx_framework.html}.
+
+\vspace{-10pt}
+
+\begin{minipage}[t]{0.60\textwidth}
+\begin{python}
+ import numpy as np
+ import scipy.special as sp
+ import matplotlib.pyplot as plt
+
+ plt.matplotlib.rc('text', usetex = True)
+ plt.matplotlib.rc('grid', linestyle = 'dotted')
+ plt.matplotlib.rc('figure', figsize = (6.4,4.8)) # (width,height) inches
+
+ x = np.linspace(0, 15, 500)
+
+ for v in range(0, 6):
+ plt.plot(x, sp.jv(v, x))
+
+ plt.xlim((0, 15))
+ plt.ylim((-0.5, 1.1))
+ plt.legend(('${J}_0(x)$', '${J}_1(x)$', '${J}_2(x)$',
+ '${J}_3(x)$', '${J}_4(x)$', '${J}_5(x)$'), loc = 0)
+ plt.xlabel('$x$')
+ plt.ylabel('${J}_n(x)$')
+ plt.grid(True)
+ plt.tight_layout(0.5)
+
+ plt.savefig('example-04-fig.pdf')
+
+ # save the data for later use by pgfplots
+ np.savetxt('example-04.txt',list(zip(x,sp.jv(0,x),sp.jv(1,x),sp.jv(2,x),
+ sp.jv(3,x),sp.jv(4,x),sp.jv(5,x))),
+ fmt="% .10e")
+\end{python}
+\end{minipage}
+\hskip 0.25cm
+\begin{minipage}[t]{0.35\textwidth}
+\begin{latex}
+ \begin{minipage}{\textwidth}
+ \centering
+ \IfFileExists{example-04-fig.pdf}%
+ {\includegraphics[width=6.4in]
+ {example-04-fig.pdf}}{Failed to create pdf plot.}
+ \captionof{figure}{The first six Bessel functions.}
+ \end{minipage}
+\end{latex}
+\end{minipage}
+
+\begin{minipage}{\textwidth}
+ \centering
+ \IfFileExists{example-04-fig.pdf}%
+ {\includegraphics[width=6.4in]
+ {example-04-fig.pdf}}{Failed to create pdf plot.}
+ \captionof{figure}{The first six Bessel functions.}
+\end{minipage}
+
+\clearpage
+
+\pgfplotsset{compat=newest}
+\pgfplotsset{width=0.45\textwidth,height=0.34\textwidth}
+
+\subsection*{Using pgfplots}
+
+\begin{minipage}[t]{\textwidth}
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}
+ [xmin= 0.0, xmax=15.0,
+ ymin=-0.45, ymax=1.05,
+ xlabel=$x$, ylabel=$J_n(x)$,
+ grid=major, grid style={dashed,gray!30},
+ legend entries = {$J_0$, $J_1$, $J_2$, $J_3$, $J_4$, $J_5$}]
+ \addplot[blue] table [x index=0, y index=1]{example-04.txt};
+ \addplot[red] table [x index=0, y index=2]{example-04.txt};
+ \addplot[green] table [x index=0, y index=3]{example-04.txt};
+ \addplot[teal] table [x index=0, y index=4]{example-04.txt};
+ \addplot[orange] table [x index=0, y index=5]{example-04.txt};
+ \addplot[purple] table [x index=0, y index=6]{example-04.txt};
+ \end{axis}
+ \end{tikzpicture}
+ \captionof{figure}{The first six Bessel functions.}
+\end{minipage}
+
+\vfill
+
+\begin{latex}
+ \begin{tikzpicture} % requires \usepackage{pgfplots}
+ \begin{axis}
+ [xmin= 0.0, xmax=15.0,
+ ymin=-0.45, ymax=1.05,
+ xlabel=$x$, ylabel=$J_n(x)$,
+ grid=major, grid style={dashed,gray!30},
+ legend entries = {$J_0$, $J_1$, $J_2$, $J_3$, $J_4$, $J_5$}]
+ \addplot[blue] table [x index=0, y index=1]{example-04.txt};
+ \addplot[red] table [x index=0, y index=2]{example-04.txt};
+ \addplot[green] table [x index=0, y index=3]{example-04.txt};
+ \addplot[teal] table [x index=0, y index=4]{example-04.txt};
+ \addplot[orange] table [x index=0, y index=5]{example-04.txt};
+ \addplot[purple] table [x index=0, y index=6]{example-04.txt};
+ \end{axis}
+ \end{tikzpicture}
+ \captionof{figure}{The first six Bessel functions.} % requires \usepackage{caption}
+\end{latex}
+
+\end{document}