PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pgfplots Abstand der Achsenbeschriftung zur Achse



_Daniel_
24-08-2011, 18:43
Hallo zusammen,

ich habe ein Problem mit dem Erstellen einer Grafik. Ich nutze das Paket pgfplots.
Die Achsenbeschriftung der Y-Achse wandert nach außen, sobald ich die Y-Achse in irgendeiner Form skaliere. Ich habe keine Ahnung warum das geschieht. In einem anderen Diagramm klappt das problemlos. Der einzige Unterschied ist, dass ich in dem anderen Diagramm eine 2. Y- Achse auf der rechten Seite habe. Ich habe schon beide Scripte miteinander verglichen, kann aber keinen Fehler feststellen.

Ich habe mal ein Minimalbeispiel erstellt:



\begin{filecontents}{test.dat}
0 -5
10 0
20 3
30 10
\end{filecontents}


\documentclass[%
a4paper,% Wir verwenden A4 Papier.
oneside,% Einseitiger Druck.
12pt,% Grosse Schrift, besser geeignet für A4.
halfparskip,% Halbe Zeile Abstand zwischen Absätzen.
idxtotoc% Index ins Inhaltsverzeichnis einfügen.
bibliography
]{scrartcl}
\thispagestyle{empty}
%\usepackage[left=3.0cm,right=2cm,top=1cm,bottom=2cm]{geometry}

\usepackage{tikz}
\usetikzlibrary{snakes}
\usepackage{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}% <-- moves axis labels near ticklabels (respects tick label widths)
\usepackage[latin1]{inputenc} %9
\usepackage[T1]{fontenc}


\begin{document}



\begin{tikzpicture}
\begin{axis}
[width=14cm,height=6cm,
xlabel={Zeit [$min$]},
ylabel={Hier ist das Problem},
legend columns=2, %Legende: 3 Einträge in Reihe
scale only axis, %scalierung der x Achse
xmin=0,xmax=75, % xmin und max
xtick={0,15,30,45,60,75},
%ymin=-5,ymax=10,
%ytick={-5,0,5,10}, % ymin und max
axis y line*=left, % the '*' avoids arrow heads
minor x tick num=2,
%minor y tick num =4,
grid=major,
legend style={at={(0.98,0.68)}}]

\addplot[only marks,mark=square*,blue] file {test.dat};

\end{axis}
\end{tikzpicture}
\end{document}


Wenn man hier die einkommentiert wandert das Label nach außen:

%ymin=-5,ymax=10,
%ytick={-5,0,5,10},
%minor y tick num =4,

Es wäre schön wenn mir da jemand weiter helfen kann. Das kann ja nur eine Kleinigkeit sein die ich vor lauter Blindheit im Moment nicht entdecke.

Gruß Daniel

localghost
24-08-2011, 21:14
Es ist in der Tat nur eine Kleinigkeit in Form einer Option für die Umgebung axis.

\begin{filecontents*}{\jobname.dat}
0 -5
10 0
20 3
30 10
\end{filecontents*}
\documentclass{minimal}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=14cm,height=6cm,
xlabel={Zeit / min},
ylabel={Hier ist das Problem},
xlabel near ticks,
ylabel near ticks,
legend columns=2,
scale only axis,
xmin=0,xmax=75,
xtick=0,15,30,45,60,75},
ymin=-5,ymax=10,
ytick={-5,0,5,10},
axis y line*=left,
minor x tick num=2,
minor y tick num =4,
grid=major,
legend style={at={(0.98,0.68)}}
]

\addplot[only marks,mark=square*,blue] file {\jobname.dat};
\end{axis}
\end{tikzpicture}
\end{document}


Thorsten

_Daniel_
25-08-2011, 11:45
Hmm, so ganz trifft es das noch nicht.

Ich habe hier noch mal ein Beispiel das es etwas deutlicher macht. Das linke Label hat einen großen Abstand, das rechte ist näher an der Achse.
Die Befehle

xlabel near ticks,
ylabel near ticks,

habe ich gesetzt:


