For a simple method without pstricks, please see this page.
Sources: Inspiration, pstricks manual.
Edit and compile if you like:
% Author: Izaak Neutelings (March 2020)
% PSTricks => compile with XeLaTeX
% http://mirror.easyname.at/ctan/graphics/pstricks/contrib/pst-magneticfield/doc/pst-magneticfield-doc.pdf
% N=6: number of turns
% R=2: radius
% L=4: length
% pointsB=500: maximum number of points on each line of the entire coil
% pointsS=1000: maximum number of points on lines around turns selected
% nL=8: number of lines of the entire coil
% PasB=0.02: differential steps for the lines of the entire coil
% PasS=0.00275: differential steps for the lines around turns selected
% numSpires={}: choice of individual coils to improve the rendering of its layout
% nS=1: number of field lines around the turns selected
% drawSelf=false: do not represent the solenoid with the option (useful for 3D)
% https://tex.stackexchange.com/questions/468225/pstricks-magnetic-field-lines-of-a-bar-magnet
%\documentclass{standalone}
\documentclass[border=3pt,tikz]{standalone}
\usepackage{tikz}
\usepackage{auto-pst-pdf}
\usepackage{pst-magneticfield}
\usepackage[outline]{contour} % glow around text
\usetikzlibrary{calc}
\tikzset{>=latex} % for LaTeX arrow head
\usetikzlibrary{decorations.pathreplacing}
%\usepackage{pgfplots}
%\newcommand{\fieldlinecurve}[2]{{(pow(#1,2)*(3*cos(#2)+cos(3*#2))}, {(pow(#1,2))*(sin(#2)+sin(3*#2))}}
\usepackage{xcolor}
\colorlet{Bcol}{violet!90}
\colorlet{Ncol}{red!60}
\colorlet{Scol}{blue!60}
\tikzstyle{north}=[thick,top color=red!60,bottom color=red!90,shading angle=20]
\tikzstyle{south}=[thick,top color=blue!60,bottom color=blue!90,shading angle=20]
\contourlength{1.5pt}
\begin{document}
%\psset{unit=0.5}
%\begin{pspicture*}(-20,-16)(20,16)
% \psframe[linecolor=black, fillstyle=solid,fillcolor=north](-2,0)(2,6)
% \psframe[linecolor=black, fillstyle=solid,fillcolor=south](-2,0)(2,-6)
% \psmagneticfield[
% N=128,R=2,L=11.95,
% nL=7,pointsB=8000,
% nS=1,numSpires=13,pointsS=8000,
% linecolor=Bcol,drawSelf=false](-20,-16)(20,16)
% %\rput(0,-5.2){\textcolor{white}{S}}
% %\rput(0,5.2){\textcolor{white}{N}}
%\end{pspicture*}
\def\xmax{3.5}
\def\ymax{3.5}
\def\H{1}
\def\W{0.45}
\begin{tikzpicture}[shift={(\xmax+0.024,\ymax+0.024)}]
\draw[north] (-\W,0) rectangle (\W, \H);
\draw[south] (-\W,0) rectangle (\W,-\H);
\begin{scope} %[shift={(3,3)}]
\clip (-\xmax,-\ymax) rectangle (\xmax,\ymax); %[shift={(0,-10)}]
%\psset{unit=0.5}
\psset{arrowinset=0} % does not work?
%\newpsstyle{sensCourant}{arrowinset=0}
\begin{pspicture*}(-\xmax,-\ymax)(\xmax,\ymax) %[shift=-10]
\psframe[linecolor=white](-\xmax,-\ymax)(\xmax,\ymax)
%\psframe[linecolor=black, fillstyle=solid,fillcolor=Ncol](-1,0)(1,3)
%\psframe[linecolor=black, fillstyle=solid,fillcolor=Scol](-1,0)(1,-3)
\psmagneticfield[
N=120,R=\W,L=2, %-0.005,
nL=4,pointsB=800,
nS=1,numSpires=10,pointsS=1500,
linewidth=1.0pt,linecolor=Bcol,drawSelf=false
](-\xmax,-\ymax)(\xmax,\ymax)
%\rput(0,-5.2){\textcolor{white}{S}}
%\rput(0,5.2){\textcolor{white}{N}}
\end{pspicture*}
\end{scope}
\node[scale=1.3] at (0, \H/2) {\contour{red!80}{N}};
\node[scale=1.3] at (0,-\H/2) {\contour{blue!80}{S}};
\end{tikzpicture}
%\begin{tikzpicture}[
% scale=1,
% interface/.style={postaction={draw, decorate, decoration={border,angle=45, amplitude=-3mm, segment length=2mm}}}
% ]
% \begin{scope}[
% field line/.style={color=red!75!gray, smooth,
% variable=\t, samples at={0,5,...,360}}
% ]
% \clip (-2,-2) rectangle (2,2);
% \foreach \u in {0}{
% \foreach \r in {0.1,0.3,...,1.8} {
% \draw[field line, smooth] plot (\fieldlinecurve{\r}{\t});
% }
% }
% \end{scope}
%
%\end{tikzpicture}
%\begin{tikzpicture}
% \begin{axis}[
% title={$x \exp(-x^2-y^2)$ and its gradient},
% domain=-2:2,
% view={0}{90},
% axis background/.style={fill=white},
% ]
% \addplot3[contour gnuplot={number=9,
% labels=false},thick]
% {exp(0-x^2-y^2)*x};
% \end{axis}
%\end{tikzpicture}
\end{document}
Click to download: magnet_fieldlines_pstricks.tex • magnet_fieldlines_pstricks.pdf
Open in Overleaf: magnet_fieldlines_pstricks.tex
