PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei plot mit pstricks: skalierung der y-achse



Mat
04-12-2007, 16:56
Hallo,

ich versuche vergeblich die skalierung der y-achse hinzubekommen.
Wenn ich meinen urpsrung auf 90 setze und einen datum mit 0.93 bzw... 93 angebe
dann wird es immer viel zu weit oben aufgetragen.
Was ich will: Ich will prozentual zur refernzlinien (rot) daten eintragen, also wenn
ein datum 0.95 angegeben ist, soll es in der mitte zwischen der roten linie und der
x-achse liegen....
Kann mir jemand
behilflich sein? Danke

Hier mein Minimalbeispiel:



\documentclass[12pt]{article}
\usepackage{pst-plot}
\usepackage[utf8]{inputenc}
\usepackage[USenglish, ngerman]{babel}
\usepackage{multido}
\usepackage{numprint}% you need the latest (!!!) version
\npthousandsep{\,}
\usepackage{arrayjob}% load it after numprint
%\usepackage{pstricks-add}

\definecolor{darkgreen}{rgb}{0.23,0.74,0.13}
\definecolor{darkgreen2}{rgb}{0.07,0.65,0}
\definecolor{darkyellow}{rgb}{0.67,0.83,0.13}
\definecolor{darkgray}{rgb}{0.34,0.34,0.34}

\makeatother

\newarray{\Setting}
\readarray{Setting}{
$8$ &
$16$ &
$$ &
$32$ &
$$ &
$$ &
$$ &
$64$ &
$$ &
$$ &
$$ &
$96$ &
$$ &
$$ &
$$ &
$128$}


%\def\psvlabel#1{\numprint{#1}}%
%\def\pshlabel#1{{\checkYears(#1)\small\cachedata} }

%\newarray{\Times}
%\readarray{Times}{35 & 36 & 37 }
\makeatother
\begin{document}
\pspicture(1,1)(9,9)

\def\pshlabel#1{{\small\Setting(#1)}}
\psaxes[showorigin=false,tickstyle=bottom,yunit=1cm,Dy=10, dy=1,Ox=1,Oy=90,
showorigin=true, xunit=0.5cm,Dx=1,arrowscale=2]{->}(17,4)

\psset{xunit=0.5cm}
\psset{yunit=1cm}

\psline[showpoints=false,linecolor=red,linewidth=1.5pt]{-}(0,1)(16,1)
\psline[showpoints=false,linecolor=red,linewidth=1.5pt]{-}(0,50)(16,50)




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Maximales Voranfordern
\savedata{\mydata}[
{
{0,0.93}, {1,0.929},
{3,0.92}, {7,0.906}, {11,0.95}, {15, 0.952}

}]
\dataplot[plotstyle=curve,linecolor=black,linewidth=1pt,show points=true]{\mydata}
\endpspicture
\end{document}

voss
05-12-2007, 14:02
Hallo,

ich versuche vergeblich die skalierung der y-achse hinzubekommen.
Wenn ich meinen urpsrung auf 90 setze und einen datum mit 0.93 bzw... 93 angebe
dann wird es immer viel zu weit oben aufgetragen.
Was ich will: Ich will prozentual zur refernzlinien (rot) daten eintragen, also wenn
ein datum 0.95 angegeben ist, soll es in der mitte zwischen der roten linie und der
x-achse liegen....

du musst dann die Werte natürlich anpassen, was am besten mit
\pstScalePoints geht. Allerdings nur mit \listplot.
In deinem Fall musst du von allen Werten 0.9 abziehen und dann mit
10 multiplizieren.



\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[USenglish, ngerman]{babel}
\usepackage{numprint}% you need the latest (!!!) version
\npthousandsep{\,}
\usepackage{arrayjob}% load it after numprint
\newarray{\Setting}
\readarray{Setting}{
8 & 16 & & 32 & & & & 64 & & & & 96 & & & & 128}
\usepackage{pstricks-add}
\makeatletter
\def\pst@@@hlabel#1{\small\Setting(#1)}
\makeatother

\begin{document}

\begin{pspicture}(4,9)
\psset{xunit=0.5cm}
\psline[linecolor=red,linewidth=1.5pt](0,1)(16,1)
\pstScalePoints(1,1){}{ 0.9 sub 10 mul }
% (xScale, yScale){ xOperator }{ yOperator }
\savedata{\mydata}[{
{0,0.93}, {1,0.929},
{3,0.92}, {7,0.906}, {11,0.95}, {15, 0.952}}]
\listplot[linewidth=1pt,showpoints=true]{\mydata}
\psaxes[ticksize=0 -4pt,Dy=10,dy=1,Ox=1,Oy=90,
showorigin=true,Dx=1,arrowscale=2]{->}(17,4)
\end{pspicture}

\end{document}


Herbert