Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Diagrammlegende mit pgfplots

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62

    Diagrammlegende mit pgfplots

    n Abend,

    ich überlege mir gerade ob ich in meiner Diplomarbeit Diagramme mit Latex (pgfplots) zeichne, oder ob ich doch lieber den einfacheren Weg über Excel gehe...

    zum testen habe ich jetzt versucht ein älteres Diagramm mit pgfplots nach zubauen. Leider habe ich Probleme mit der Legende. Ich würde die Legenden der beiden Plots gerne nebeneinander oberhalb des Diagramms haben. Dummerweise wird die Position der Legende global eingestellt, so dass beide Legenden übereinander liegen. Ich sehe keine Möglichkeit das zu ändern...

    Also die 2. Legende sollte einfach bei bei z.B. (0.5,1.02) starten. Oder noch besser "style={at={(1,1.02)},anchor=south east,"

    also hoffentlich versteht ihr mein Problem der code sollte im Notfall helfen

    viele Grüße,
    Josch

    Code:
    \documentclass[11pt, oneside, a4paper]{scrartcl}
    
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage{pgfplots}
    \pgfplotsset{
    	width=0.8\textwidth,
    	height=0.5\textwidth,
    	compat=newest,
    	every axis legend/.append style={at={(0,1.02)},anchor=south west,		% Position der Legende in diesem Fall untere linke Ecke bei x=0% und y=100%
    	cells={anchor=west}},																								%	Position der Beschriftung innerhalt der Legende (east, center, west)
    	title style={at={(0.5,1.15)}}																				% Position der Überschrift                  
    	}				
    
    \begin{document}
    
    \begin{figure}
    \centering
    	\begin{tikzpicture}
    		\begin{axis}
    			[
    			scale only axis,
    			xmin=0, xmax=100,
    			ymin=0, ymax=30,
    			axis y line=left,
    			xlabel=bla\lbrack N\rbrack,
    			ylabel=blub\lbrack gew. \%\rbrack,
    			title=\textbf{Notwendige bla über blub}
    			]
    		\addplot+[color=blue,only marks] 
    			coordinates{
    			(20,0)
    			(30,5.62)
    			(40,6.39)
    			(50,8.46)
    			(60,9.64)
    			(88,24.45)
    			};
    		\addplot[mark=,color=blue,domain=1:100]
    			{0.3282*x-6.599};
    		\legend{bla,blub (l. Regression)}
    		\end{axis}
    		\begin{axis}
    			[
    			scale only axis,
    			xmin=0, xmax=100,
    			ymin=100, ymax=600,
    			axis y line=right,
    			axis x line=none,
    			ylabel=Schichtdicke \lbrack nm\rbrack
    			]
    		\addplot+[color=red, mark=diamond*, only marks]
    			coordinates{
    			(20,330)
    			(30,550)
    			(40,354)
    			(50,430)
    			(60,400)
    			(80,380)
    			};
    		\addplot[mark=,color=red,domain=1:100,style=dashed]
    			{-0.3808*x+425.61};
    		\legend{Schichtdicke, Schichtdicke (l. Regression)}
    		\end{axis}
    		\end{tikzpicture}
    \caption{ein tolles Diagramm mit LaTeX}
    \end{figure}
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.11.2007
    Beiträge
    105
    Du kannst die Legende für jede axis-Umgebung einzeln formatieren:

    Code:
    \documentclass[11pt, oneside, a4paper]{scrartcl}
    
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage{pgfplots}
    \pgfplotsset{
    	width=0.8\textwidth,
    	height=0.5\textwidth,
    	%compat=newest,
    	%every axis legend/.append style={at={(0,1.02)},anchor=south west,	% Position der Legende in diesem Fall untere linke Ecke bei x=0% und y=100%
    	%cells={anchor=west}},%	Position der Beschriftung innerhalt der Legende (east, center, west)
    	title style={at={(0.5,1.15)}}% Position der Überschrift                  
    	}				
    
    \begin{document}
    
    \begin{figure}
    \centering
    	\begin{tikzpicture}
    		\begin{axis}
    			[
    			scale only axis,
    			xmin=0, xmax=100,
    			ymin=0, ymax=30,
    			axis y line=left,
    			xlabel=bla\lbrack N\rbrack,
    			ylabel=blub\lbrack gew. \%\rbrack,
    			title=\textbf{Notwendige bla über blub},
    			legend style={at={(0,1.02)},anchor=south west,cells={anchor=west}},
    			]
    		\addplot+[color=blue,only marks] 
    			coordinates{
    			(20,0)
    			(30,5.62)
    			(40,6.39)
    			(50,8.46)
    			(60,9.64)
    			(88,24.45)
    			};
    		\addplot[mark=,color=blue,domain=1:100]
    			{0.3282*x-6.599};
    		\legend{bla,blub (l. Regression)}
    		\end{axis}
    		\begin{axis}
    			[
    			scale only axis,
    			xmin=0, xmax=100,
    			ymin=100, ymax=600,
    			axis y line=right,
    			axis x line=none,
    			ylabel=Schichtdicke \lbrack nm\rbrack,
    			legend style={at={(1,1.02)},anchor=south east,cells={anchor=west}},
    			]
    		\addplot+[color=red, mark=diamond*, only marks]
    			coordinates{
    			(20,330)
    			(30,550)
    			(40,354)
    			(50,430)
    			(60,400)
    			(80,380)
    			};
    		\addplot[mark=,color=red,domain=1:100,style=dashed]
    			{-0.3808*x+425.61};
    		\legend{Schichtdicke, Schichtdicke (l. Regression)}
    		\end{axis}
    		\end{tikzpicture}
    \caption{ein tolles Diagramm mit LaTeX}
    \end{figure}
    
    \end{document}
    OS: Windows 7 64bit / Ubuntu 10.10
    LaTeX-Version: MikTeX 2.9 / TeXlive 2010
    LaTeX-Front-End: TexWorks 0.3 / vim+latexsuite

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.08.2008
    Beiträge
    62
    hi,

    und vielen Dank, ich hab versucht bei \legend Optionen einzustellen. Das hat natürlich nicht geklappt

    Gruß Josch

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •