PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Legendeneintrag mit Tikz



demian
15-05-2009, 13:57
Hallo liebes Forum,

ich bin absoluter Neuling mit Tikz, aber sehr angetan, mit wie wenig Aufwand man eigentlich schöne Graphiken machen kann. Jedenfalls komme ich soweit zurecht, nur mit einer Legende hapert es.

Angehängt ist ein Minimalbeispiel sowie drei Datendateien (ich kann keine Table-Dateien hochladen, von daher einfach die Endung von .txt in .table ändern), mit denen ich meine Ergebnisse plotte. Glücklicherweise ist mein Betreuer recht tolerant, deswegen kann eine Legende hin, wo es eben passt. Hat jemand eine Idee, wie man das am besten bewerkstelligt?

Im Forum habe ich diesen Link gefunden, der auf das Paket pgfplots verweist.

http://www.mrunix.de/forums/showthread.php?t=64338&highlight=tikz+legende

Ich habe mir daraufhin die Paketdokumentation durchgelesen und muss sagen, dass es damit wahrscheinlich leichter gegangen wäre. Leider habe ich jetzt schon viele Graphiken direkt in Tikz gemacht und verwende für diese alle ein einheitliches Aussehen. Wäre schade, wenn ich das aufgeben müsste.

Vielleicht hat ja jemand Erfahrung mit Legenden in Tikz. Würde mir sehr weiterhelfen.

Grüße Christoph

mermshaus
15-05-2009, 23:51
Okay, diese Lösung ist voll peinlich, aber was soll's.

Hab mir erlaubt, die Beschriftung der x-Achse auch mit einer Schleife zu erledigen. Weiß jemand, wie bei einem \pgfmathparse-Ergebnis die Dezimalstellen (12.0 -> 12) entfernt werden können?


\documentclass{scrartcl}
\usepackage{tikz}
\usepackage[english]{babel}
\begin{document}

\begin{tikzpicture}[scale=0.8]
\foreach \x / \xtext in {1/0.2,2/0.4,3/0.6,4/0.8,5/1.0,6/1.2,7/1.4} % Hilfslinien
\draw[gray!50, text=black] (-0.2 cm,\x cm) -- (14.4 cm,\x cm)
node at (-0.5 cm,\x cm) {\small \xtext}; % Beschriftung der Hilfslinien

\foreach \i in {1983,...,2005}
{
\pgfmathparse{(1 + (\i - 1983)) * 0.6}\let\x\pgfmathresult
\node[rotate=45,left] at (0.25cm + \x cm,-0.1cm) {\small 4Q\i};
\draw[gray!50,text=black] (\x cm,-0.06 cm) -- (\x cm,0.06cm);
}
% Hinter die Bars, damit Ordinate über der Farbe ist
\draw[->] (0cm,0cm) -- node[below=30pt] {\small Year} (14.4cm,0cm); % Abzisse
\draw[->] (0cm,0cm) -- (0cm,7.5cm); % Ordinate
\node[rotate=90] at (-1.5cm,3.75cm) {\small Investment Degree};
\draw[red, thick] plot file {5PCID50EquallyUS1983.table};
\draw[blue, thick] plot file {MedianID50EquallyUS1983.table};
\draw[orange, thick] plot file {95PCID50EquallyUS1983.table};

\def\lx{5}
\def\ly{0.8}
\draw[fill=white] (\lx,\ly) rectangle (3+\lx,2.1+\ly);
\draw[red,thick] (0.1+\lx,0.35+\ly) -- +(0.3,0) node[anchor=mid west,black] {gl test};
\draw[blue,thick] (0.1+\lx,1.05+\ly) -- +(0.3,0) node[anchor=mid west,black] {gl test};
\draw[orange,thick] (0.1+\lx,1.75+\ly) -- +(0.3,0) node[anchor=mid west,black] {gl test};

\end{tikzpicture}

\end{document}

demian
16-05-2009, 08:58
Hey Mermshaus,

vielen Dank für den Vorschlag! Ich finde ihn überhaupt nicht peinlich, sondern so ziemlich das, was ich gesucht habe. Anpassen auf andere Graphiken lässt es sich ja jetzt recht einfach.

Und auch die Möglichkeit, die Jahre mit einer Schleife zu zeichnen, finde ich super. Macht den Latex-Text nochmal deutlich mehr lesbar und mich wieder ein bißchen schlauer.

Danke nochmals und Grüße Christoph