Seite 1 von 1

pgfplot: Überlappende y tick labels positionieren

Verfasst: Do 15. Okt 2015, 10:46
von Orikson
Ich mal wieder mit einem Problem zu einem Diagram. Bei diesem ist nahe der Nulllinie ein weiterer ytick mit dazugehörendem Label welches sich nun aber mit dem Null-Label überschneidet. Ich frage mich nun wie ich diese Labels am besten umpositioniere damit das eben nicht mehr passiert. Ein yshift verschiebt ja alle Beschriftungen nach unten und hilft genauso wenig wie eine Rotation. Die Schrift verkleinern möchte ich nicht da diese dann nicht mehr mit dem Rest übereinstimmt. Genauso kann ich xmin und xmax nicht verändern da sonst das Verhältnis der Werte nicht mehr passt...

Vor einiger Zeit habe ich schon eine Lösung zu diesem Problem gefunden. Da ich das Problem damals aber noch nicht hatte habe ich es nicht weiter angesehen und jetzt finde ich es natürlich auch nicht mehr... Die Lösung sah aber aus wie im angehängtem Bild bei welchem die Labels jeweils nach oben/unten verschoben werden und mit der Position im Diagram verbunden waren. Natürlich könnte ich das auch manuel einzeichnen, ich frage mich aber ob es dafür nicht eine automatische Lösung gibt.
\documentclass[a4paper]{scrreprt}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
	ymin = -1.5,
	ymax = 2.5,
	grid = major,
	ytick = {2, 0, -0.15, -1},
	yticklabels = {$2$, $0$, $0.15$, $-1$}
	]
	\addplot{x};
\end{axis}
\end{tikzpicture}

\end{document}

Verfasst: Do 15. Okt 2015, 10:53
von Noch so einer
Ohne die seltsam gebogenen Linien:
\documentclass[a4paper]{scrreprt}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
   ymin = -1.5,
   ymax = 2.5,
   grid = major,
   ytick = {2, 0, -0.15, -1},
   yticklabels = {$2$, \raisebox{1mm}{$0$}, \raisebox{-6mm}{$0.15$}, $-1$}
   ]
   \addplot{x};
\end{axis}
\end{tikzpicture}

\end{document}
Theoretisch könnte man mit \tikz vermutlich auch kleine tikz-Grafiken für die Beschriftung verwenden und so die gebogenen Linien dazu bringen. Ich finde das aber ohne die Linien deutlich genug und schöner.

Verfasst: Do 15. Okt 2015, 11:12
von Orikson
Hallo und danke für die schnelle Antwort.

Die Lösung mit der raisebox gefällt mir ebenfalls gut, so werde ich das nun auch lassen. Allerdings scheint die etwas Probleme mit relativen Angaben und Kommawerten zu haben, mit -0.7\baselineskip macht er gar nichts, mit -1\baselineskip schon :roll:
\raisebox{-0.7\baselineskip} % geht nicht
\raisebox{-1\baselineskip} % geht schon