diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex | 89 |
1 files changed, 48 insertions, 41 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex b/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex index 2436a847390..a426f7fb51f 100644 --- a/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex +++ b/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex @@ -1,4 +1,4 @@ -% $Id: pst-plot.tex 1056 2019-05-17 07:39:59Z herbert $ +% $Id: pst-plot.tex 1074 2019-07-16 16:07:00Z herbert $ %% %% BEGIN pst-plot.tex %% @@ -23,8 +23,8 @@ \ifx\PSTFPloaded\endinput\else \input pst-fp.tex \fi \ifx\MultidoLoaded\endinput\else \input multido.tex \fi % -\def\fileversion{1.92} -\def\filedate{2019/05/16} +\def\fileversion{1.93} +\def\filedate{2021/09/23} \message{ v\fileversion, \filedate\space (tvz,hv)} % \edef\TheAtCode{\the\catcode`\@} @@ -378,11 +378,14 @@ D\space##1% } repeat /u xiSquare fi mul xi xifi mul sub n xiSquare mul xi dup mul sub div def /v n xifi mul xi fi mul sub n xiSquare mul xi dup mul sub div def + gsave \Pst@Debug\space 0 gt { % print the equation - /NimbusSanL-Regu findfont 12 scalefont setfont + \ifpstGSfonts /NimbusSanL-Regu \else /Helvetica \fi + findfont 12 scalefont setfont 0 -50 moveto (y=) show % print y= v \pst@number\psyunit \pst@number\psxunit div div 20 string cvs show ( x+) show % m*x+ u \pst@number\psyunit div 20 string cvs show } if + grestore newpath (\psk@xStart) length 0 gt % special start value? { \psk@xStart\space \pst@number\psxunit mul } @@ -417,64 +420,64 @@ D\space##1% \addto@pscode{ /Barwidth \number\Add@barwidth 2 div def /Endwidth Barwidth \psk@arrowlength\space mul def - NArray bubblesort - /NArray ED % save sorted array - [ NArray { yUnit mul } forall ] /NArray ED % multiply with y unit - NArray 0 get /MinVal ED % save minimum - NArray m 1 sub get /MaxVal ED % maximum + NArray@i bubblesort + /NArray@i ED % save sorted array + [ NArray@i { yUnit mul } forall ] /NArray@i ED % multiply with y unit + NArray@i 0 get /MinVal ED % save minimum + NArray@i m 1 sub get /MaxVal ED % maximum m 2 div cvi /M ED % the middle - NArray length 2 mod 0 eq { % even numbers of entries - M 1 sub NArray exch get % even number of values - NArray M get % and the upper one + NArray@i length 2 mod 0 eq { % even numbers of entries + M 1 sub NArray@i exch get % even number of values + NArray@i M get % and the upper one add 2 div /Median ED % the median }{ - NArray M get /Median ED % odd numbers of values + NArray@i M get /Median ED % odd numbers of values } ifelse m 4 mod 0 eq { % get the lower Quartil even/odd - m 4 div cvi dup 1 sub NArray exch get - exch NArray exch get + m 4 div cvi dup 1 sub NArray@i exch get + exch NArray@i exch get % M 2 div cvi 1 add dup /M2 ED % save middle index -% 1 sub NArray exch get -% NArray M2 get +% 1 sub NArray@i exch get +% NArray@i M2 get add 2 div floor /LowerQuartil ED }{ - NArray M 2 div cvi get /LowerQuartil ED + NArray@i M 2 div cvi get /LowerQuartil ED } ifelse % end even/odd m 0.75 mul dup dup cvi sub 0 eq { % get the upper Quartil % 0.75*m is an integer - cvi dup 1 sub NArray exch get exch NArray exch get + cvi dup 1 sub NArray@i exch get exch NArray@i exch get % M 1.5 mul cvi 1 add dup /M3 ED -% 1 sub NArray exch get -% NArray M3 get +% 1 sub NArray@i exch get +% NArray@i M3 get add 2 div floor /UpperQuartil ED }{ % upper quartil - NArray m 0.75 mul floor cvi get /UpperQuartil ED + NArray@i m 0.75 mul floor cvi get /UpperQuartil ED } ifelse % /IQL UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul def 0 1 m 1 sub { % Index on stack dup /Index ED - NArray exch get LowerQuartil sub abs IQL sub 0 gt { + NArray@i exch get LowerQuartil sub abs IQL sub 0 gt { \psk@dotsize \@nameuse{psds@\psk@dotstyle} - 0 NArray Index get \psk@postAction + 0 NArray@i Index get \psk@postAction Dot - NArray Index LowerQuartil UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul sub + NArray@i Index LowerQuartil UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul sub dup /MinVal ED put % replace with 1.5 IQL - NArray Index 1 add get /MinVal ED + NArray@i Index 1 add get /MinVal ED } { exit } ifelse } for m 1 sub -1 0 { % Index on stack dup /Index ED - NArray exch get UpperQuartil sub abs IQL sub 0 gt { + NArray@i exch get UpperQuartil sub abs IQL sub 0 gt { % newpath \psk@dotsize \@nameuse{psds@\psk@dotstyle} - 0 NArray Index get \psk@postAction\space + 0 NArray@i Index get \psk@postAction\space Dot - NArray Index UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul UpperQuartil add + NArray@i Index UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul UpperQuartil add dup /MaxVal ED put % replace with 1.5 IQL - NArray Index 1 sub get /MaxVal ED + NArray@i Index 1 sub get /MaxVal ED }{ exit } ifelse } for % @@ -544,8 +547,8 @@ D\space##1% \@nameuse{beginplot@\psplotstyle}% \addto@pscode{ /D {} def - [ #1 ] /NArray ED - NArray aload length /m ED + [ #1 ] /NArray@i ED + NArray@i aload length /m ED /xUnit \pst@number\psxunit def /yUnit \pst@number\psyunit def }% @@ -1082,11 +1085,12 @@ D\space##1% \def\parametricplot@i#1#2{\@ifnextchar[{\parametricplot@x{#1}{#2}}{\parametricplot@x{#1}{#2}[]}} \def\parametricplot@x#1#2[#3]{\@ifnextchar[{\parametricplot@xi{#1}{#2}[#3]}{\parametricplot@xi{#1}{#2}[#3][]}} \def\parametricplot@xi#1#2[#3][#4]#5{% - \pst@killglue% + \pst@killglue \begingroup% - \use@par% + \use@par \@nameuse{beginplot@\psplotstyle}% \addto@pscode{% + 20 dict begin #3 %prefix PS code \psplot@init /t #1 def @@ -1126,7 +1130,7 @@ D\space##1% \@pstfalse \@nameuse{testqp@\psplotstyle}% \if@pst\parametricplot@ii{#4}\else\parametricplot@iii{#4}\fi - \endgroup% + \endgroup \ignorespaces} % \def\parametricplot@ii#1{% para is the post code @@ -1138,7 +1142,8 @@ D\space##1% /t 3 -1 roll def 2 copy gt { exch } if pop /t t 3 -1 roll add dup t1 gt {pop t1} if def xy \@nameuse{doqp@\psplotstyle} - t t1 eq { exit } if } loop}% + t t1 eq { exit } if } loop + }% \else\pst@killglue% \addto@pscode{% /ps@Exit false def @@ -1154,7 +1159,7 @@ D\space##1% } if }% \fi% - \addto@pscode{ #1 }% + \addto@pscode{ #1 end }% also end of userdict \@nameuse{endqp@\psplotstyle}} % \def\parametricplot@iii#1{% @@ -1170,7 +1175,8 @@ D\space##1% t t1 eq { exit } if } loop xy 2 copy \tx@UserCoor 2 array astore /FinalState ED - n 2 roll}% + n 2 roll + }% \else\pst@killglue% \addto@pscode{ mark @@ -1183,9 +1189,10 @@ D\space##1% } repeat /t t1 def xy - n 2 roll}% - \fi% - \addto@pscode{ #1 }% + n 2 roll + }% + \fi + \addto@pscode{ #1 end}% also end of userdict \@nameuse{endplot@\psplotstyle}} % % |