PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PSGraph, Skalierung x-Achse



RungeZipperer
22-10-2007, 15:01
Moin,

ich probiere gerade zum ersten Mal psgraph aus mit folgendem kleinen Beispiel:



\documentclass{article}
\usepackage{pst-plot}
\usepackage{pstricks-add}

\begin{filecontents}{plot.data}
1 1
2 2
3 5
\end{filecontents}


\begin{document}
\readdata\Data{plot.data}
\begin{psgraph}(1,0)(1,0)(3,5){10cm}{5cm}
\listplot{\Data}
\end{psgraph}

\end{document}



Ich hab die Parameter (xOrig, yOrig)(xMin,yMin)(xMax,yMax) wohl noch nicht verstanden. Ich habe für xOrig und xMin eine 1 eingegeben in der Hoffnung, dass die Skalierung der x-Achse dann auch mit 1 beginnt. Sie beginnt aber weiterhin bei 0 und damit entspricht das Ergbnis des Plots nicht mehr den eingelesenen Werten.

Anschlussfrage 1: Wie ändere ich die Beschriftung der Achsen? x bzw. y scheint ja der Default zu sein.

Anschlussfrage 2: Ich hab sonst immer beim Plotten auch mit \psset{...} und den Units rumgespielt. Das nimmt einem psgraph ja ab. In den Beispielen der Doku zu pstricks-add taucht fast immer \psset{llx=-1cm, lly=-1cm} auf. Ich hab keinen Unterschied festgestellt, ob ich diese Zeile verwende oder sie auskommentiere.

Vielen Dank.

localghost
22-10-2007, 18:52
Code sagt mehr als tausend Worte. Und deshalb hier auch gleich mal eine Version, die dir gefallen sollte. Erläuterungen gibt's weiter unten.

\documentclass[a4paper]{article}
%\usepackage{pst-plot}
\usepackage{pstricks-add}

\begin{filecontents*}{plot.data}
1 1
2 2
3 5
\end{filecontents*}


\begin{document}
\readdata\Data{plot.data}
\psset{llx=-1cm,lly=-1cm,urx=1mm,ury=1mm,xAxisLabel=x-Achse,yAxisLabel=y-Achse,xAxisLabelPos={2,-0.9},yAxisLabelPos={0.8,2.5}}
\psframebox[linestyle=dashed,linewidth=0.4pt]{
\begin{psgraph}[Ox=1,subticks=5,ticksize=0pt 4pt](1,0)(3,5){9cm}{5cm}
% \psaxes[labels=none,Ox=1,subticks=5,ticksize=0pt -4pt](3,5)(1,0)(3,5)
\listplot[linecolor=blue]{\Data}
\end{psgraph}
}
\end{document}
Damit die Achsen mit dem richtigen Wert beginnen, muss immer noch der Nullpunkt explizit mit angegeben werden. Hier ist das Ox ("O" wie origin). Die Positionierung der Achsenbeschriftung sollte selbsterklärend sein. Damit muss man vielleicht etwas herumspielen, weil die Koordinaten relativ zum Ursprung der Skalierung erfolgt. Aber das kannst Du ja selbst mal ausprobieren. Wenn Du das Ganze mit den Achsen als Rahmen und Ticks an den zusätzlichen Achsen haben willst, dann entferne mal das %-Zeichen vor dem \psaxes-Befehl. Alle weiteren Parameter erklärt dir die Anleitung von pstricks-add (http://dante.ctan.org/CTAN/help/Catalogue/entries/pstricks-add.html).

Diese zusätzlichen Koordinaten (llx, lly, urx, ury) sind die so genannten Trimwerte. Um ihre Funktion zu verdeutlichen, habe ich um die psgraph-Umgebung mal einen Rahmen gesetzt. Sie legen die untere linke (lower left) und die obere rechte Ecke (upper right) der psgraph-Umgebung relativ zu dem Bereich fest, den die Achsen aufspannen. Wie sich das auswirkt, sieht man so richtig erst, wenn man diesen Graphen mal in eine figure-Umgebung setzt. Da kann es nämlich passieren, dass die neu gesetzte und positionierte Achsenbeschriftung der x-Achse mit der Bildunterschrift kollidiert. Die neue Achsenbeschriftung, ihre Positionierung und die Werte zur Trimmung können nur außerhalb der psgraph-Umgebung mit \psset festgelegt werden.

So, hoffentlich wurde alle Fragen zufriedenstellend beantwortet. Sonst einfach nochmal nachfragen.


MfG
Thorsten

RungeZipperer
23-10-2007, 08:26
Danke, sieht sehr gut aus.

Da ich viele Plots aus einer Applikation heraus erstellen will, muss ich mir noch überlegen, wie ich die Achsenbeschriftung immer zentriert unter der Achse platzieren kann, denn die Skalierung wird für jeden Plot anders sein.