PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : psgraph: Y-Achsen-Offset



a_deckert
21-06-2011, 19:55
Hallo,

da ein Teil der Datenpunkte auf der y-Achsen-0-Linie liegt, möchte ich diese zur besseren Darstellung geringfügig nach oben verschieben. Folgendes habe ich probiert, wobei dann aber leider die Verschiebung mit ".2" am Ursprungspunkt angegeben wird. Wie kann man ein Offset für die Y-Achse nach oben erreichen?

Danke und Gruß

\begin{filecontents*}{test.dat}
1980 824774 85712 0 28570
1981 891561 89485 0 29828
1982 936959 91556 0 30518
1983 973028 93003 0 31001
1984 1007949 93916 0 31305
1985 1045408 94376 0 31458
1986 1086479 95129 0 31709
1987 1163384 109617 0 36539
1988 1364084 157189 0 52396
1989 1735945 255323 0 85107
1990 2128917 403273 0 134424
1991 2348565 550606 0 183535
1992 2578097 746235 239417 239417
1993 2796686 953582 306782 0
1994 3018955 1166796 375179 0
1995 3236560 1376205 446864 0
\end{filecontents*}

\documentclass[11pt,titlepage, a4paper, oneside]{report}
\usepackage{pstricks,pstricks-add}
\usepackage{pst-pdf}
\psset{unit=1mm}
\begin{document}

\begin{figure*}[!tp]
\centering
\begin{pspicture}[linewidth=0.5pt](0,0)(9,140)
\readdata{\data}{test.dat}
\pstScalePoints(1,0.000001){1980 sub}{}
\psset{yAxisLabel=[N],xAxisLabel=, ticks=y, llx=-1.7cm,lly=-1.4cm}
\psgraph[Ox=1980,Oy=0, Dx=5,Dy=1,axesstyle=frame,showorigin=false,showOri ginTick=false,ylabelFactor={\cdot10^6},xLabels={\e mpty}]{->}(0,-0.2)(31,5.5){8cm}{6cm}
\listplot[plotNo=1, plotNoMax=4, linecolor=my_Red_2, linewidth=1pt]{\data}
\listplot[plotNo=2, plotNoMax=4, linecolor=my_Blue_2, linewidth=1pt]{\data}
\listplot[plotNo=3, plotNoMax=4, linecolor=my_Blue_2, linewidth=1pt, xStart=1992,linestyle=dashed]{\data}
\listplot[plotNo=4, plotNoMax=4, linecolor=my_Gray, linewidth=1pt, xEnd=1992, linestyle=dashed]{\data}
\endpsgraph
\end{pspicture}
\caption[test]{\textbf{test}test}
\label{fig:test}
\end{figure*}

\end{document}

a_deckert
22-06-2011, 12:01
Nach ein wenig "Rumbasteln" bin ich nun auf zwei Lösungswege gekommen:
1. Möglichkeit: man verzichtet auf psgraph und setzt alle Elemtente mit rput innerhalb einer pspicture-Umgebung (und dabei dann die y-Achse und die Daten nach oben verschoben)
2. Die Daten-Werte werden entsprechend dem gewünschten Offset mit pstScalePoints konstant erhöht, die Labels und Ticks der Achsen werden in den psgraph-Optionen eliminiert, eine zusätzliche y-Achse wird verschoben mit rput innerhalb von psgraph eingesetzt. Dabei ist zu beachten, dass bei psset ticks=y gesetzt werden muss (zumindest wenn wie hier nur die y-Achse mit ticks versehen werden soll), und dann zunächst in psgraph ticks=none.

\begin{filecontents*}{test.dat}
1980 824774 85712 0 28570
1981 891561 89485 0 29828
1982 936959 91556 0 30518
1983 973028 93003 0 31001
1984 1007949 93916 0 31305
1985 1045408 94376 0 31458
1986 1086479 95129 0 31709
1987 1163384 109617 0 36539
1988 1364084 157189 0 52396
1989 1735945 255323 0 85107
1990 2128917 403273 0 134424
1991 2348565 550606 0 183535
1992 2578097 746235 239417 239417
1993 2796686 953582 306782 0
1994 3018955 1166796 375179 0
1995 3236560 1376205 446864 0
\end{filecontents*}

\documentclass[11pt,titlepage, a4paper, oneside]{report}
\usepackage{pstricks,pstricks-add}
\usepackage{pst-pdf}
\psset{unit=1mm}
\begin{document}

\begin{figure*}[!tp]
\centering
\begin{pspicture}[linewidth=0.5pt](0,0)(9,140)
\readdata{\data}{test.dat}
\pstScalePoints(1,0.000001){1980 sub}{200000 add}
\psset{yAxisLabel=[N],xAxisLabel=, ticks=y, llx=-1.7cm,lly=-1.4cm}
\psgraph[Ox=1980,Oy=0, Dx=5,Dy=1,ticks=none,axesstyle=frame,showorigin=fa lse,showOri ginTick=false,xLabels={\empty},yLabels={\empty}]{->}(0,0)(31,5.5){8cm}{6cm}
\listplot[plotNo=1, plotNoMax=4, linecolor=my_Red_2, linewidth=1pt]{\data}
\listplot[plotNo=2, plotNoMax=4, linecolor=my_Blue_2, linewidth=1pt]{\data}
\listplot[plotNo=3, plotNoMax=4, linecolor=my_Blue_2, linewidth=1pt, xStart=1992,linestyle=dashed]{\data}
\listplot[plotNo=4, plotNoMax=4, linecolor=my_Gray, linewidth=1pt, xEnd=1992, linestyle=dashed]{\data}
\rput(0,2mm){\psaxes[Oy=0, Dy=1, xLabels={\empty}, axesstyle=none,ylabelFactor={\cdot10^6}]{->}(,5)
\endpsgraph
\end{pspicture}
\caption[test]{\textbf{test}test}
\label{fig:test}
\end{figure*}

\end{document}