En faisant correspondre à une valeur numérique une intensité de couleur, un colormap permet d’ajouter une troisième donnée à un graphique 2D, et de faire ressortir des tendances :
Ce premier document a été généré avec le code LaTeX suivant :
\documentclass[border=0.5cm,11pt,convert={ghostscript,outext=.png,density=800x800}]{standalone}%conversion en png, en ligne de commande, avec ghostscript (voir doc standalone)
%COMPILé AVEC XeLaTeX
% se reporter au manuel PGFPLOTS section 3.4 et 5.3 (colormaps)
\usepackage[T1]{fontenc}
\usepackage[x11names,dvipsnames,svgnames]{xcolor}
\colorlet{vert}{OliveGreen!70!black}
\colorlet{rouge}{red!80!black}
\colorlet{monorange}{yellow!50!red}
\usepackage{lmodern}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=newest}
\pgfplotsset{/pgf/number format/.cd,1000 sep={~}}
\usetikzlibrary{plotmarks}
\begin{document}
\footnotesize
\sffamily
\begin{tikzpicture}
\begin{axis}[
y dir=reverse,% inversion axe y (périodes)
xmin=1,xmax=18,
ymin=1,ymax=10,
%colorbar,% verticale à gauche, par défaut
colorbar horizontal,
colormap={mycmap}{color(0cm)=(white); color(1cm)=(magenta)},
width=360pt,% 20 fois 18 colonnes, pour les proportions
height=200pt,% 20 fois 10 lignes, pour les proportions
scale only axis,
title=\Large{abondance dans l'Univers (en masse, échelle log)},
hide axis,
]
%
% affichage des carrés colorés :
\addplot [%
scatter,
only marks,
%mark=*,% marqueur rond plein
mark=square*,% marqueur carré plein
scatter src={ln(\thisrow{abondance})/ln(10)},% couleur des carrés donnée par la colonne 'valeur'
scatter/use mapped color=
{draw opacity=0,fill=mapped color},% retire le contour du marqueur
mark options={mark size=10pt,% adapté aux dimensions
},
]
table [x=col,y=lig]{donnees_abondanceUniv.csv};
%
%affichage des symboles :
\addplot [nodes near coords,
nodes near coords align={center},
only marks,% supprime la ligne reliant les points
no marks,%supprime les points
point meta={explicit symbolic},% métadonnée : non numérique
]
table [meta=symbole,x=col,y=lig]{donnees_abondanceUniv.csv};
\draw [gray](17.5,8.8) node [rotate=90,font=\tiny,align=left] {données :\\ sciencenotes.org/};
\end{axis}
\end{tikzpicture}
\end{document}
Les données (n° de ligne, de colonne, symbole, abondance) sont importées par le code depuis le fichier .csv suivant :
La méthode est simple : on trace un nuage de points (marqueurs carrés), colorés par un colormap séquentiel de blanc à bleu foncé ; l’intensité est assujettie à la valeur de l’abondance de l’élément. Dans une seconde commande, on ne trace aucun point, seulement des étiquettes avec les symboles chimiques.
Ce second document est créé avec Python et son module matplotlib de création de graphiques, avec le même fichier pour la source des données. Le module pandas extrait les données du fichier.
Le script Python :
Merci à A.Santerne, astronome, pour m’avoir suggéré l’idée de ces documents.
Soyez le premier à commenter