Spectres de sources lumineuses (LaTeX)

Où l’on exploite des données csv et le package pgf-spectra pour LaTeX

Dans le prolongement de mon précédent article, voici une solution avec LaTeX pour tracer des spectres d’émission de sources lumineuses. L’idée reste de lire les données de fichiers .csv (avec le package pgfplots) pour tracer des courbes. Le dégradé de l’arc-en-ciel est obtenu en exploitant le package pgf-spectra : depuis la version 2.1.0, il est possible de remplir l’aire sous la courbe avec le dégradé de couleurs du bleu au rouge.

\documentclass[border=0.5cm,convert={ghostscript,outext=.png,density=1200x1200}]{standalone}%avec ghostscript
\usepackage{pgf-spectra}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=newest}

\pgfplotsset{%un peu de mise en forme du graphique
% axis line shift=3pt,
xtick align=outside,
% ytick align=outside,
tickpos=left,
}

\begin{document}
\footnotesize
\pgfspectraplotshade{visiblespectrum}%création du colormap

\begin{tikzpicture}
\begin{axis}[%
title= \normalsize Soleil,%
xlabel={Longueur d'onde (nm)},%
ytick=\empty,
xmin=300,%
xmax=800,%
xtick distance=50,
minor x tick num=4,
ymin=0,
]%
\addplot[smooth, name path=courbe,]
plot[]
table [x=wavelength,y=intensity,col sep=comma]{Sun.csv};
\path[name path=axe] (380,0) -- (780,0);
\addplot+ [thick,shading=visiblespectrum]
fill between[of=courbe and axe];

\end{axis}
\end{tikzpicture}%

\end{document}

Il suffit de se laisser guider par la documentation du package pgf-spectra, qui fournit directement un exemple de code (avec des données spectrométriques fictives).

J’ai choisi de créer des documents de classe “standalone” : comme son nom l’indique, on peut en faire des fichiers qui sont à la fois indépendants d’un autre, et que l’on peut appeler pour être insérés dans un fichier principal, ce qui est pratique pour obtenir ceci :

Pour cela, le préambule du document principal doit appeler le package standalone, afin de faire abstraction des préambules figurant dans les fichiers secondaires.

\documentclass[a4paper,11pt]{article}
\usepackage{pgf-spectra}
\usepackage{standalone}
\usepackage{pgfplots}
\usepackage[left=1cm,right=1cm,top=2cm,bottom=0.5cm]{geometry}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=newest}
\usepackage{multicol}

\pgfplotsset{
xtick align=outside,
tick pos=left,
}

\begin{document}\pagestyle{empty}

\begin{center}
	\LARGE{\textbf{Spectres de quelques sources lumineuses}}

	\hrulefill
\end{center}
Données : https://lspdd.org/app/fr/lamps \quad et (laser) https://osf.io/x9gm6/files/

\bigskip
\begin{multicols}{2}

\input{SpectreSoleil.tex}

\bigskip
\input{SpectreIncandescente.tex}


\bigskip
\input{SpectreFluo.tex}

\bigskip
\input{SpectreSodiumHP.tex}


\bigskip
\input{SpectreLED.tex}


\bigskip
\input{SpectreLaser.tex}
\end{multicols}
\end{document}

Dans les fichiers secondaires, la première ligne contient en option les réglages permettant de convertir le document en un fichier image png, en exécutant le code depuis un terminal (je vous renvoie à la documentation du package standalone).


Soyez le premier à commenter

Laisser un commentaire