\begin{filecontents}{test.dat}
0 -5
10 0
20 3
30 10
\end{filecontents}

\documentclass[%
a4paper,% Wir verwenden A4 Papier.
oneside,% Einseitiger Druck.
12pt,% Grosse Schrift, besser geeignet für A4.
halfparskip,% Halbe Zeile Abstand zwischen Absätzen.
idxtotoc% Index ins Inhaltsverzeichnis einfügen.
bibliography
]{scrartcl}
\thispagestyle{empty}

\usepackage[latin1]{inputenc} %9
\usepackage[T1]{fontenc}

\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{fit}

\usepackage{pgfplots}
\pgfplotsset{compat=1.3}% <-- moves axis labels near ticklabels (respects tick label widths)




\begin{document}
\begin{tikzpicture}

\begin{axis}
[
width=14cm,height=10cm,
scale only axis,
xmin=0,xmax=50,
ymin=-0.5, ymax=2,
ytick={-0.5,0,...,2.5},
minor y tick num =4,
xlabel={X Achse},
ylabel={großer Abstand},
xlabel near ticks,
ylabel near ticks,
grid=major,
]

\addplot[only marks,mark=square*,blue] file {test.dat};

\end{axis}
%_________________________________________________ ____________________________________

\begin{axis}[
width=14cm,height=10cm,
scale only axis,
xmin=0,xmax=50,
xtick={0,5,...,50},
axis x line=none,
ymin=0,ymax=75,
ytick={0,15,...,75},
ylabel={kleiner Abstand},
ylabel near ticks,
minor y tick num =4,
axis y line*=right,]
\end{axis}

\end{tikzpicture}

\end{document}



Gruß Daniel

_Daniel_
25-08-2011, 21:31
Ich habe gerade noch einmal alles mögliche durchprobiert. Ich habe einfach keine Ahnung warum das so ist...
Weiß da niemand Rat?
Das sieht einfach mist aus wenn sich die Abstände von einer Abbildung zur anderen einfach verändern.

Gruß Daniel

tral
26-08-2011, 08:51
Hallo,

für mich sieht das so aus, als ob tikz die Achsenbschriftung nicht in die Zahlen reinschreibt. Das wäre ein völlig korrektes Verhalten. Der Abstand vom "-0.5" zum linken Label scheint mir genauso groß wie der Abstand von 30 zum rechten Label...

Christian.

Feuersaenger
26-08-2011, 18:57
Hallo Daniel,

was da passiert ist das das -0.5 label die eine Beschriftung nach aussen schiebt.

Beheben kannst Du das, indem Du die Positionierung selber in die Hand nimmst.

Vermutlich ist es das beste, wenn Du - wie gewuenscht - den Abstand links und rechts als gleich definierst.

Das geht (z.B.), indem Du fuer die linke Achse
ylabel style={at={(-0.07,0.5)}},

und fuer die rechte Achse

ylabel style={at={(1.07,0.5)}},

setzt. In diesem Fall sind die Koordinaten relativ zur Achsengroesse, d.h. 50% der Hoehe und 7% der Breite bzw 107% der Breite. Da kannst Du vielleicht etwas mit rumspielen, um einen schoenen Abstand hinzubekommen.

Mit liebem Gruss

Christian

_Daniel_
26-10-2011, 18:17
So,

ich möchte mich an dieser Stelle für die Hilfe bedanken. Speziell bei den Usern: Bobmalaria, johansjohe und Feuersaenger. Die drei haben echt Geduld bewiesen und mich in mehreren Freds durch den Dschungel der Latexpakete geführt. Natürlich aber auch bei allen anderen die beteiligt waren.
Meine Masterarbeit ist schon längst abgegeben und heute hatte ich noch die Präsentation der Masterarbeit. Mit meinem Studium bin ich jetzt durch. Für die Formatierung der Arbeit und vor allem für die Darstellung meiner Messkurven habe ich von mehreren Stellen Lob bekommen. Das habe ich auch euch zu verdanken.
Vielen Dank!

Viele Grüße
Daniel