PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit der Legende bei pgfplots



JanMünchen
24-07-2011, 08:16
Hallo Leute,

ich möchte in einer Legende eine Datenreihe mit einem Bruch benennen. Wenn ich das mache, wird der Bruch leicht nach unten versetzt dargestellt (siehe Bilder). Was mache ich falsch bzw. wie kann ich es hinbekommen, dass der Bruchstrich auf Höhe des Symbols in der Legende dargestellt wird?

Hier der von mir verwendete Code:



\documentclass[ 11pt,
a4paper,
pointlessnumbers,
pagesize,
twoside,
captions=tableheading,
DIV13,
BCOR=10mm
]{scrreprt}
\usepackage{mathpazo}
\usepackage{beramono}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{pgfplots}

\pgfplotsset{my legend vierer lo/.style={ %Style der Legenden der vierer Abbildungen
cells={anchor=center},
at={(-0.0005,1.001)},
anchor=north west,
legend columns=1,
nodes={inner xsep=2mm},
inner xsep=2.5mm
}}

\begin{document}

\begin{tikzpicture}
\begin{loglogaxis}[name=plot1,
legend style={my legend vierer lo},
grid=major,
scale only axis,
width=6.5cm, height=5.0cm,
xmin=2.0025, xmax=40050,
ymin=1e-02, ymax=1e01,
xticklabel=\empty,
scaled y ticks = false,
y tick label style={/pgf/number format/fixed}]

\addplot [% ysi_ti/fe
black,
every mark/.append style={fill=red},
only marks,
mark=diamond*,
mark size=3.0,
error bars/.cd,
x dir=both,x explicit relative,
y dir=both,y explicit relative]
table [x index=11,x error index=12,y index=13,y error index=14] {Daten/ysi_feti50.txt};

\legend{$\frac{\mrm{Ti}^\mrm{+}}{\mrm{Fe}^\mrm{+}} $}
\end{loglogaxis}
\end{tikzpicture}

\end{document}

Vielen Dank für Eure Tipps schon mal :)

Gruß Jan

JanMünchen
24-07-2011, 09:19
Der Gruß ist mir mit in die Code-Umgebung gerutscht :-) Also hier nochmal:

Vielen Dank für Eure Tipps schon mal :)

Gruß Jan

localghost
24-07-2011, 09:41
Setze mit Hilfe von xfrac (http://ctan.org/pkg/xfrac) den Bruch in einer anderen Form.

\documentclass[%
fontsize=11pt,
paper=a4,
numbers=noenddot,
pagesize,
twoside,
captions=tableheading,
DIV=13,
BCOR=10mm
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[version=3]{mhchem} % Chemische Formelzeichen
\usepackage{xfrac} % "Schöne" Brüche
\usepackage{pgfplots}
\usepackage{mathpazo}

\pgfplotsset{%
my legend vierer lo/.style={% % Stil der Legenden der vierer Abbildungen
cells={anchor=center},
at={(-0.0005,1.001)},
anchor=north west,
legend columns=1,
nodes={inner xsep=2mm},
inner xsep=2.5mm
}
}

\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[%
name=plot1,
legend style={my legend vierer lo},
grid=major,
scale only axis,
width=6.5cm, height=5.0cm,
xmin=2.0025, xmax=40050,
ymin=1e-02, ymax=1e01,
xticklabel=\empty,
scaled y ticks = false,
y tick label style={/pgf/number format/fixed}
]

\addplot[% ysi_Ti/Fe
black,
every mark/.append style={fill=red},
only marks,
mark=diamond*,
mark size=3.0,
error bars/.cd,
x dir=both,x explicit relative,
y dir=both,y explicit relative
] table [x index=11,x error index=12,y index=13,y error index=14] {Daten/ysi_feti50.txt};

\legend{$\sfrac{\ce{Ti+}}{\ce{Fe+}}$};
\end{loglogaxis}
\end{tikzpicture}
\end{document}
Und das nächste Mal prüfst Du bitte deine Beispiele auf Lauffähigkeit, bevor Du sie präsentierst.


P.S.: Beiträge kann man auch nachträglich editieren.


Thorsten

JanMünchen
24-07-2011, 10:43
Danke für deine Idee. Ich hatte gedacht, dass mein Beispiel korrekt ist.... Aber doch wohl besser testen statt denken ;)

Sooo schön finde ich diese Bruchdarstellung allerdings nicht. Der Abstand zwischen dem Zähler und dem Bruchstrich ist aufgrund des Exponenten recht groß. Sieht irgendwie nicht so toll aus. Gibt es mit meiner Bruchdarstellung keine Möglichkeit?

Danke für Deine Hilfe :)

Feuersaenger
01-08-2011, 08:45
Hi Jan,

pgfplots hat hier vorgefertigte Anzeige styles, die womoeglich Deine Verschiebung verursachen.

Es hilft vermutlich, wenn Du

legend style={nodes={anchor=base}} (oder war es baseline?)

oder vielleicht

legend style={nodes={text depth=XXX}}

oder

legend style={nodes={yshift=1em}}

oder sowas versuchst. Der standardstyle ist

/pgfplots/every axis legend/.style={%
cells={anchor=center},
inner xsep=3pt,inner ysep=2pt,nodes={inner sep=2pt,text depth=0.15em},
anchor=north east,%
shape=rectangle,%
fill=white,%
draw=black,
at={(0.98,0.98)},
},

d.h. der zentriert vertikal in der Mitte (cells={anchor=center}) und hat eine 'text depth=0.15em'.

Viel Erfolg.

Mit liebem Gruss

Christian

PS
u.U. ist auch \usepackage{nicefrac} interessant: es braucht sehr wenig platz fuer einzeilige und huebsche brueche (aber nur fuer kleine Zahler/Nenner). Dann muss man glaube ich auch \nicefrac{1}{3} oder sowas schreiben.