diff options
Diffstat (limited to 'graphics/pstricks/contrib/pst-bar/pst-bar.orig')
-rw-r--r-- | graphics/pstricks/contrib/pst-bar/pst-bar.orig | 420 |
1 files changed, 0 insertions, 420 deletions
diff --git a/graphics/pstricks/contrib/pst-bar/pst-bar.orig b/graphics/pstricks/contrib/pst-bar/pst-bar.orig deleted file mode 100644 index 407c75d749..0000000000 --- a/graphics/pstricks/contrib/pst-bar/pst-bar.orig +++ /dev/null @@ -1,420 +0,0 @@ -\csname PSTBarLoaded\endcsname% -\let\PSTBarLoaded\endinput% -\ifx\PSTplotLoaded\endinput\else\input pst-plot.tex\fi% -\pstheader{pst-bar.pro}% -\input pst-key.tex% - -\def\fileversion{0.7a} -\def\filedate{2004/09/24} -\message{`pst-bar' v\fileversion, \filedate\space (Alan Ristow)}% - -\define@key{psset}{barsep}{\edef\psk@barsep{#1}}% -\define@key{psset}{barcolsep}{\edef\psk@barcolsep{#1}}% -\define@key{psset}{barstyle}{\edef\psk@barstyle{#1}}% -\define@key{psset}{barlabelrot}{\edef\psk@barlabelrot{#1}}% -\setkeys{psset}{barsep=0.0,barcolsep=0.4,barstyle=\@empty,barlabelrot=0}% -% -% chartstyle=cluster|stack|block (0,1,2) -\def\psset@chartstyle#1{\pst@expandafter\psset@@chartstyle{#1}\@nil\psk@chartstyle} -\def\psset@@chartstyle#1#2\@nil#3{% - \ifx#1c\let#3\z@\else - \ifx#1s\let#3\@ne\else - \ifx#1b\let#3\tw@\else - \@pstrickserr{Bad argument: `#1#2'}\@ehpa - \fi - \fi - \fi -}% -\psset@chartstyle{cluster}% -% -% orientation=vertical|horizontal (0,1) -\def\psset@orientation#1{\pst@expandafter\psset@@orientation{#1}\@nil\psk@orientation} -\def\psset@@orientation#1#2\@nil#3{% - \ifx#1h\let#3\p@\else - \ifx#1v\let#3\z@\else - \@pstrickserr{Bad argument: `#1#2'}\@ehpa - \fi - \fi -}% -\psset@orientation{vertical}% - -\def\psset@header#1{% - \pst@expandafter\psset@@header{#1}\@nil\psk@header -}% -\def\psset@@header#1#2\@nil#3{% - \ifx#1t\let#3\z@\else - \ifx#1f\let#3\@ne\else - \@pstrickserr{Bad argument: `#1#2'}\@ehpa - \fi - \fi -}% -\psset@header{true}% - -\def\psbarchart{\def\pst@par{}\pst@object{psbarchart}}% -\def\pstbar@header{\@empty}% -\def\psbarlabel#1{#1}% -\def\psbarlabelsep{0pt}% -\def\psbarscale(#1)#2{% - \def\psbar@mul{#1\space}% - \def\psbar@psop{#2\space}% -} -\def\psbar@mul{1\space}% -\def\psbar@psop{\@empty}% - -\newread\pstbar@file% - -% Define bar chart styles - -\def\psset@barstyle#1{\def\@barstylelist{#1}}% -\def\newpsbarstyle#1#2{\@namedef{psbarcs@#1}{\psset{#2}}}% - -\def\begin@barstyle{\def\pst@tempd{/barstyles [ }}% -\def\add@barstyle{% - \def\pst@code{}% - \ifpsshadow% - \pst@closedshadow% - \fi% - \ifdim\psk@border\p@>\z@% - \pst@addborder% - \fi% - \psk@fillstyle% - \pst@stroke% - \ifpsdoubleline% - \pst@doublestroke% - \fi% - \def\pst@tempa{\strip@pt\psk@orientation}% - \edef\pst@tempd{ \pst@tempd (% - \pst@tempc \psk@cornersize% - xbar1 ybar1 xbar2 ybar2 4 -\pst@tempa\space roll - \psk@dimen% - \tx@Frame% - \pst@code )% - }% -} -\def\end@barstyle{\edef\pst@tempd{ \pst@tempd ] def }}% - -\def\setbarstyle{% - \begin@barstyle% - \expandafter\@setbarstyle\@barstylelist,\@nil\ignorespaces% - \end@barstyle% -}% -\def\@setbarstyle#1,{% - \@@setbarstyle{#1}% - \@ifnextchar\@nil{\@gobble}{\@setbarstyle}% -}% -\def\@@setbarstyle#1{% - \@ifundefined{psbarcs@#1}% - {\@pstrickserr{Custom bar chart style `#1' undefined}\@ehpa}% - {\@nameuse{psbarcs@#1}\add@barstyle}% -}% - -% Default bar chart styles - -\newpsbarstyle{red}{fillcolor=red,fillstyle=solid,framearc=0}% -\newpsbarstyle{green}{fillcolor=green,fillstyle=solid,framearc=0}% -\newpsbarstyle{blue}{fillcolor=blue,fillstyle=solid,framearc=0}% -\newpsbarstyle{black}{fillcolor=black,fillstyle=solid,framearc=0}% -\newpsbarstyle{white}{fillcolor=white,fillstyle=solid,framearc=0}% -\newpsbarstyle{gray}{fillcolor=gray,fillstyle=solid,framearc=0}% -\newpsbarstyle{lightgray}{fillcolor=lightgray,fillstyle=solid,framearc=0}% -\newpsbarstyle{darkgray}{fillcolor=darkgray,fillstyle=solid,framearc=0}% - -\psset@barstyle{black,darkgray,gray,lightgray,white,red,green,blue}% - -\def\readpsbardata{\@ifnextchar[{\readpsbardata@i}{\readpsbardata@i[]}} - -\def\readpsbardata@i[#1]#2#3{% - \def\pst@tempa{#1}% - \ifx\pst@tempa\@empty\else\psset{#1}\fi - \openin\pstbar@file=#3\relax% - \ifeof\pstbar@file% - \@pstrickserr{Data file `#3' not found.}\@ehpa - \else - \def\pst@tempb{\@empty}% - \ifx\psk@header\z@% - \@readpsbarheader% - \fi - \readpsbardata@ii% - \edef\pst@tempb{[\pst@tempb]}% - \let#2\pst@tempb% - \fi - \closein\pstbar@file% -}% - -\def\readpsbardata@ii{% - \read\pstbar@file to \pst@tempa - \ifeof\pstbar@file - \relax - \else - \edef\pst@tempb{\pst@tempb [}% - \expandafter\readpsbardata@iii\pst@tempa,\@nil\ignorespaces% - \edef\pst@tempb{\pst@tempb ]}% - \readpsbardata@ii% - \fi -}% - -\def\readpsbardata@iii#1,{% - \edef\pst@tempb{\pst@tempb #1\space}% - \@ifnextchar\@nil{\@gobble}{\readpsbardata@iii}% -}% - -\def\@readpsbarheader{% - \read\pstbar@file to \pst@tempa - \ifeof\pstbar@file - \relax - \else - \let\pstbar@header\pst@tempa - \fi -}% - -% Apply labels from file header to bar chart columns. -% TODO: Deal with column headings that contain commas. - -% The trimspaces command is (c) Michael Downes 1994 -% (http://www.tug.org/tex-archive/info/aro-bend/answer.015). -\catcode`\Q=3 -\def\psbar@trimspaces#1{% - \begingroup - \aftergroup\toks\aftergroup0\aftergroup{% - \expandafter\trimb\expandafter\noexpand#1Q Q}% - \edef#1{\the\toks0}% -} -\def\trimb#1 Q{\trimc#1Q} -\def\trimc#1Q#2{\afterassignment\endgroup \vfuzz\the\vfuzz#1} -\catcode`\Q=11 - -\def\pstbar@xlabels{% - \pst@dima=-0.5pt\relax% - \expandafter\pstbar@xlabels@i\pstbar@header,\@nil\ignorespaces% -}% - -\def\pstbar@xlabels@i#1,{% - \def\pst@tempa{#1}% - \psbar@trimspaces\pst@tempa% - \advance\pst@dima by 1pt% - \def\pst@tempb{\strip@pt\pst@dima}% - \uput[-90]{\psk@barlabelrot}(\pst@tempb,-\psbarlabelsep){\psbarlabel{\pst@tempa}}% - \@ifnextchar\@nil{\@gobble}{\pstbar@xlabels@i}% -}% - -\def\pstbar@labelcount#1{% - \pst@dima=0pt\relax% - \expandafter\pstbar@labelcount@i\pstbar@header,\@nil\ignorespaces% - \let#1\pst@dima% -}% - -\def\pstbar@labelcount@i#1,{% - \advance\pst@dima by 1pt% - \@ifnextchar\@nil{\@gobble}{\pstbar@labelcount@i}% -}% - -\def\pstbar@ylabels{% - \pstbar@labelcount{\pst@dima}% - \advance\pst@dima by 0.5pt% - \expandafter\pstbar@ylabels@i\pstbar@header,\@nil\ignorespaces% -}% - -\def\pstbar@ylabels@i#1,{% - \def\pst@tempa{#1}% - \psbar@trimspaces\pst@tempa% - \advance\pst@dima by -1pt% - \def\pst@tempb{\strip@pt\pst@dima}% - \uput[180]{\psk@barlabelrot}(-\psbarlabelsep,\pst@tempb){\psbarlabel{\pst@tempa}}% - \@ifnextchar\@nil{\@gobble}{\pstbar@ylabels@i}% -}% - -\def\psbarchart@i#1{% - \pst@killglue% - \begingroup% - \use@par% - \psbarchart@ii{#1}% - \endgroup% - \ignorespaces% -}% - -\def\psbarchart@ii#1{% - \begin@SpecialObj% - - % Save contents of \pst@code and load start-of-path code - % into \pst@tempc - - \let\pst@tempb\pst@code% - \def\pst@code{}% - \solid@star% - \let\pst@tempc\pst@code% - - % Load end-of-path code into \pst@tempd and restore original - % contents of \pst@code - - \begin@barstyle% - \expandafter\@setbarstyle\@barstylelist,\@nil\ignorespaces% - \end@barstyle% - \let\pst@code\pst@tempb% - - % Draw bar chart - - \pst@checknum\psk@barcolsep\pst@tempa% - \pst@checknum\psk@barsep\pst@tempb% - \ifx\psk@orientation\z@ % vertical - \pst@dima=\psxunit% - \pst@dimb=\psyunit% - \def\pst@tempc{true}% - \else\ifx\psk@orientation\p@ % horizontal - \pst@dima=\psyunit% - \pst@dimb=\psxunit% - \def\pst@tempc{false}% - \else - \@pstrickserr{Bad orientation specification}\@ehpa - \fi\fi - \ifcase\psk@chartstyle% chartstyle=cluster - \addto@pscode{% - \pst@tempd% - /BARDATA #1 def - /nbars BARDATA length def - /ncols BARDATA 0 get length def - /colwidth \pst@number\pst@dima def - /barcolsep \pst@tempa \pst@number\pst@dima mul def - /barsep \pst@tempb \pst@number\pst@dima mul def - /barwidth colwidth barcolsep sub nbars 1 sub barsep mul sub nbars div def - /bXoffset 0.5 barcolsep mul def - /colcount \pst@tempc\space {0}{ncols 1 sub} ifelse def - /barcount 0 def - /ybar1 0 def - BARDATA { - /DATAVECTOR exch def - DATAVECTOR { - /ybar2 exch \psbar@psop \psbar@mul mul \pst@number\pst@dimb mul def - /xoffset barwidth barsep add barcount mul bXoffset add def - /xbar1 colcount colwidth mul xoffset add def - /xbar2 xbar1 barwidth add def - ybar1 ybar2 ne { % if ybar1 == ybar2, don't stroke a path - newpath - barstyles barcount get cvx exec - } if - /colcount \pst@tempc\space {colcount 1 add}{colcount 1 sub} ifelse def - } forall - /colcount \pst@tempc\space {0}{ncols 1 sub} ifelse def - /barcount barcount 1 add def - } forall - }% - \or% chartstyle=stack - \addto@pscode{% - \pst@tempd% - tx@BarDict begin - /BARDATA #1 transpose def - /ncols BARDATA length def - /colwidth \pst@number\pst@dima def - /barcolsep \pst@tempa \pst@number\pst@dima mul def - /barwidth colwidth barcolsep sub def - /bXoffset 0.5 barcolsep mul def - /colcount \pst@tempc\space {0}{ncols 1 sub} ifelse def - /barcount 0 def - /ybar1 0 def - BARDATA { - /DATAVECTOR exch def - /xbar1 colcount colwidth mul bXoffset add def - /xbar2 xbar1 barwidth add def - DATAVECTOR { - /ybar2 exch \psbar@psop \psbar@mul mul \pst@number\pst@dimb mul ybar1 add def - ybar1 ybar2 ne { % if ybar1 == ybar2, don't stroke a path - newpath - barstyles barcount get cvx exec - closepath - } if - /ybar1 ybar2 def - /barcount barcount 1 add def - } forall - /barcount 0 def - /ybar1 0 def - /colcount \pst@tempc\space {colcount 1 add}{colcount 1 sub} ifelse def - } forall - end - }% - \or% chartstyle=block - \addto@pscode{% - \pst@tempd% - tx@BarDict begin - /BARDATA #1 transpose def - /ncols BARDATA length def - /nbars BARDATA 0 get length 2 idiv def - /colwidth \pst@number\pst@dima def - /barcolsep \pst@tempa \pst@number\pst@dima mul def - /barsep \pst@tempb \pst@number\pst@dima mul def - /barwidth colwidth barcolsep sub nbars 1 sub barsep mul sub nbars div def - /bXoffset 0.5 barcolsep mul def - /colcount \pst@tempc\space {0}{ncols 1 sub} ifelse def - /barcount 0 def - /ybar1 0 def - BARDATA { - /DATAVECTOR exch def - 0 1 nbars 1 sub { - dup - /ybar1 exch 2 mul DATAVECTOR exch get \psbar@psop \psbar@mul mul \pst@number\pst@dimb mul def - /ybar2 exch 2 mul 1 add DATAVECTOR exch get \psbar@psop \psbar@mul mul \pst@number\pst@dimb mul def - /xoffset barwidth barsep add barcount mul bXoffset add def - /xbar1 colcount colwidth mul xoffset add def - /xbar2 xbar1 barwidth add def - ybar1 ybar2 ne { % if ybar1 == ybar2, don't stroke a path - newpath - barstyles barcount get cvx exec - } if - /barcount barcount 1 add def - } for - /barcount 0 def - /colcount \pst@tempc\space {colcount 1 add}{colcount 1 sub} ifelse def - } forall - end - }% - \else% - \@pstrickserr{Unknown chart style.}\@ehpa% - \fi% - \ifx\psk@orientation\z@% - \pstbar@xlabels% - \else - \pstbar@ylabels% - \fi - \end@SpecialObj% -}% - -\endinput - -\iffalse -%% CHANGE-LOG - v 0.7a 2004/09/24 - Removed some debugging code that was accidentally left in the last release. - The removed code was harmless, but caused confusion for some users. - - v 0.7 2004/09/15 - Made a minor change to \psbarscale so its functionality would be more - closely analogous to the \pstScale command from the pstricks-add pacakge. - Improved documentation. Set default barstyle to list of all available - barstyles. First release to CTAN. - - v 0.6 2004/09/09 - Added orientation parameter and horizontal bar-drawing capability. Removed - erroneous correction factor for linewidth from stacked bar chart. - - v 0.5 2004/09/02 - Added header parameter for \readpsbardata. Improved handling of headers in - the data file -- spaces may now be included in a header item, though commas - still may not. - - v 0.4 2004/08/29 - Added "block" chartstyle. Updated \readpsbardata to use .csv for both - header and data. Introduced \psbarscale command. First release to pstricks - mailing list, 2004/09/01. - - v 0.3 2004/08/26 - Added command \readpsbardata to read data for bar chart directly from a - .csv file with the first row containing the column labels. - - v 0.2a 2004/08/23 - Changed colsep parameter name to barcolsep to avoid clash with psmatrix. - - v 0.2 2004/08/22 - Added stacked bar chart, chartstyle parameter, and introduced pst-bar.pro - prologue with transpose command. - - v 0.1 2004/08/21 - Clustered bar chart. -\fi |