Seite 1 von 1

[pgfplots]: mehrere Datenplots = ein Legendeneintrag?

Verfasst: Mo 12. Mai 2014, 16:34
von Joshua
Hallo liebes Forum,

ich habe gerade einen Umfangreichen Datenplot mit Messdatenauswertungen erstellt.

Dabei würde ich gerne der Übersichtlichkeit wegen mehrere Funktionsplots "gruppieren" und diesen einen gemeinsamen Legendeneintrag zuordnen:
\documentclass[tikz,border=1pt]{standalone} 
\usepackage[ngerman]{babel}					
\usepackage[ansinew]{inputenc}				
\usepackage[T1]{fontenc}							
\usepackage{graphicx} 
\usepackage{pgfplots}
\usepackage{amsmath} 

\begin{document} 

\begin{tikzpicture}
\begin{loglogaxis}[
	xlabel={Degrees of freedom},
	ylabel={$L_2$ Error}
]
\addplot[red] coordinates {
	(5,8.312e-02)    (17,2.547e-02)   (49,7.407e-03)
	(129,2.102e-03)  (321,5.874e-04)  (769,1.623e-04)
	(1793,4.442e-05) (4097,1.207e-05) (9217,3.261e-06)
};
\addlegendentry{2}
\addplot[blue] coordinates{
	(7,8.472e-02)    (31,3.044e-02)    (111,1.022e-02)
	(351,3.303e-03)  (1023,1.039e-03)  (2815,3.196e-04)
	(7423,9.658e-05) (18943,2.873e-05) (47103,8.437e-06)
};
\addlegendentry{2}
\addplot[green] coordinates{
	(9,7.881e-02)     (49,3.243e-02)    (209,1.232e-02)
	(769,4.454e-03)   (2561,1.551e-03)  (7937,5.236e-04)
	(23297,1.723e-04) (65537,5.545e-05) (178177,1.751e-05)
};
\addlegendentry{2}
\addplot[pink] coordinates{
	(11,6.887e-02)    (71,3.177e-02)     (351,1.341e-02)
	(1471,5.334e-03)  (5503,2.027e-03)   (18943,7.415e-04)
	(61183,2.628e-04) (187903,9.063e-05) (553983,3.053e-05)
};
\addlegendentry{5}
\addplot[black] coordinates{
	(13,5.755e-02)     (97,2.925e-02)     (545,1.351e-02)
	(2561,5.842e-03)   (10625,2.397e-03)  (40193,9.414e-04)
	(141569,3.564e-04) (471041,1.308e-04) (1496065,4.670e-05)
};
\addlegendentry{6}
\end{loglogaxis}
\end{tikzpicture}

\end{document}
Für das Beispiel z.B. wäre es wünschenswert, dass die Legende nur mehr 3 Einträge besitzt. "2" bzw. "5" und "6".

Aussehen sollte es so, dass vor "2" nun die drei zugehörigen Linien (enger untereinander) dargestellt sind; also diese drei Linien nur mehr eine Bezeichnung besitzen. "5" und "6" bleiben wie bisher ...

Gibt es hierzu eine Lösung?
Bisher habe ich das immer (aufwändig) über Nachbearbeiten des pdf's in IPE o.ä. Programmen gelöst ... - es wäre halt schön, wenn es eine derartige Möglichkeit schon innerhalb von pgfplots gibt!

Danke im Voraus für Eure Antworten,
Gruß joshua

Verfasst: Mo 9. Jun 2014, 12:35
von prankenandi
Leider weiß ich nicht wie man die Einträge etwas zusammenrückt, aber ich denke die gewählte Darstellung macht es ebenso verständlich.

--> siehe auch: pgfplot-manual S.215
Abschnitt 4.9.8 Legends with Customized Texts or Multiple Lines

MfG
\documentclass[tikz,border=1pt]{standalone}
\usepackage[ngerman]{babel}              
\usepackage[ansinew]{inputenc}            
\usepackage[T1]{fontenc}                    
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{amsmath}

\begin{document}

\begin{tikzpicture}
\begin{loglogaxis}[
   xlabel={Degrees of freedom},
   ylabel={$L_2$ Error}
]
\addplot[red] coordinates {
   (5,8.312e-02)    (17,2.547e-02)   (49,7.407e-03)
   (129,2.102e-03)  (321,5.874e-04)  (769,1.623e-04)
   (1793,4.442e-05) (4097,1.207e-05) (9217,3.261e-06)
};\addlegendentry{}
%
\addplot[blue] coordinates{
   (7,8.472e-02)    (31,3.044e-02)    (111,1.022e-02)
   (351,3.303e-03)  (1023,1.039e-03)  (2815,3.196e-04)
   (7423,9.658e-05) (18943,2.873e-05) (47103,8.437e-06)
};\addlegendentry{2}
%
\addplot[green] coordinates{
   (9,7.881e-02)     (49,3.243e-02)    (209,1.232e-02)
   (769,4.454e-03)   (2561,1.551e-03)  (7937,5.236e-04)
   (23297,1.723e-04) (65537,5.545e-05) (178177,1.751e-05)
};\addlegendentry{}
%
\addlegendimage{empty legend}
\addlegendentry{---}
%
\addplot[pink] coordinates{
   (11,6.887e-02)    (71,3.177e-02)     (351,1.341e-02)
   (1471,5.334e-03)  (5503,2.027e-03)   (18943,7.415e-04)
   (61183,2.628e-04) (187903,9.063e-05) (553983,3.053e-05)
};\addlegendentry{5}
%
\addplot[black] coordinates{
   (13,5.755e-02)     (97,2.925e-02)     (545,1.351e-02)
   (2561,5.842e-03)   (10625,2.397e-03)  (40193,9.414e-04)
   (141569,3.564e-04) (471041,1.308e-04) (1496065,4.670e-05)
};\addlegendentry{6}

\end{loglogaxis}
\end{tikzpicture}

\end{document} 

Verfasst: Mo 9. Jun 2014, 14:17
von esdd
Verwende
\addlegendentry{\smash{\raisebox{-1ex}{2}}} 
statt
\addlegendentry{2}
dann rücken die Linien näher zusammen. Zur vertikalen Ausrichtung der 2 kannst du das erste Argument von \raisebox verwenden.

Gruß
Elke