0% found this document useful (0 votes)
30 views3 pages

Ploting Bessel Function

This document provides a tutorial on plotting the first six Bessel functions using numpy, scipy, and Matplotlib, along with instructions for exporting the data for use in LaTeX with pgfplots. It includes example code for generating the plots and saving the data, as well as troubleshooting tips for macOS users. Two figures are presented: one from Matplotlib and another created with pgfplots.

Uploaded by

habtamutigu10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views3 pages

Ploting Bessel Function

This document provides a tutorial on plotting the first six Bessel functions using numpy, scipy, and Matplotlib, along with instructions for exporting the data for use in LaTeX with pgfplots. It includes example code for generating the plots and saving the data, as well as troubleshooting tips for macOS users. Two figures are presented: one from Matplotlib and another created with pgfplots.

Uploaded by

habtamutigu10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Plotting Bessel functions

This simple example uses numpy, scipy and Matplotlib to produce a plot of the first six Bessel functions. Two plots are shown, one created
by Matplotlib and a second created by LaTeX using the plotting package pgfplots and the data exported from Matplotlib.
If you are using macOS, you may need to use the -Ppythonw option when running pylatex.sh. This is a known problem with macOS and
Matplotlib, see https://matplotlib.org/faq/osx_framework.html.

\begin{minipage}{\textwidth}
import numpy as np
\centering
import scipy.special as sp
\IfFileExists{example-04-fig.pdf}%
import matplotlib.pyplot as plt
{\includegraphics[width=6.4in]
{example-04-fig.pdf}}{Failed to create pdf plot.}
plt.matplotlib.rc(’text’, usetex = True)
\captionof{figure}{The first six Bessel functions.}
plt.matplotlib.rc(’grid’, linestyle = ’dotted’)
\end{minipage}
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")
J0 (x)
1.0
J1 (x)
J2 (x)
0.8 J3 (x)
J4 (x)
J5 (x)
0.6

0.4

Jn (x)
0.2

0.0

−0.2

−0.4

0 2 4 6 8 10 12 14
x

Figure 1: The first six Bessel functions.

2
Using pgfplots

1 J0
J1
0.8
J2
J3
0.6
J4
0.4 J5

Jn (x)
0.2

−0.2

−0.4
0 2 4 6 8 10 12 14
x

Figure 2: The first six Bessel functions.

\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}

You might also like