[pgfplots]: mehrere Datenplots = ein Legendeneintrag? Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Joshua

[pgfplots]: mehrere Datenplots = ein Legendeneintrag?

Beitrag 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

prankenandi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 60
Registriert: Di 8. Apr 2014, 13:59

Beitrag 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} 
Debian 7 (Wheezy) mit Texlive 2013 und Texmaker

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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

Antworten