Page 1 sur 1

[Pgfplots] Obtenir le graphique suivant

MessagePosté: Samedi 04 Juin 2011, 09:56
par tchoub
Bonjour à tous,
Je cherche à créer un graphique comme celui présenté sur la figure suivante.
Je n'ai pas trouvé comment faire avec pgfplots, les graphiques de type xbar/ybar n'étant pas franchement ce que je souhaite réaliser.

Quelqu'un aurait-il une piste ?

Merci d'avance !

R4cUw.jpg

Re: [Pgfplots] Obtenir le graphique suivant

MessagePosté: Dimanche 05 Juin 2011, 21:03
par pg
Un moyen de faire en traçant une courbe blanche (donc invisible) avec des marques de couleur (qui seront les seuls objets à être visibles) :

pgfplots_eV.png
pgfplots_eV.png (3.81 Kio) Vu 1139 fois


Code: Tout sélectionner
\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=newest}

\begin{document}

\begin{tikzpicture}
\begin{axis}[symbolic x coords={(a),(b),(c),(d)},ymin=-9,ymax=1]
\addplot[white,error bars/x dir=both,error bars/x explicit,error bars/error mark=none,error bars/error bar style={color=blue}]
coordinates {
({(a)},-8.25) +- (0.1,0)
({(b)},-8.18) +- (0.1,0)
({(c)},-8.20) +- (0.1,0)
({(d)},-6.50) +- (0.1,0)
};
\addplot[white,error bars/x dir=both,error bars/x explicit,error bars/error mark=none,error bars/error bar style={color=red}]
coordinates {
({(a)},-3.75) +- (0.1,0)
({(b)},-4.05) +- (0.1,0)
({(c)},-3.97) +- (0.1,0)
({(d)},-2.85) +- (0.1,0)
};
\end{axis}
\end{tikzpicture}

\end{document}

Re: [Pgfplots] Obtenir le graphique suivant

MessagePosté: Lundi 06 Juin 2011, 07:42
par tchoub
merci pour ta réponse. Je n'avais pas pensé à utiliser une courbe blanche, avec des marqueurs de couleur.

Voici une alternative qui m'a été proposée sur stackexchange.

Code: Tout sélectionner
\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[only marks,
  every axis plot post/.style={mark=-,ultra thick,mark size=4pt},
  symbolic x coords={a,b,c,d},
  xtick={a,b,c,d},
  xticklabel={(\tick)}]
\addplot +[red, nodes near coords] coordinates {
  (a,-8.15)
  (b,-4)
  (c,-4)
  (d,-1.9)};
\addplot +[blue,nodes near coords,nodes near coords align={anchor=south}] coordinates {
  (a,-8.25)
  (b,-8.1)
  (c,-8.1)
  (d,-6.2)};
\end{axis}
\end{tikzpicture}

\end{document}


kATvr.png
kATvr.png (7.57 Kio) Vu 1131 fois