Platzierung von Legenden mit pgfplots

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Platzierung von Legenden mit pgfplots

von feuersaenger » So 20. Nov 2011, 20:04

Hi Bene,

freut mich, dass es soweit klappt.

Deine Rueckfragen sind aber berechtigt: das ist in der Tat seltsam in der Nutzung. Tatsaechlich ist -bedingt durch einige trafos - die linke untere Ecke naemlich nicht unbedingt der Nullpunkt... was durchaus zuweilen Verwirrung stiftet (Sinn macht eine absolute Angabe vermutlich nur, wenn man einen benannten knoten angibt, d.h. at=(anothernode.north) oder so).

Mit liebem Gruss

Christian

von bene » So 20. Nov 2011, 19:10

Ja, dein Verständnis war richtig, genau so soll es aussehen.

Das mit dem Referenzpunkt dachte ich mir natürlich auch. Ich hab da einfach ein bisschen rumprobiert und dachte dann eigentlich der Referenzpunkt wäre immer unten links im Diagramm, wie es bei den relativen Koordinaten von 0 bis 1 ja auch ist. Es hat mich dann eben gewundert, dass ich für eine Koordinate eine Größe in cm eingeben kann und das erwartete Ergebnis dabei rauskommt, aber nicht mehr, wenn beide Koordinaten in cm sind.

Aber mit dem Tipp, den du mir gegeben hast funktioniert es jetzt, Danke.

von feuersaenger » So 20. Nov 2011, 17:57

Hi bene,

wenn ich Deine Anforderung "0.2cm neben dem Rand" richtig verstehe, willst Du doch eine relative Positionierung, oder? Ich vermute, Du meinst "0.2cm neben dem rechten Rand, ausrichtung am oberen Rand"?

Falls mein Verstaendnis davon korrekt ist, kannst Du das mit
legend style={at={(1,1)},xshift=0.2cm,anchor=north west,nodes=right}
erreichen: Das "at={(1,1)}" sorgt dafuer, dass die Legend an x=100% , y=100% der Axengroesse ausgerichtet wird, und das "xshift=0.2cm" macht anschliessend einen (absoluten) shift drauf.

Zu dem aufgetretenen Problem: wenn Du absolute Groessen da rein schreibst, plaziert pgfplots das an den angegebenen absolut koordinaten. Nur... welche sind das? Die Achse wird ja ein paar mal hin-und hergeschoben. Gegenueber welchem Referenzpunkt ist (0.2cm,4cm) dann richtig? Wenn hier nur (0.2,4cm) steht, bedeuted das soviel wie x= 20% der Achsenbreite und 4cm absolute hoehe (gegen welchen 0-punkt auch immer).

Mit liebem Gruss

Christian

Platzierung von Legenden mit pgfplots

von bene » So 20. Nov 2011, 10:19

Hi,

ich erstelle für meine Arbeit Diagramme über Matlab mit matlab2tikz. Dabei werden die Legenden mit folgendem Code platziert:
legend style={at={(0.03,0.97)},anchor=north west,nodes=right}
Die Legenden sind also relativ positioniert. Das gefällt mir nicht, da ich viele nicht quadratische Diagramme hab, und die Legenden dann immer unterschiedlich weit von den Rändern weg sind. Ich möchte die Legenden einfach immer 0.2cm vom Rand weg haben.

Ich hab hier ein Minimalbeispiel, wie ich es gern hätte. Allerdings funktioniert das bei mir nicht und ich versteh absolut nicht, warum.
Wenn ich nur eine der beiden Koordinaten zur Platzierung der Legende mit cm angeb, dann funktioniert es, wenn beide in cm sind, dann nicht.

\documentclass{report}

\usepackage{pgf}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}

\newlength\figwidth
\newlength\figheight
\newlength\figtest
\setlength\figtest{.2cm}

\begin{document}

\setlength\figwidth{10cm}
\setlength\figheight{4cm}
\begin{tikzpicture}
\begin{axis}[%
scale only axis,
width=\figwidth,
height=\figheight,
xmin=0, xmax=7,
ymin=0, ymax=2.5,
legend entries={asdf,test},
legend style={at={(\figtest,\figheight)},anchor=north west,nodes=right}]
\addplot[]coordinates{(-1,-1)};
\addplot[]coordinates{(-1,-1)};
\end{axis}
\end{tikzpicture}

\end{document}

Nach oben