diff options
author | Karl Berry <karl@freefriends.org> | 2013-08-12 22:17:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-08-12 22:17:14 +0000 |
commit | 8dda786294d3a2eb9a110ff813d0a6d3d4870c51 (patch) | |
tree | ce9dbab8c81a39f816188f5679c4590b0d36e562 /Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex | |
parent | 368c76584a33996d358ac5341b92dc7135cad490 (diff) |
pst-plot (12aug13)
git-svn-id: svn://tug.org/texlive/trunk@31420 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex | 3361 |
1 files changed, 0 insertions, 3361 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex deleted file mode 100644 index 07a6e04cb21..00000000000 --- a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex +++ /dev/null @@ -1,3361 +0,0 @@ -\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings - headexclude,footexclude,oneside,dvipsnames,svgnames]{pst-doc} -\listfiles - -\usepackage[utf8]{inputenc} -\usepackage{pst-node,pst-plot} -%\usepackage{pstricks-gvb} -\SpecialCoor -\let\pstFV\fileversion -\let\belowcaptionskip\abovecaptionskip -% -\def\bgImage{% -\begin{pspicture}(-3.5,-3.5)(3.5,3.5) -\psaxes[axesstyle=polar,subticklinestyle=dashed,subticks=2, - labelFontSize=\scriptstyle](3,3) -\psplot[polarplot,algebraic=true,linecolor=red,linewidth=2pt, - plotpoints=2000]{0}{TwoPi}{6*sin(x)*cos(x)} -\end{pspicture} -} -\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={}}, - escapechar=?} -\def\textat{\char064}% - -\input{\jobname.dat} - -\begin{document} -\title{\texttt{pst-plot}\\plotting data and functions \\\small v.\pstFV} -\docauthor{Herbert Vo\ss} -\author{Timothy Van Zandt\\Herbert Vo\ss} -\date{\today} - -\maketitle - -\begin{abstract} -This version of \LPack{pst-plot} uses the extended keyval handling -of \LPack{pst-xkey} and has a lot of the macros which were recently in -the package \LPack{pstricks-add}. This documentation describes only the -new and changed stuff. For the default behaviour look into the -documentation part of the base \LPack{pstricks} package. You find the -documentation here: \url{http://mirrors.ctan.org/graphics/pstricks/base/doc/}. - -\vfill -\noindent -Thanks to: -Guillaume van Baalen; -Stefano Baroni; -Martin Chicoine; -Gerry Coombes; -Ulrich Dirr; -Christophe Fourey; -Hubert G\"a\ss lein; -J\"urgen Gilg; -Denis Girou; -Peter Hutnick; -Christophe Jorssen; -Uwe Kern; -Manuel Luque; -Patrice Mégret; -Jens-Uwe Morawski; -Tobias N\"ahring; -Rolf Niepraschk; -Martin Paech; -Alan Ristow; -Christine R\"omer; -Arnaud Schmittbuhl -\end{abstract} - -\clearpage -\tableofcontents - -\clearpage -\part{Basic commands, connections and labels} -\section{Introduction} -The plotting commands described in this part are defined in the very first version -of \LPack{pst-plot.tex} and available for all new and ancient versions. - -The \Lcs{psdots}, \Lcs{psline}, \Lcs{pspolygon}, \Lcs{pscurve}, \Lcs{psecurve} and -\Lcs{psccurve} graphics objects let you plot data in a variety of ways. However, -first you have to generate the data and enter it as coordinate pairs \CAny. -The plotting macros in this section give you other ways to get and use the -data. %(Section \ref{S-axes} tells you how to generate axes.) - -To parameter - \Lkeyset{plotstyle=style} -determines what kind of plot you get. Valid styles are \Lkeyval{dots}, \Lkeyval{line}, -\Lkeyval{polygon}, \Lkeyval{curve}, \Lkeyval{ecurve}, \Lkeyval{ccurve}. E\,,g., if the \Lkeyword{plotstyle} is -\Lkeyval{polygon}, then the macro becomes a variant of the \Lcs{pspolygon} object. - -You can use arrows with the plot styles that are open curves, but there is no -optional argument for specifying the arrows. You have to use the \Lkeyword{arrows} -parameter instead. - -No\XInfoDanger{~} PostScript error checking is provided for the data arguments. %Read Appendix -%\ref{S-raw} before including PostScript code in the arguments. -There are system-dependent limits on the amount of data \TeX{} and PostScript -can handle. You are much less likely to exceed the PostScript limits when you -use the \Lkeyval{line}, \Lkeyval{polygon} or \Lkeyval{dots} plot style, with \LKeyword{showpoints=false}, -\LKeyset{linearc=0pt}, and no arrows. - -Note that the lists of data generated or used by the plot commands cannot -contain units. The values of \Lcs{psxunit} and \Lcs{psyunit} are used as the unit. - - -\section{Plotting data records} - -\begin{BDef} - \Lcs{fileplot}\OptArgs\Largb{file}\\ - \Lcs{psfileplot}\OptArgs\Largb{file}\\ - \Lcs{dataplot}\OptArgs\Largb{\Lcs{\Larga{macro}}}\\ - \Lcs{psdataplot}\OptArgs\Largb{\Lcs{\Larga{macro}}}\\ - \Lcs{savedata}\Largb{\Lcs{\Larga{macro}}}\Largs{data}\\ - \Lcs{readdata}\Largb{\Lcs{\Larga{macro}}}\Largb{file}\\ - \Lcs{psreadColumnData}\Largb{colNo}\Largb{delimiter}\Largb{\Lcs{\Larga{macro}}}\Largb{filename}\\ - \Lcs{listplot}\Largb{data}\\ - \Lcs{pslistplot}\Largb{data} -\end{BDef} -The macros with a preceeding \verb|ps| are equivalent to those without. - -\Lcs{fileplot} is the simplest of the plotting functions to use. You just need a -file that contains a list of coordinates (without units), such as generated by -Mathematica or other mathematical packages. The data can be delimited by curly -braces \verb|{ }|, parentheses \verb|( )|, commas, and/or white space. Bracketing -all the data with square brackets \verb|[ ]| will significantly speed up the rate -at which the data is read, but there are system-dependent limits on how much -data \TeX{} can read like this in one chunk. (The \verb|[| \emph{must} go at the -beginning of a line.) The file should not contain anything else (not even -\Lcs{endinput}), except for comments marked with \verb|%|. - -\Lcs{fileplot} only recognizes the \Lkeyval{line}, \Lkeyval{polygon} and \Lkeyval{dots} plot styles, and -it ignores the \Lkeyword{arrows}, \Lkeyword{linearc} and \Lkeyword{showpoints} parameters. The -\Lcs{listplot} command, described below, can also plot data from file, without -these restrictions and with faster \TeX{} processing. However, you are less -likely to exceed PostScript's memory or operand stack limits with \Lcs{fileplot}. - -If you find that it takes \TeX{} a long time to process your \Lcs{fileplot} -command, you may want to use the \Lcs{PSTtoEPS} command described on page -\pageref{+PSTtoEPS}. This will also reduce \TeX's memory requirements. - -\Lcs{dataplot} is also for plotting lists of data generated by other programs, -but you first have to retrieve the data with one of the following commands: -\Larg{data} or the data in \Larg{file} should conform to the rules described above for -the data in \Lcs{fileplot} (with \Lcs{savedata}, the data must be delimited by -\verb|[ ]|, and with \Lcs{readdata}, bracketing the data with \verb|[ ]| speeds things -up). You can concatenate and reuse lists, as in -\begin{lstlisting}[style=syntax] -\readdata{\foo}{foo.data} -\readdata{\bar}{bar.data} -\dataplot{\foo\bar} -\dataplot[origin={0,1}]{\bar} -\end{lstlisting} - -The \Lcs{readdata} and \Lcs{dataplot} combination is faster than \Lcs{fileplot} -if you reuse the data. \Lcs{fileplot} uses less of \TeX's memory than -\Lcs{readdata} and \Lcs{dataplot} if you are also use \Lcs{PSTtoEPS}. - -Here is a plot of $\int\sin(x)\mathrm{d}x$. The data was generated by Mathematica, -with -\begin{lstlisting} - Table[{x,N[SinIntegral[x]]},{x,0,20}] -\end{lstlisting} -and then copied to this document. -\begin{LTXexample}[pos=t] -\pspicture(4,3) \psset{xunit=.2cm,yunit=1.5cm} - \savedata{\mydata}[ - {{0, 0}, {1., 0.946083}, {2., 1.60541}, {3., 1.84865}, {4., 1.7582}, - {5., 1.54993}, {6., 1.42469}, {7., 1.4546}, {8., 1.57419}, - {9., 1.66504}, {10., 1.65835}, {11., 1.57831}, {12., 1.50497}, - {13., 1.49936}, {14., 1.55621}, {15., 1.61819}, {16., 1.6313}, - {17., 1.59014}, {18., 1.53661}, {19., 1.51863}, {20., 1.54824}}] - \dataplot[plotstyle=curve,showpoints,dotstyle=triangle]{\mydata} - \psline{<->}(0,2)(0,0)(22,0) -\endpspicture -\end{LTXexample} - -\Lcs{listplot} is yet another way of plotting lists of data. This time, <list> -should be a list of data (coordinate pairs), delimited only by white space. -\Larg{list} is first expanded by \TeX{} and then by PostScript. This means that -\Larg{list} might be a PostScript program that leaves on the stack a list of data, -but you can also include data that has been retrieved with \Lcs{readdata} and -\Lcs{dataplot}. However, when using the \Lkeyval{line}, \Lkeyval{polygon} or \Lkeyval{dots} plotstyles -with \LKeyset{showpoints=false}, \LKeyset{linearc=0pt} and no arrows, \Lcs{dataplot} is much -less likely than \Lcs{listplot} to exceed PostScript's memory or stack limits. -In the preceding example, these restrictions were not satisfied, and so the -example is equivalent to when \Lcs{listplot} is used: -\begin{lstlisting}[style=syntax] - ... -\listplot[plotstyle=curve,showpoints=true,dotstyle=triangle]{\mydata} - ... -\end{lstlisting} - -\section{Plotting mathematical functions} - - -\begin{BDef} -\Lcs{psplot}\OptArgs\Largb{$x_!\min@$}\Largb{$x_!\max@$}\Largb{function}\\ -\Lcs{parametricplot}\OptArgs\Largb{$t_!\min@$}\Largb{$t_!\max@$}\Largb{x(t) y(t)} -\end{BDef} - - \Lcs{psplot} can be used to plot a function $f(x)$, if you know a little -PostScript. \Larg{function} should be the PostScript or algebraic code for calculating $f(x)$. -Note that you must use $x$ as the dependent variable. -\begin{lstlisting} - \psplot[plotpoints=200]{0}{720}{x sin} -\end{lstlisting} -plots $\sin(x)$ from 0 to 720 degrees, by calculating $\sin(x)$ roughly every -3.6 degrees and then connecting the points with \Lcs{psline}. Here are plots of -$\sin(x)\cos((x/2)^2)$ and $\sin^2(x)$: -\begin{LTXexample}[pos=t] -\pspicture(0,-1)(4,1) -\psset{xunit=1.2pt} -\psplot[linecolor=gray,linewidth=1.5pt,plotstyle=curve]{0}{90}{x sin dup mul} -\psplot[plotpoints=100]{0}{90}{x sin x 2 div 2 exp cos mul} -\psline{<->}(0,-1)(0,1) \psline{->}(100,0) -\endpspicture -\end{LTXexample} - -\Lcs{parametricplot} is for a parametric plot of $(x(t),y(t))$. \Larg{function} is the PostScript -code or algebraic expression for calculating the pair $x(t)$ $y(t)$. - -For example, -\begin{LTXexample}[wide,width=4cm] -\pspicture(3,3) -\parametricplot[plotstyle=dots,plotpoints=13]% - {-6}{6}{1.2 t exp 1.2 t neg exp} -\endpspicture -\end{LTXexample} -plots 13 points from the hyperbola $xy=1$, starting with $(1.2^{-6},1.2^6)$ -and ending with $(1.2^6,1.2^{-6})$. - -Here is a parametric plot of $(\sin(t),\sin(2t))$: -\begin{LTXexample}[wide,width=4cm] -\pspicture(-2,-1)(2,1) - \psset{xunit=1.7cm} - \parametricplot[linewidth=1.2pt,plotstyle=ccurve]% - {0}{360}{t sin t 2 mul sin} - \psline{<->}(0,-1.2)(0,1.2) - \psline{<->}(-1.2,0)(1.2,0) -\endpspicture -\end{LTXexample} - - -The number of points that the \Lcs{psplot} and \Lcs{parametricplot} commands -calculate is set by the - \LKeyset{plotpoints=<value>} -parameter. Using "curve" or its variants instead of "line" and increasing the -value of \Lkeyword{plotpoints} are two ways to get a smoother curve. Both ways -increase the imaging time. Which is better depends on the complexity of the -computation. (Note that all PostScript lines are ultimately rendered as a -series (perhaps short) line segments.) Mathematica generally uses "lineto" to -connect the points in its plots. The default minimum number of plot points for -Mathematica is 25, but unlike \Lcs{psplot} and \Lcs{parametricplot}, Mathematica -increases the sampling frequency on sections of the curve with greater -fluctuation. - - -\part{New commands} -%-------------------------------------------------------------------------------------- - -\section[Extended syntax]{Extended syntax for \nxLcs{psplot}, \nxLcs{psparametricplot}, and \nxLcs{psaxes}} -There is now a new optional argument for \Lcs{psplot} and \Lcs{psparametricplot} to pass -additional \PS commands into the code. This makes the use of \Lcs{pstVerb} in -most cases superfluous. - -\begin{BDef} -\Lcs{psplot}\OptArgs\Largb{x0}\Largb{x1}\OptArg{PS commands}\Largb{function}\\ -\Lcs{psparametricplot}\OptArgs\Largb{t0}\Largb{t1}\OptArg{PS commands}\Largb{x(t) y(t)}\\ -\Lcs{psaxes}\OptArgs\OptArg*{\Largb{arrows}}\coord0\coord1\coord2\OptArg{Xlabel,Xangle}\OptArg{Ylabel,Yangle} -\end{BDef} - -The macro \Lcs{psaxes} has now four optional arguments, one for the setting, one for -the arrows, one for the x-label and one for the y-label. If you -want only a y-label, then leave the x one empty. A missing y-label -is possible. The following examples show how it can be used. - -\begin{lstlisting} -\begin{pspicture}(-1,-0.5)(12,5) - \psaxes[Dx=100,dx=1,Dy=0.00075,dy=1]{->}(0,0)(12,5)?\ON?[$x$,-90][$y$,180]?\OFF? - \psplot[linecolor=red, plotstyle=curve,linewidth=2pt,plotpoints=200]{0}{11}% - ?\ON?[ /const1 3.3 10 8 neg exp mul def ?\OFF? - ?\ON?/s 10 def ?\OFF? - ?\ON?/const2 6.04 10 6 neg exp mul def ] % optional PS commands?\OFF? - { const1 x 100 mul dup mul mul Euler const2 neg x 100 mul dup mul mul exp mul 2000 mul} -\end{pspicture} -\end{lstlisting} - -\begin{pspicture}(-1,-0.5)(12,5) - \psaxes[Dx=100,dx=1,Dy=0.00075,dy=1]{->}(0,0)(12,5)[$x$,-90][$y$,180] - \psplot[linecolor=red, plotstyle=curve,linewidth=2pt,plotpoints=200]{0}{11}% - [ /const1 3.3 10 8 neg exp mul def - /s 10 def - /const2 6.04 10 6 neg exp mul def ] % optional PS commands - { const1 x 100 mul dup mul mul Euler const2 neg x 100 mul dup mul mul exp mul 2000 mul} -\end{pspicture} - -%-------------------------------------------------------------------------------------- -\clearpage -\section{New Macro \nxLcs{psBoxplot}} -%-------------------------------------------------------------------------------------- - -A \Index{box-and-whisker plot} (often called simply a \Index{box plot}) is a histogram-like method of -displaying data, invented by John.\,Tukey. The box-and-whisker plot is a box with -ends at the quartiles $Q_1$ and $Q_3$ and has a statistical median M as a horizontal line in -the box. The "`whiskers"* are lines to the farthest points that are not outliers (i.e., -that are within 3/2 times the interquartile range of $Q_1$ and $Q_3$). Then, for every point -more than 3/2 times the interquartile range from the end of a box, is a dot. - -The only special optional arguments, beside all other which are valid for drawing lines -and filling areas, are \Lkeyword{IQLfactor}, \Lkeyword{barwidth}, and -\Lkeyword{arrowlength}, where the latter is a factor -which is multiplied with the barwidth for the line ends. -The \Lkeyword{IQLfactor}, preset to 1.5, defines the area for the outliners. -The outliners are plotted as a dot and take the settings for such a dot into account, -eg. \Lkeyword{dotstyle}, \Lkeyword{dotsize}, \Lkeyword{dotscale}, and \Lkeyword{fillcolor}. The default -is the black dot. - -%\begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(-1,-1)(12,14) -\psset{yunit=0.1,fillstyle=solid} -\savedata{\data}[100 90 120 115 120 110 100 110 100 90 100 100 120 120 120] -\rput(1,0){\psBoxplot[fillcolor=red!30]{\data}} -\rput(1,105){2001} -\savedata{\data}[90 120 115 116 115 110 90 130 120 120 120 85 100 130 130] -\rput(3,0){\psBoxplot[arrowlength=0.5,fillcolor=blue!30]{\data}} -\rput(3,107){2008} -\savedata{\data}[35 70 90 60 100 60 60 80 80 60 50 55 90 70 70] -\rput(5,0){\psBoxplot[barwidth=40pt,arrowlength=1.2,fillcolor=red!30]{\data}} -\rput(5,65){2001} -\savedata{\data}[60 65 60 75 75 60 50 90 95 60 65 45 45 60 90] -\rput(7,0){\psBoxplot[barwidth=40pt,fillcolor=blue!30]{\data}} -\rput(7,65){2008} -\savedata{\data}[20 20 25 20 15 20 20 25 30 20 20 20 30 30 30] -\rput(9,0){\psBoxplot[fillcolor=red!30]{\data}} -\rput(9,22){2001} -\savedata{\data}[20 30 20 35 35 20 20 60 50 20 35 15 30 20 40] -\rput(11,0){\psBoxplot[fillcolor=blue!30,linestyle=dashed]{\data}} -\rput(11,25){2008} -\psaxes[dy=1cm,Dy=10](0,0)(12,130) -\end{pspicture} -%\end{LTXexample} - -\begin{lstlisting} -\begin{pspicture}(-1,-1)(12,14) -\psset{yunit=0.1,fillstyle=solid} -\savedata{\data}[100 90 120 115 120 110 100 110 100 90 100 100 120 120 120] -\rput(1,0){?\ON?\psBoxplot?\OFF?[fillcolor=red!30]{\data}} -\rput(1,105){2001} -\savedata{\data}[90 120 115 116 115 110 90 130 120 120 120 85 100 130 130] -\rput(3,0){?\ON?\psBoxplot?\OFF?[arrowlength=0.5,fillcolor=blue!30]{\data}} -\rput(3,107){2008} -\savedata{\data}[35 70 90 60 100 60 60 80 80 60 50 55 90 70 70] -\rput(5,0){?\ON?\psBoxplot?\OFF?[barwidth=40pt,arrowlength=1.2,fillcolor=red!30]{\data}} -\rput(5,65){2001} -\savedata{\data}[60 65 60 75 75 60 50 90 95 60 65 45 45 60 90] -\rput(7,0){?\ON?\psBoxplot?\OFF?[barwidth=40pt,fillcolor=blue!30]{\data}} -\rput(7,65){2008} -\savedata{\data}[20 20 25 20 15 20 20 25 30 20 20 20 30 30 30] -\rput(9,0){?\ON?\psBoxplot?\OFF?[fillcolor=red!30]{\data}} -\rput(9,22){2001} -\savedata{\data}[20 30 20 35 35 20 20 60 50 20 35 15 30 20 40] -\rput(11,0){?\ON?\psBoxplot?\OFF?[fillcolor=blue!30,linestyle=dashed]{\data}} -\rput(11,25){2008} -\psaxes[dy=1cm,Dy=10](0,0)(12,130) -\end{pspicture} -\end{lstlisting} - - - - - -The next example uses an external file for the data, which must first be read by the -macro \Lcs{readdata}. The next one creates a horizontal boxplot by rotating -the output with $-90$ degrees. - -\begin{filecontents}{boxplot.data} -2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 -\end{filecontents} - - -%\begin{LTXexample}[pos=t] -\readdata{\data}{boxplot.data} -\begin{pspicture}(-1,-1)(2,10) -\psset{yunit=0.25,fillstyle=solid} -\savedata{\data}[2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32] -\rput(1,0){\psBoxplot[fillcolor=blue!30]{\data}} -\psaxes[dy=1cm,Dy=4](0,0)(2,35) -\end{pspicture} -% -\begin{pspicture}(-1,-1)(11,2) -\psset{xunit=0.25,fillstyle=solid} -\savedata{\data}[2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32] -\rput{-90}(0,1){\psBoxplot[yunit=0.25,fillcolor=blue!30]{\data}} -\psaxes[dx=1cm,Dx=4](0,0)(35,2) -\end{pspicture} -%\end{LTXexample} - -\begin{lstlisting} -\readdata{\data}{boxplot.data} -\begin{pspicture}(-1,-1)(2,10) -\psset{yunit=0.25,fillstyle=solid} -\savedata{\data}[2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32] -\rput(1,0){?\ON?\psBoxplot?\OFF?[fillcolor=blue!30]{\data}} -\psaxes[dy=1cm,Dy=4](0,0)(2,35) -\end{pspicture} -% -\begin{pspicture}(-1,-1)(11,2) -\psset{xunit=0.25,fillstyle=solid} -\savedata{\data}[2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32] -\rput{-90}(0,1){\psBoxplot[yunit=0.25,fillcolor=blue!30]{\data}} -\psaxes[dx=1cm,Dx=4](0,0)(35,2) -\end{pspicture} -\end{lstlisting} - - -It is also possible to read a data column from an external file: - - -\begin{filecontents*}{Data.dat} -98, 32 -20, 11 -79, 26 -14, 9 -23, 22 -21, 10 -58, 25 -13, 8 -19, 5 -53, 29 -41, 37 -11, 2 -83, 25 -71, 51 -10, 7 -89, 17 -10, 6 - , 41 - , 75 -\end{filecontents*} - -\begin{pspicture}(-1,-1)(5,6) -\psaxes[axesstyle=frame,dy=1cm,Dy=20,ticksize=4pt 0](0,0)(4,5) -\psreadDataColumn{1}{,}{\data}{Data.dat} -\rput(1,0){\psBoxplot[fillcolor=red!40,yunit=0.05]{\data}} -\psreadDataColumn{2}{,}{\data}{Data.dat} -\rput(3,0){\psBoxplot[fillcolor=blue!40,yunit=0.05]{\data}} -\end{pspicture} - -\begin{lstlisting} -\begin{filecontents*}{Data.dat} -98, 32 -20, 11 -79, 26 -14, 9 -23, 22 -21, 10 -58, 25 -13, 8 -19, 5 -53, 29 -41, 37 -11, 2 -83, 25 -71, 51 -10, 7 -89, 17 -10, 6 - , 41 - , 75 -\end{filecontents*} - -\begin{pspicture}(-1,-1)(5,6) -\psaxes[axesstyle=frame,dy=1cm,Dy=20,ticksize=4pt 0](0,0)(4,5) -\psreadDataColumn{1}{,}{\data}{Data.dat} -\rput(1,0){\psBoxplot[fillcolor=red!40,yunit=0.05]{\data}} -\psreadDataColumn{2}{,}{\data}{Data.dat} -\rput(3,0){\psBoxplot[fillcolor=blue!40,yunit=0.05]{\data}} -\end{pspicture} -\end{lstlisting} - - - - -\clearpage -%-------------------------------------------------------------------------------------- -\section{The \nxLenv{psgraph} environment} -%-------------------------------------------------------------------------------------- -This new environment \Lenv{psgraph} does the scaling, it expects as parameter the values (without units!) for the -coordinate system and the values of the physical width and height (with units!). The syntax is: - -\begin{BDef} -\Lcs{psgraph}\OptArgs\Largb{<arrows>}\%\\ -\qquad\Largr{xOrig,yOrig}\Largr{xMin,yMin}\Largr{xMax,yMax}\Largb{xLength}\Largb{yLength}\\ -\ldots\\ -\Lcs{endpsgraph}\\[10pt] -\LBEG{psgraph}\OptArgs\Largb{<arrows>}\%\\ -\qquad\Largr{xOrig,yOrig}\Largr{xMin,yMin}\Largr{xMax,yMax}\Largb{xLength}\Largb{yLength}\\ -\ldots\\ -\LEND{psgraph} -\end{BDef} - -where the options are valid \textbf{only} for the the \Lcs{psaxes} macro. The first -two arguments have the usual \verb+PSTricks+ behaviour. -\begin{compactitem} - \item if \verb+(xOrig,yOrig)+ is missing, it is substituted to \verb+(xMin,xMax)+; - \item if \verb+(xOrig,yOrig)+ \textbf{and} \verb+(xMin,yMin)+ are missing, they are both - substituted to \verb+(0,0)+. -\end{compactitem} - -The y-length maybe given as !; then the macro uses the same unit -as for the x-axis. - -\psset{unit=1cm} -\begin{center} -\readdata{\data}{demo1.data} -\pstScalePoints(1,1e-08){}{}% (x,y){additional x operator}{y op} -\psset{llx=-1cm,lly=-1cm} -\begin{psgraph}[axesstyle=frame,xticksize=0 7.59,yticksize=0 25,% - subticks=0,ylabelFactor=\cdot 10^8, - Dx=5,dy=1\psyunit,Dy=1](0,0)(25,7.5){10cm}{6cm} % parameters - \listplot[linecolor=red,linewidth=2pt,showpoints=true]{\data} -\end{psgraph} -\end{center} - -\begin{lstlisting} -\readdata{\data}{demo1.data} -\pstScalePoints(1,1e-08){}{}% (x,y){additional x operator}{y op} -\psset{llx=-1cm,lly=-1cm} -?\ON?\begin{psgraph}?\OFF?[axesstyle=frame,xticksize=0 7.59,yticksize=0 25,% - subticks=0,ylabelFactor=\cdot 10^8, - Dx=5,dy=1\psyunit,Dy=1](0,0)(25,7.5){10cm}{6cm} % parameters - \listplot[linecolor=red,linewidth=2pt,showpoints=true]{\data} -?\ON?\end{psgraph}?\OFF? -\end{lstlisting} - -%----------------------------------------------------------------------------- - -In the following example, the y unit gets the same value as the one for the x-axis. -\begin{center} -\psset{llx=-1cm,lly=-0.5cm,ury=0.5cm} -\begin{psgraph}(0,0)(5,3){6cm}{!} % x-y-axis with same unit - \psplot[linecolor=red,linewidth=1pt]{0}{5}{x dup mul 10 div} -\end{psgraph} -\end{center} - -\begin{lstlisting} -\psset{llx=-1cm,lly=-0.5cm,ury=0.5cm} -\begin{psgraph}(0,0)(5,3){6cm}?\ON?{!}?\OFF? % x-y-axis with same unit - \psplot[linecolor=red,linewidth=1pt]{0}{5}{x dup mul 10 div} -\end{psgraph} -\end{lstlisting} - -%----------------------------------------------------------------------------- - -\begin{center} -\readdata{\data}{demo1.data} -\psset{xAxisLabel=x-Axis,yAxisLabel=y-Axis,llx=-.5cm,lly=-1cm,lly=-1cm,ury=0.5cm, - xAxisLabelPos={c,-1},yAxisLabelPos={-7,c}} -\pstScalePoints(1,0.00000001){}{} -\begin{psgraph}[axesstyle=frame,xticksize=0 7.5,yticksize=0 25,subticksize=1, - ylabelFactor=\cdot 10^8,Dx=5,Dy=1,xsubticks=2](0,0)(25,7.5){5.5cm}{5cm} - \listplot[linecolor=red, linewidth=2pt, showpoints=true]{\data} -\end{psgraph} -\end{center} - -\begin{lstlisting} -\readdata{\data}{demo1.data} -\psset{?\ON?xAxisLabel?\OFF?=x-Axis,?\ON?yAxisLabel?\OFF?=y-Axis,llx=-.5cm,lly=-1cm,ury=0.5cm, - ?\ON?xAxisLabelPos?\OFF?={c,-1},?\ON?yAxisLabelPos?\OFF?={-7,c}} -\pstScalePoints(1,0.00000001){}{} -\begin{psgraph}[axesstyle=frame,xticksize=0 7.5,yticksize=0 25,subticksize=1, - ?\ON?ylabelFactor?\OFF?=\cdot 10^8,Dx=5,Dy=1,xsubticks=2](0,0)(25,7.5){5.5cm}{5cm} - \listplot[linecolor=red, linewidth=2pt, showpoints=true]{\data} -\end{psgraph} -\end{lstlisting} - -%----------------------------------------------------------------------------- - -\begin{LTXexample}[pos=t,preset=\centering] -\readdata{\data}{demo1.data} -\psset{llx=-0.5cm,lly=-1cm} -\pstScalePoints(1,0.000001){}{} -\psgraph[arrows=->,Dx=5,dy=200\psyunit,Dy=200,subticks=5,ticksize=-10pt 0, - tickwidth=0.5pt,subtickwidth=0.1pt](0,0)(25,750){5.5cm}{5cm} -\listplot[linecolor=red,linewidth=0.5pt,showpoints=true,dotscale=3, - plotstyle=LineToYAxis,dotstyle=o]{\data} -\endpsgraph -\end{LTXexample} - -%----------------------------------------------------------------------------- - -\begin{center} -\readdata{\data}{demo1.data} -\pstScalePoints(1,0.2){}{log} -\psset{lly=-0.75cm} -\psgraph[ylogBase=10,Dx=5,Dy=1,subticks=5](0,0)(25,2){12cm}{4cm} - \listplot[linecolor=red,linewidth=1pt,showpoints,dotstyle=x,dotscale=2]{\data} -\endpsgraph -\end{center} - - - - -\begin{lstlisting} -\readdata{\data}{demo1.data} -\pstScalePoints(1,0.2){}{log} -\psset{lly=-0.75cm} -\psgraph[?\ON?ylogBase?\OFF?=10,Dx=5,Dy=1,subticks=5](0,0)(25,2){12cm}{4cm} - \listplot[linecolor=red,linewidth=1pt,showpoints,dotstyle=x,dotscale=2]{\data} -\endpsgraph -\end{lstlisting} - -%----------------------------------------------------------------------------- - -\begin{LTXexample}[pos=t,preset=\centering] -\readdata{\data}{demo0.data} -\psset{lly=-0.75cm,ury=0.5cm} -\pstScalePoints(1,1){}{log} -\begin{psgraph}[arrows=->,Dx=0.5,ylogBase=10,Oy=-1,xsubticks=10,% - ysubticks=2](0,-3)(3,1){12cm}{4cm} - \psset{Oy=-2}% must be global - \listplot[linecolor=red,linewidth=1pt,showpoints=true, - plotstyle=LineToXAxis]{\data} - \listplot[plotstyle=values,rot=90]{\data} -\end{psgraph} -\end{LTXexample} - - -\begin{LTXexample}[pos=t,preset=\centering] -\psset{lly=-0.75cm,ury=0.5cm} -\readdata{\data}{demo0.data} -\pstScalePoints(1,1){}{log} -\psgraph[arrows=->,Dx=0.5,ylogBase=10,Oy=-1,subticks=4](0,-3)(3,1){6cm}{3cm} - \listplot[linecolor=red,linewidth=2pt,showpoints=true,plotstyle=LineToXAxis]{\data} -\endpsgraph -\end{LTXexample} - - - -%----------------------------------------------------------------------------- -\begin{center} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\pstScalePoints(1,1){1989 sub}{} -\psset{llx=-0.5cm,lly=-1cm, xAxisLabel=Year,yAxisLabel=Whatever,% - xAxisLabelPos={c,-0.4in},yAxisLabelPos={-0.4in,c}} -\psgraph[axesstyle=frame,Dx=2,Ox=1989,subticks=2](0,0)(12,6){4in}{2in}% - \listplot[linecolor=red,linewidth=2pt]{\data} - \listplot[linecolor=blue,linewidth=2pt]{\dataII} - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII} -\endpsgraph -\end{center} - -\begin{lstlisting} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\pstScalePoints(1,1){1989 sub}{} -\psset{llx=-0.5cm,lly=-1cm, ?\ON?xAxisLabel?\OFF?=Year,?\ON?yAxisLabel?\OFF?=Whatever,% - ?\ON?xAxisLabelPos?\OFF?={c,-0.4in},?\ON?yAxisLabelPos?\OFF?={-0.4in,c}} -\psgraph[axesstyle=frame,Dx=2,Ox=1989,subticks=2](0,0)(12,6){4in}{2in}% - \listplot[linecolor=red,linewidth=2pt]{\data} - \listplot[linecolor=blue,linewidth=2pt]{\dataII} - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII} -\endpsgraph -\end{lstlisting} -%----------------------------------------------------------------------------- - -%\begin{LTXexample}[pos=t,preset=\centering] -\begin{center} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-0.5cm,lly=-0.75cm,plotstyle=LineToXAxis} -\pstScalePoints(1,1){1989 sub}{2 sub} -\begin{psgraph}[axesstyle=frame,Dx=2,Ox=1989,Oy=2,subticks=2](0,0)(12,4){6in}{3in} - \listplot[linecolor=red,linewidth=12pt]{\data} - \listplot[linecolor=blue,linewidth=12pt]{\dataII} - \listplot[linecolor=cyan,linewidth=12pt,yunit=0.5]{\dataII} -\end{psgraph} -\end{center} -%\end{LTXexample} - -\begin{lstlisting} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-0.5cm,lly=-0.75cm,plotstyle=LineToXAxis} -\pstScalePoints(1,1){1989 sub}{2 sub} -\begin{psgraph}[axesstyle=frame,Dx=2,Ox=1989,Oy=2,subticks=2](0,0)(12,4){6in}{3in} - \listplot[linecolor=red,linewidth=12pt]{\data} - \listplot[linecolor=blue,linewidth=12pt]{\dataII} - \listplot[linecolor=cyan,linewidth=12pt,yunit=0.5]{\dataII} -\end{psgraph} -\end{lstlisting} - -%\newpage -An example with ticks on every side of the frame and filled areas: - -\begin{center} -\def\data{0 0 1 4 1.5 1.75 2.25 4 2.75 7 3 9} -\psset{lly=-0.5cm} -\begin{psgraph}[axesstyle=none,ticks=none](0,0)(3.0,9.0){12cm}{5cm} - \pscustom[fillstyle=solid,fillcolor=red!40,linestyle=none]{% - \listplot{\data} - \psline(3,9)(3,0)} - \pscustom[fillstyle=solid,fillcolor=blue!40,linestyle=none]{% - \listplot{\data} - \psline(3,9)(0,9)} - \listplot[linewidth=2pt]{\data} - \psaxes[axesstyle=frame,ticksize=0 5pt,xsubticks=20,ysubticks=4, - tickstyle=inner,dy=2,Dy=2,tickwidth=1.5pt,subtickcolor=black](0,0)(3,9) - \rput*(2.5,3){level 1}\rput*(1,7){level 2} -\end{psgraph} -\end{center} - -\begin{lstlisting} -\def\data{0 0 1 4 1.5 1.75 2.25 4 2.75 7 3 9} -\psset{lly=-0.5cm} -\begin{psgraph}[axesstyle=none,ticks=none](0,0)(3.0,9.0){12cm}{5cm} - \pscustom[fillstyle=solid,fillcolor=red!40,linestyle=none]{% - \listplot{\data} - \psline(3,9)(3,0)} - \pscustom[fillstyle=solid,fillcolor=blue!40,linestyle=none]{% - \listplot{\data} - \psline(3,9)(0,9)} - \listplot[linewidth=2pt]{\data} - \psaxes[axesstyle=frame,ticksize=0 5pt,xsubticks=20,ysubticks=4, - tickstyle=inner,dy=2,Dy=2,tickwidth=1.5pt,subtickcolor=black](0,0)(3,9) - \rput*(2.5,3){level 1}\rput*(1,7){level 2} -\end{psgraph} -\end{lstlisting} - -\clearpage -\subsection{Coordinates of the \nxLenv{psgraph} area} -The coordinates of the calculated area are saved in the four macros \Lcs{psgraphLLx}, \Lcs{psgraphLLy}, \Lcs{psgraphURx}, and \Lcs{psgraphURy}, -which is LowerLeft, UpperLeft, LowerRight, and UpperRight. The values have no dimension but are saved in the current unit. - -\begin{LTXexample}[width=4cm] -\psset{llx=-5mm,lly=-1cm} -\begin{psgraph}[axesstyle=none,ticks=none](0,0)(3.0,9.0){4cm}{5cm} - \psdot[dotscale=2](\psgraphLLx,\psgraphLLy) - \psdot[dotscale=2](\psgraphLLx,\psgraphURy) - \psdot[dotscale=2](\psgraphURx,\psgraphLLy) - \psdot[dotscale=2](\psgraphURx,\psgraphURy) -\end{psgraph} -\end{LTXexample} - -%------------------------------------------------------------------------------------------- -\subsection{The new options for \nxLenv{psgraph}}\label{psgraphoptions} -%------------------------------------------------------------------------------------------- - -\begin{center} -\begin{tabular}{@{} l>{\tt}ll @{}} -\textrm{name} & \textrm{default} & meaning\\\hline -\Lkeyword{xAxisLabel} & x & label for the x-axis\\ -\Lkeyword{yAxisLabel} & y & label for the y-axis\\ -\Lkeyword{xAxisLabelPos} & \{\} & where to put the x-label\\ -\Lkeyword{yAxisLabelPos} & \{\} & where to put the y-label\\ -\Lkeyword{xlabelsep} & 5pt & labelsep for the x-axis labels\\ -\Lkeyword{ylabelsep} & 5pt & labelsep for the x-axis labels\\ -\Lkeyword{llx} & 0pt & trim for the lower left x\\ -\Lkeyword{lly} & 0pt & trim for the lower left y\\ -\Lkeyword{urx} & 0pt & trim for the upper right x\\ -\Lkeyword{ury} & 0pt & trim for the upper right y -\end{tabular} -\end{center} - -There is one restriction in using the trim parameters, they must -been set \textbf{before} \Lcs{psgraph} is called. They are -redundant when used as parameters of \Lcs{psgraph} itself. The -\Lkeyword{xAxisLabelPos} and \Lkeyword{yAxisLabelPos} options can use the letter \Lnotation{c} for -centering an $x$-axis or $y$-axis label. The \Lnotation{c} is a replacement for -the $x$ or $y$ value. When using values with units, the position is -always measured from the origin of the coordinate system, which -can be outside of the visible \Lenv{pspicture} environment. - -\medskip -\begin{center} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-1cm,lly=-1.25cm,urx=0.5cm,ury=0.1in,xAxisLabel=Year,% - yAxisLabel=Whatever,xAxisLabelPos={c,-0.4in},% - yAxisLabelPos={-0.4in,c}} -\pstScalePoints(1,1){1989 sub}{} -\psframebox[linestyle=dashed,boxsep=false]{% -\begin{psgraph}[axesstyle=frame,Ox=1989,subticks=2](0,0)(12,6){0.8\linewidth}{2.5in}% - \listplot[linecolor=red,linewidth=2pt]{\data}% - \listplot[linecolor=blue,linewidth=2pt]{\dataII}% - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII}% -\end{psgraph}% -} -\end{center} - - -\begin{lstlisting} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-1cm,lly=-1.25cm,urx=0.5cm,ury=0.1in,xAxisLabel=Year,% - yAxisLabel=Whatever,xAxisLabelPos={c,-0.4in},% - yAxisLabelPos={-0.4in,c}} -\pstScalePoints(1,1){1989 sub}{} -\psframebox[linestyle=dashed,boxsep=false]{% -\begin{psgraph}[axesstyle=frame,Ox=1989,subticks=2](0,0)(12,6){0.8\linewidth}{2.5in}% - \listplot[linecolor=red,linewidth=2pt]{\data}% - \listplot[linecolor=blue,linewidth=2pt]{\dataII}% - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII}% -\end{psgraph}% -} -\end{lstlisting} - - -\begin{LTXexample}[width=7cm] -\psset{xAxisLabel=,yAxisLabel=, - llx=-5mm,urx=1cm,lly=-5mm, - mathLabel=false, - xLabels={A,b,C,d,E,f,}, - xlabelsep=-5pt} -\begin{psgraph}{->}(5,5){6cm}{6cm} -\end{psgraph} -\end{LTXexample} - - -\subsection{The new macro \Lcs{pslegend} for \nxLenv{psgraph}}\label{pslegend} - -\begin{BDef} -\Lcs{pslegend}\OptArg{Reference}\OptArg*{\Largr{xOffset,yOffset}}\Largb{Text} -\end{BDef} - -The reference can be one of the \Lkeyval{lb}, \Lkeyval{lt}, \Lkeyval{rb}, or \Lkeyval{rt}, where the -latter is the default. The values for \texttt{xOffset} and \texttt{yOffset} must be multiples of the unit pt. -Without an offset the value of \Lcs{pslabelsep} are used. -The legend has to be defined \emph{before} the environment \Lenv{psgraph}. - -\medskip -\begin{center} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-1cm,lly=-1.25cm,urx=0.5cm,ury=0.1in,xAxisLabel=Year,% - yAxisLabel=Whatever,xAxisLabelPos={c,-0.4in},% - yAxisLabelPos={-0.4in,c}} -\pstScalePoints(1,1){1989 sub}{} -\pslegend[lt]{\red\rule[1ex]{2em}{1pt} & Data I\\ - \blue\rule[1ex]{2em}{1pt} & Data II\\ - \cyan\rule[1ex]{2em}{1pt} & Data III} -\begin{psgraph}[axesstyle=frame,Ox=1989,subticks=2](0,0)(12,6){0.8\linewidth}{2.5in}% - \listplot[linecolor=red,linewidth=2pt]{\data}% - \listplot[linecolor=blue,linewidth=2pt]{\dataII}% - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII}% -\end{psgraph}% -\end{center} - - -\begin{lstlisting} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-1cm,lly=-1.25cm,urx=0.5cm,ury=0.1in,xAxisLabel=Year,% - yAxisLabel=Whatever,xAxisLabelPos={c,-0.4in},% - yAxisLabelPos={-0.4in,c}} -\pstScalePoints(1,1){1989 sub}{} -\pslegend[lt]{\red\rule[1ex]{2em}{1pt} & Data I\\ - \blue\rule[1ex]{2em}{1pt} & Data II\\ - \cyan\rule[1ex]{2em}{1pt} & Data III} -\begin{psgraph}[axesstyle=frame,Ox=1989,subticks=2](0,0)(12,6){0.8\linewidth}{2.5in}% - \listplot[linecolor=red,linewidth=2pt]{\data}% - \listplot[linecolor=blue,linewidth=2pt]{\dataII}% - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII}% -\end{psgraph}% -\end{lstlisting} - -\begin{compactitem} -\item \Lcs{pslegend} uses the commands \Lcs{tabular} and \Lcs{endtabular}, which are only available - when running \LaTeX. With \TeX\ you have to redefine the macro \Lcs{pslegend@ii}: -\begin{lstlisting} -\def\pslegend@ii[#1](#2){\rput[#1](!#2){\psframebox[style=legendstyle]{% - \footnotesize\tabcolsep=2pt% - \tabular[t]{@{}ll@{}}\pslegend@text\endtabular}}\gdef\pslegend@text{}} -\end{lstlisting} -\item The fontsize can be changed locally for each cell or globally, when also redefining the - macro \Lcs{pslegend@ii}. -\item If you want to use more than two columns for the table or a shadow box, then redefine \Lcs{pslegend@ii}. -\end{compactitem} - -The macro \Lcs{psframebox} uses the style \Lkeyval{legendstyle} which is preset to \Lkeyset{fillstyle=solid}, -\Lkeyset{fillcolor=white}, and \nxLkeyword{linewidth=0.5pt} and can be redefined by - -\begin{lstlisting} -\newpsstyle{legendstyle}{fillstyle=solid,fillcolor=red!20,shadow=true} -\end{lstlisting} - -\medskip -\begin{center} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-1cm,lly=-1.25cm,urx=0.5cm,ury=0.1in,xAxisLabel=Year,% - yAxisLabel=Whatever,xAxisLabelPos={c,-0.4in},% - yAxisLabelPos={-0.4in,c}} -\newpsstyle{legendstyle}{fillstyle=solid,fillcolor=red!20,shadow=true} -\pstScalePoints(1,1){1989 sub}{} -\pslegend[lt](10,10){\red\rule[1ex]{2em}{1pt} & Data I\\ - \blue\rule[1ex]{2em}{1pt} & Data II\\ - \cyan\rule[1ex]{2em}{1pt} & Data III} -\begin{psgraph}[axesstyle=frame,Ox=1989,subticks=2](0,0)(12,6){0.8\linewidth}{2.5in}% - \listplot[linecolor=red,linewidth=2pt]{\data}% - \listplot[linecolor=blue,linewidth=2pt]{\dataII}% - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII}% -\end{psgraph}% -\end{center} - - -\begin{lstlisting} -\readdata{\data}{demo2.data}% -\readdata{\dataII}{demo3.data}% -\psset{llx=-1cm,lly=-1.25cm,urx=0.5cm,ury=0.1in,xAxisLabel=Year,% - yAxisLabel=Whatever,xAxisLabelPos={c,-0.4in},% - yAxisLabelPos={-0.4in,c}} -\pstScalePoints(1,1){1989 sub}{} -\newpsstyle{legendstyle}{fillstyle=solid,fillcolor=red!20,shadow=true} -\pslegend[lt](10,10){\red\rule[1ex]{2em}{1pt} & Data I\\ - \blue\rule[1ex]{2em}{1pt} & Data II\\ - \cyan\rule[1ex]{2em}{1pt} & Data III} -\begin{psgraph}[axesstyle=frame,Ox=1989,subticks=2](0,0)(12,6){0.8\linewidth}{2.5in}% - \listplot[linecolor=red,linewidth=2pt]{\data}% - \listplot[linecolor=blue,linewidth=2pt]{\dataII}% - \listplot[linecolor=cyan,linewidth=2pt,yunit=0.5]{\dataII}% -\end{psgraph}% -\end{lstlisting} - - - -\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\nxLcs{psxTick} and \nxLcs{psyTick}} -Single ticks with labels on an axis can be set with the two -macros \Lcs{psxTick} and \Lcs{psyTick}. The label is set with the macro \Lcs{pshlabel}, -the setting of \Lkeyword{mathLabel} is taken into account. - -\begin{BDef} -\Lcs{psxTick}\OptArgs\OptArg*{\Largb{rotation}}\Largr{x value}\Largb{label}\\ -\Lcs{psyTick}\OptArgs\OptArg*{\Largb{rotation}}\Largr{y value}\Largb{label} -\end{BDef} - - -\begin{LTXexample}[width=.4\linewidth] -\begin{psgraph}[Dx=2,Dy=2](0,0)(-4,-2.2)(4,2.2){.5\textwidth}{!} - \psxTick[linecolor=red,labelsep=-20pt]{45}(1.25){x_0} - \psyTick[linecolor=blue](1){y_0} -\end{psgraph} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\section{\nxLcs{pstScalePoints}} -%-------------------------------------------------------------------------------------- -The syntax is -\begin{BDef} -\Lcs{pstScalePoints}\Largr{xScale,xScale}\Largb{xPS}\Largb{yPS} -\end{BDef} - -\verb+xScale,yScale+ are decimal values used as scaling factors, -the \verb+xPS+ and \verb+yPS+ are additional PostScript code -applied to the x- and y-values of the data records. This macro is -only valid for the \Lcs{listplot} macro! - -\begin{LTXexample}[width=7cm] -\def\data{% - 0 0 1 3 2 4 3 1 - 4 2 5 3 6 6 } -\begin{pspicture}(-0.5,-1)(6,6) - \psaxes{->}(0,0)(6,6) - \listplot[showpoints=true,% - linecolor=red]{\data} - \pstScalePoints(1,0.5){}{3 add} - \listplot[showpoints=true,% - linecolor=blue]{\data} -\end{pspicture} -\end{LTXexample} - -\bigskip -\Lcs{pstScalePoints}\Largr{1,0.5}\Largb{}\Largb{3 add} means that \textbf{first} the value $3$ is added -to the $y$ values and \textbf{second} this value is scaled with the factor $0.5$. -As seen for the blue line for $x=0$ we get $y(0)=(0+3)\cdot 0.5=1.5$. - -Changes with \Lcs{pstScalePoints} are always global to all following \Lcs{listplot} -macros. This is the reason why it is a good idea to reset the values at the end of the -\Lenv{pspicture} environment. - - - -%-------------------------------------------------------------------------------------- -\section{New or extended options} -%-------------------------------------------------------------------------------------- -\subsection{Introduction} -The option \Lkeyset{tickstyle=full}|\Lkeyval{top}|\Lkeyval{bottom} no longer works in the -usual way. Only the additional value \Lkeyval{inner} is valid for -\LPack{pst-plot}, because everything can be set by the -\Lkeyword{ticksize} option. When using the \Lkeyword{comma} or -\Lkeyword{trigLabels} option, the macros \Lcs{pshlabel} and -\Lcs{psvlabel} shouldn't be redefined, because the package does -it itself internally in these cases. However, if you need a -redefinition, then do it for \Lcs{pst@@@hlabel} and -\Lcs{pst@@@vlabel} with - -\begin{lstlisting}[style=syntax] -\makeatletter -\def\ps@@@hlabel#1{...} -\def\ps@@@vlabel#1{...} -\makeatother -\end{lstlisting} - - -{\rowcolors{1}{blue!10}{red!5} -\begin{longtable}{ llll } -\caption{All new parameters for \texttt{pst-plot}}\\\toprule -\rowcolor{white}\emph{name} & \emph{type} & \emph{default} & \emph{page}\\\midrule -\endfirsthead -\multicolumn{4}{l}{\ldots\ continued}\\\midrule -\rowcolor{white}\emph{name} & \emph{type} & \emph{default} & \emph{page}\\\midrule -\endhead -\midrule -\multicolumn{4}{r}{continued \ldots}\\ -\endfoot -\bottomrule -\endlastfoot -\Lkeyword{axesstyle} & \Lkeyval{none}|\Lkeyval{axes}|\Lkeyval{frame}|\Lkeyval{polar}|\Lkeyval{inner} - & \Lkeyval{axes} &\pageref{axesstyle}\\ -\Lkeyword{barwidth} & length & 0.25cm & \pageref{barwidth}\\ %ok -\Lkeyword{ChangeOrder} & boolean & \false & \pageref{changeorder}\\ -\Lkeyword{comma} & boolean & \false & \pageref{comma}\\ %ok -\Lkeyword{decimals} & integer & -1\footnote{A negative value plots all decimals} - & \pageref{values}\\ -\Lkeyword{decimalSeparator} & char & . & \pageref{comma}\\ %ok -\Lkeyword{fontscale} & real & 10 & \pageref{values}\\ -\Lkeyword{ignoreLines} & integer & 0 & \pageref{ignorelines}\\ -\Lkeyword{labelFontSize} & macro & \{\} & \pageref{labelfontsize}\\ -\Lkeyword{labels} & \Lkeyval{all}|\Lkeyval{x}|\Lkeyval{y}|\Lkeyval{none} - & \Lkeyval{all} & \pageref{labels}\\%ok -\Lkeyword{llx} & length & 0pt & \pageref{psgraphoptions}\\ -\Lkeyword{lly} & length & 0pt & \pageref{psgraphoptions}\\ -\Lkeyword{logLines} & \Lkeyval{none}|\Lkeyval{x}|\Lkeyval{y}|\Lkeyval{all} - & \Lkeyval{none} & \pageref{loglines}\\ -\Lkeyword{mathLabel} & boolean & \false & \pageref{labelfontsize}\\ -\Lkeyword{nEnd} & integer or empty & \{\} & \pageref{nxend}\\ -\Lkeyword{nStart} & integer & 0 & \pageref{nxstart}\\ -\Lkeyword{nStep} & integer & 1 & \pageref{nxstep}\\ -\Lkeyword{plotNo} & integer & 1 & \pageref{plotno}\\ -\Lkeyword{plotNoMax} & integer & 1 & \pageref{plotno}\\ -\Lkeyword{polarplot} & boolean & \false & \pageref{polarplots}\\ -\Lkeyword{PSfont} & PS font & \Lkeyval{Times-Romasn} & \pageref{values}\\ -\Lkeyword{subtickcolor} & color & \Lkeyval{darkgray} & \pageref{tickcolor}\\ -\Lkeyword{subticklinestyle} & \Lkeyval{solid}|\Lkeyval{dashed}|\Lkeyval{dotted}|\Lkeyval{none} - & \Lkeyval{solid}&\pageref{ticklinestyle}\\ -\Lkeyword{subticks} & integer & 0 & \pageref{subticks}\\ -\Lkeyword{subticksize} & real & 0.75 & \pageref{subticksize}\\ -\Lkeyword{subtickwidth} & length & 0.5\Lcs{pslinewidth} & \pageref{tickwidth}\\ -\Lkeyword{tickcolor} & color & black & \pageref{tickcolor}\\ -\Lkeyword{ticklinestyle} & \Lkeyval{solid}|\Lkeyval{dashed}|\Lkeyval{dotted}|\Lkeyval{none} - & \Lkeyval{solid}&\pageref{ticklinestyle}\\ -\Lkeyword{ticks} & \Lkeyval{all}|\Lkeyval{x}|\Lkeyval{y}|\Lkeyval{none} - & \Lkeyval{all} & \pageref{ticks}\\%ok -\Lkeyword{ticksize} & length \OptArg{length} & -4pt 4pt & \pageref{ticksize}\\ -\Lkeyword{tickstyle} & \Lkeyval{full}|\Lkeyval{top}|\Lkeyval{bottom}|\Lkeyval{inner} & full & \pageref{tickstyle}\\%ok -\Lkeyword{tickwidth} & length & 0.5\Lcs{pslinewidth} & \pageref{tickwidth}\\ -\Lkeyword{trigLabelBase} & integer & 0 & \pageref{triglabels}\\ -\Lkeyword{trigLabels} & boolean & \false & \pageref{triglabels}\\ -\Lkeyword{urx} & length & 0pt & \pageref{psgraphoptions}\\ -\Lkeyword{ury} & length & 0pt & \pageref{psgraphoptions}\\ -\Lkeyword{valuewidth} & integer & 10 & \pageref{values}\\ -\Lkeyword{xAxis} & boolean & \true & \pageref{xyAxes}\\%ok -\Lkeyword{xAxisLabel} & literal & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ -\Lkeyword{xAxisLabelPos} & (x,y) or empty & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ -\Lkeyword{xDecimals} & integer or empty & \{\} & \pageref{xydecimals}\\%ok -\Lkeyword{xEnd} & integer or empty & \{\} & \pageref{nxend}\\ -\Lkeyword{xLabels} & list & \{\Lcs{empty}\} & \pageref{xLabels}\\ -\Lkeyword{xlabelFactor} & anything & \{\Lcs{@empty}\} & \pageref{labelfactor}\\ -\Lkeyword{xlabelPos} & \Lkeyval{bottom},\Lkeyval{axis},\Lkeyval{top} - & \Lkeyval{bottom} & \pageref{labelpos}\\ -\Lkeyword{xlogBase} & integer or empty & \{\} & \pageref{xlogbase}\\ -\Lkeyword{xticklinestyle} & \Lkeyval{solid}|\Lkeyval{dashed}|\Lkeyval{dotted}|\Lkeyval{none} - & \Lkeyval{solid} & \pageref{ticklinestyle}\\ -\Lkeyword{xStart} & integer or empty & \{\} & \pageref{nxstart}\\ -\Lkeyword{xStep} & integer & 0 & \pageref{nxstep}\\ -\Lkeyword{xsubtickcolor} & color & \Lkeyval{darkgray} & \pageref{tickcolor}\\ -\Lkeyword{xsubticklinestyle}& \Lkeyval{solid}|\Lkeyval{dashed}|\Lkeyval{dotted}|\Lkeyval{none} - & \Lkeyval{solid} & \pageref{ticklinestyle}\\ -\Lkeyword{xsubticks} & integer & 0 & \pageref{subticks}\\ -\Lkeyword{xsubticksize} & real & 0.75 & \pageref{subticksize}\\ -\Lkeyword{xtickcolor} & color & \Lkeyval{black} & \pageref{tickcolor}\\ -\Lkeyword{xticksize} & length \OptArg{length} & -4pt 4pt & \pageref{ticksize}\\ -\Lkeyword{xtrigLabels} & boolean & \false & \pageref{xtriglabels}\\ -\Lkeyword{xyAxes} & boolean & \true & \pageref{xyAxes}\\%ok -\Lkeyword{xyDecimals} & integer or empty & \{\} & \pageref{xydecimals}\\%ok -\Lkeyword{xylogBase} & integer or empty & \{\} & \pageref{xylogbase}\\ -\Lkeyword{yAxis} & boolean & \true & \pageref{xyAxes}\\%ok -\Lkeyword{yAxisLabel} & literal & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ -\Lkeyword{yAxisLabelPos} & (x,y) or empty & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ -\Lkeyword{yDecimals} & integer or empty & \{\} & \pageref{xydecimals}\\%ok -\Lkeyword{yEnd} & integer or empty & \{\} & \pageref{ystartend}\\ -\Lkeyword{yLabels} & list & \{\Lcs{empty}\} & \pageref{xLabels}\\ -\Lkeyword{ylabelFactor} & literal & \{\Lcs{empty}\} & \pageref{labelfactor}\\ -\Lkeyword{ylabelPos} & \Lkeyval{left}|\Lkeyval{axis}|\Lkeyval{right} - & \Lkeyval{left} & \pageref{labelpos}\\ -\Lkeyword{ylogBase} & integer or empty & \{\} & \pageref{ylogbase}\\ -\Lkeyword{yMaxValue} & real & 1.e30 & \pageref{yMaxValue}\\ -\Lkeyword{yMinValue} & real & -1.e30 & \pageref{yMaxValue}\\ -\Lkeyword{yStart} & integer or empty & \{\} & \pageref{ystartend}\\ -\Lkeyword{yStep} & integer & 0 & \pageref{nxstep}\\ -\Lkeyword{ysubtickcolor} & <color> & darkgray & \pageref{tickcolor}\\ -\Lkeyword{ysubticklinestyle}& \Lkeyval{solid}|\Lkeyval{dashed}|\Lkeyval{dotted}|\Lkeyval{none} - & \Lkeyval{solid} &\pageref{ticklinestyle}\\ -\Lkeyword{ysubticks} & integer & 0 & \pageref{subticks}\\ -\Lkeyword{ysubticksize} & real & 0.75 & \pageref{subticksize}\\ -\Lkeyword{ytickcolor} & color> & \Lkeyval{black} & \pageref{tickcolor}\\ -\Lkeyword{yticklinestyle} & \Lkeyval{solid}|\Lkeyval{dashed}|\Lkeyval{dotted}|\Lkeyval{none} - & \Lkeyval{solid} &\pageref{ticklinestyle}\\ -\Lkeyword{yticksize} & length \OptArg{length} & -4pt 4pt & \pageref{ticksize}\\ -\Lkeyword{ytrigLabels} & boolean & \false & \pageref{ytriglabels}\\ -\end{longtable} -} - - -%------------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{xLabels}, \nxLkeyword{yLabels}, - \nxLkeyword{xLabelrot}, and \nxLkeyword{yLabelrot}}\label{xLabels} -%------------------------------------------------------------------------------------------- -\xLkeyword{xLabels}\xLkeyword{yLabels}\xLkeyword{xLabelRot}\xLkeyword{yLabelRot} -\begin{LTXexample}[pos=b] -\psset{xunit=0.75} -\begin{pspicture}(-2,-2)(14,4) -\psaxes[xLabels={,Kerry,Laois,London,Waterford,Clare,Offaly,Galway,Wexford,% - Dublin,Limerick,Tipperary,Cork,Kilkenny},xLabelsRot=45, - yLabels={,low,medium,high},mathLabel=false](14,4) -\end{pspicture} -\end{LTXexample} - -The values for \Lkeyword{xlabelsep} and \Lkeyword{ylabelsep} are taken into account. -%------------------------------------------------------------------------------------ -\subsection{Option \nxLkeyword{yMaxValue} and \nxLkeyword{yMinValue}}\label{yMaxValue} -%------------------------------------------------------------------------------------ -With the new optional arguments \Lkeyword{yMaxValue} and -\Lkeyword{yMinValue} one can control the behaviour of -discontinuous functions, like the tangent function. The -code does not check that \Lkeyword{yMaxValue} is bigger than -\Lkeyword{yMinValue} (if not, the function is {\em not} plotted at all). -All four possibilities can be used, i.e. one, both or none of the -two arguments \Lkeyword{yMaxValue} and \Lkeyword{yMinValue} can -be set. - - - -\begingroup -\begin{pspicture}(-6.5,-6)(6.5,7.5) -\multido{\rA=-4.71239+\psPiH}{7}{% - \psline[linecolor=black!20,linestyle=dashed](\rA,-5.5)(\rA,6.5)} -\psset{algebraic=true,plotpoints=10000,plotstyle=line} -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,trigLabels] - {->}(0,0)(-1.7,-5.5)(1.77,6.5)[$x$,0][$y$,-90] -\psclip{\psframe[linestyle=none](-4.55,-5.5)(5.55,6.5)} - \psplot[yMaxValue=6,yMinValue=-5,linewidth=2pt,linecolor=red]{-4.55}{4.55}{(x)/(sin(2*x))} -\endpsclip -\psplot[linestyle=dashed,linecolor=blue!30]{-4.8}{4.8}{x} -\psplot[linestyle=dashed,linecolor=blue!30]{-4.8}{4.8}{-x} -\rput(0,0.5){$\times$} -\end{pspicture} -\endgroup - -\begin{lstlisting} -\begin{pspicture}(-6.5,-6)(6.5,7.5) -\multido{\rA=-4.71239+\psPiH}{7}{% - \psline[linecolor=black!20,linestyle=dashed](\rA,-5.5)(\rA,6.5)} -\psset{algebraic=true,plotpoints=10000,plotstyle=line} -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,trigLabels] - {->}(0,0)(-1.7,-5.5)(1.77,6.5)[$x$,0][$y$,-90] -\psclip{\psframe[linestyle=none](-4.55,-5.5)(5.55,6.5)} - \psplot[?\ON?yMaxValue=6,yMinValue=-5?\OFF?,linewidth=2pt,linecolor=red]{-4.55}{4.55}{(x)/(sin(2*x))} -\endpsclip -\psplot[linestyle=dashed,linecolor=blue!30]{-4.8}{4.8}{x} -\psplot[linestyle=dashed,linecolor=blue!30]{-4.8}{4.8}{-x} -\rput(0,0.5){$\times$} -\end{pspicture} -\end{lstlisting} - - -\begingroup -\begin{pspicture}(-6.5,-4)(6.5,7.5) -\psaxes[trigLabelBase=2,dx=\psPiH, - xunit=\psPi,trigLabels]{->}(0,0)(-1.7,-3.5)(1.77,6.5)[$x$,0][$y$,90] -\psset{algebraic=true} -\psplot[yMaxValue=6,yMinValue=-3,linewidth=1.6pt,plotpoints=2000, - linecolor=red]{-4.55}{4.55}{tan(x)} -\end{pspicture} -\endgroup - -\begin{lstlisting} -\begin{pspicture}(-6.5,-4)(6.5,7.5) -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,trigLabels]% - {->}(0,0)(-1.7,-3.5)(1.77,6.5)[$x$,0][$y$,90] -\psset{algebraic=true} -\psplot[?\ON?yMaxValue=6,yMinValue=-3?\OFF?,linewidth=1.6pt,plotpoints=2000, - linecolor=red]{-4.55}{4.55}{tan(x)} -\end{pspicture} -\end{lstlisting} - - -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{axesstyle}}\label{axesstyle} -%-------------------------------------------------------------------------------------- -There is a new axes style \Lkeyval{polar} which plots a \Index{polar coordinate} system. - -Syntax: -\begin{lstlisting}[style=syntax] -\psplot[axesstyle=polar](Rx,Ry) -\psplot[axesstyle=polar](...)(Rx,Ry) -\psplot[axesstyle=polar](...)(...)(Rx,Ry) -\end{lstlisting} - -Important is the fact, that only one pair of coordinates is taken into account for -the radius. It is \emph{always} the last pair in a sequence of allowed coordinates -for the \Lcs{psaxes} macro. The other ones are ignored; they are not valid for the -polar coordinate system. - -\begin{LTXexample}[pos=b] -\begin{pspicture}(-3.5,-3.5)(3.5,3.5) -\psaxes[axesstyle=polar](3,3) -\psplot[polarplot,algebraic=true,linecolor=blue,linewidth=2pt, - plotpoints=2000]{0}{TwoPi 4 mul}{2*(sin(x)-x)/(cos(x)+x)} -\end{pspicture} -% -\begin{pspicture}(-3.5,-3.5)(3.5,3.5) -\psaxes[axesstyle=polar,subticklinestyle=dashed,subticks=2, - labelFontSize=\scriptstyle](3,3) -\psplot[polarplot,algebraic=true,linecolor=red,linewidth=2pt, - plotpoints=2000]{0}{TwoPi}{6*sin(x)*cos(x)} -\end{pspicture} -\end{LTXexample} - -All valid optional arguments for the axes are also possible for the polar style, if they make sense \ldots\ :-) -Important are the \Lkeyword{Dy} option, it defines the angle interval and \Lkeyword{subticks}, for -the intermediate circles and lines. The number can be different for the circles (\Lkeyword{ysubticks}) and the -lines (\Lkeyword{xsubticks}). - -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{xyAxes}, \nxLkeyword{xAxis} and \nxLkeyword{yAxis}}\label{xyAxes} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -xyAxes=true|false -xAxis=true|false -yAxis=true|false -\end{lstlisting} - -Sometimes there is only a need for one axis with ticks. In this -case you can set one of the preceding options to false. The -\Lkeyword{xyAxes} only makes sense when you want to set both x and y -to true with only one command, back to the default, because with -\Lkeyword{xyAxes}=\false you get nothing with the \Lcs{psaxes} macro. - - -\begin{LTXexample} -\begin{pspicture}(5,1) -\psaxes[yAxis=false,linecolor=blue]{->}(0,0.5)(5,0.5) -\end{pspicture} -\begin{pspicture}(1,5) -\psaxes[xAxis=false,linecolor=red]{->}(0.5,0)(0.5,5) -\end{pspicture} -\begin{pspicture}(1,5) -\psaxes[xAxis=false,linecolor=red, - ylabelPos=right]{->}(0.5,0)(0.5,5) -\end{pspicture}\\[0.5cm] -\begin{pspicture}(5,1) -\psaxes[yAxis=false,linecolor=blue, - xlabelPos=top]{->}(0,0.5)(5,0.5) -\end{pspicture} -\end{LTXexample} - -As seen in the example, a single y axis gets the labels on the left side. This can be -changed with the option \Lkeyword{ylabelPos} or with \Lkeyword{xlabelPos} for the -$x$-axis. - - -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{labels}}\label{labels} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -labels=all|x|y|none -\end{lstlisting} - -This option was already in the \LPack{pst-plot} package and -only mentioned here for completeness. - -\begin{LTXexample}[width=3.5cm] -\psset{ticksize=6pt} -\begin{pspicture}(-1,-1)(2,2) -\psaxes[labels=all,subticks=5]{->}(0,0)(-1,-1)(2,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[labels=y,subticks=5]{->}(0,0)(-1,-1)(2,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[labels=x,subticks=5]{->}(0,0)(2,2)(-1,-1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[labels=none,subticks=5]{->}(0,0)(2,2)(-1,-1) -\end{pspicture} -\end{LTXexample} - - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{xlabelPos} and \nxLkeyword{ylabelPos}}\label{labelpos} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -xlabelPos=bottom|axis|top -ylabelPos=left|axis|right -\end{lstlisting} - -By default the \Index{label}s for ticks are placed at the bottom (x axis) -and left (y-axis). If both axes are drawn in the negative -direction the default is top (x axis) and right (y axis). It be -changed with the two options \Lkeyword{xlabelPos} and -\Lkeyword{ylabelPos}. With the value \Lkeyval{axis} the user can -place the labels depending on the value of \Lkeyword{labelsep}, which is -taken into account for \Lkeyval{axis}. - -\bigskip -\begin{LTXexample}[width=9cm] -\begin{pspicture}(3,3) -\psaxes{->}(3,3) -\end{pspicture}\hspace{2cm} -\begin{pspicture}(3,-3) -\psaxes[xlabelPos=top]{->}(3,-3) -\end{pspicture} -\end{LTXexample} - -\vspace{1cm} -\begin{LTXexample}[width=9cm] -\begin{pspicture}(-3,-3) -\psaxes{->}(-3,-3) -\end{pspicture}\hspace{2cm} -\begin{pspicture}(3,3) -\psaxes[labelsep=0pt, - ylabelPos=axis, - xlabelPos=axis]{->}(3,3) -\end{pspicture} -\end{LTXexample} - -\vspace{1cm} -\begin{LTXexample}[width=5cm] -\begin{pspicture}(-1,1)(3,-3) -\psaxes[xlabelPos=top, - xticksize=0 20pt, - yticksize=-20pt 0]{->}(3,-3) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{labelFontSize} and \nxLkeyword{mathLabel}}\label{labelfontsize} -%-------------------------------------------------------------------------------------- - -This option sets the horizontal \textbf{and} vertical font size -for the labels depending on the option \Lkeyword{mathLabel} for the -text or the math mode. It will be overwritten when another package -or a user defines -\begin{lstlisting}[style=syntax] -\def\pshlabel#1{\labelFontSize ...} -\def\psvlabel#1{\labelFontSize ...} -\def\pshlabel#1{$\labelFontSize ...$}% for mathLabel=true (default) -\def\psvlabel#1{$\labelFontSize ...$}% for mathLabel=true (default) -\end{lstlisting} -in another way. Note that for \Lkeyword{mathLabel}=\true the font size -must be set by one of the mathematical styles \Lcs{textstyle}, -\Lcs{displaystyle}, \Lcs{scriptstyle}, or \Lcs{scriptscriptstyle}. - -\begin{LTXexample}[width=6cm] -\psset{mathLabel=false} -\begin{pspicture}(-0.25,-0.25)(5,2.25) -\psaxes{->}(5,2.25)[$x$,0][$y$,90] -\end{pspicture}\\[20pt] -\begin{pspicture}(-0.25,-0.25)(5,2.25) -\psaxes[labelFontSize=\footnotesize]{->}(5,2.25) -\end{pspicture}\\[20pt] -\begin{pspicture}(-0.25,-0.25)(5,2.25) -\psaxes[labelFontSize=\footnotesize]{->}(5,2.25) -\end{pspicture}\\[20pt] -\end{LTXexample} - -\begin{LTXexample}[width=6cm] -\begin{pspicture}(-0.25,-0.25)(5,2.25) -\psaxes[labelFontSize=\scriptstyle]{->}(5,2.25)[\textbf{x},-90][\textbf{y},0] -\end{pspicture}\\[20pt] -\psset{mathLabel=true} -\begin{pspicture}(-0.25,-0.25)(5,2.25) -\psaxes[labelFontSize=\scriptscriptstyle]{->}(5,2.25) -\end{pspicture}\\[20pt] -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{xlabelFactor} and \nxLkeyword{ylabelFactor}}\label{labelfactor} -%-------------------------------------------------------------------------------------- -When having big numbers as data records then it makes sense to -write the values as ${<number>\cdot 10^{<exp>}}$. These new -options allow you to define the additional part of the value, but -it must be set in math mode when using math operators or macros like \Lcs{cdot}! - -\begin{LTXexample}[pos=b] -\readdata{\data}{demo1.data} -\pstScalePoints(1,0.000001){}{}% (x,y){additional x operator}{y op} -\psset{llx=-1cm,lly=-1cm} -\psgraph[ylabelFactor=\cdot 10^6,Dx=5,Dy=100](0,0)(25,750){8cm}{5cm} - \listplot[linecolor=red, linewidth=2pt, showpoints=true]{\data} -\endpsgraph -\pstScalePoints(1,1){}{}% reset -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{decimalSeparator} and \nxLkeyword{comma}}\label{comma} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -comma=false|true -decimalSeparator=<charactor> -\end{lstlisting} -Setting the option \Lkeyword{comma} to true gives labels with a comma as a decimal separator instead -of the default dot. \Lkeyword{comma} and \verb|comma=true| is the same. The optional argument -\Lkeyword{decimalSeparator} allows an individual setting for languages with a different -character than a dot or a comma. The character has to be set into braces, if it is an -active one, e.\,g. \Lkeyword{decimalSeparator}=\Largb{,}. - -\medskip -\begin{LTXexample}[width=5.5cm] -\begin{pspicture}(-0.5,-0.5)(5,5.5) -\psaxes[Dx=1.5,comma,Dy=0.75,dy=0.75]{->}(5,5) -\psplot[linecolor=red,linewidth=3pt]{0}{4.5}% - {x RadtoDeg cos 2 mul 2.5 add} -\psline[linestyle=dashed](0,2.5)(4.5,2.5) -\end{pspicture} -\end{LTXexample} - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{xyDecimals}, \nxLkeyword{xDecimals} and \nxLkeyword{yDecimals}}\label{xydecimals} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -xyDecimals=<number> -xDecimals=<any> -yDecimals=<any> -\end{lstlisting} - -By default the labels of the axes get numbers with or without -decimals, depending on the numbers itself. With these options -it is possible to determine the decimals, where -the option \Lkeyword{xyDecimals} sets this identical for both axes. -\Lkeyword{xDecimals} only for the $x$ and \Lkeyword{yDecimals} only -for the $y$ axis. -The default setting \verb|{}| means, that you'll get the standard -behaviour. - - -\begin{LTXexample}[width=6cm] -\begin{pspicture}(-1.5,-0.5)(5,3.75) - \psaxes[xyDecimals=2]{->}(0,0)(4.5,3.5) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[pos=t] -\psset{xunit=10cm,yunit=0.01cm,labelFontSize=\scriptstyle} -\begin{pspicture}(-0.1,-150)(1.5,550.0) - \psaxes[Dx=0.25,Dy=100,ticksize=-4pt 0,comma,xDecimals=3,yDecimals=1]{->}% - (0,0)(0,-100)(1.4,520)[\textbf{Amp\`ere},-90][\textbf{Voltage},0] -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection[Option \nxLkeyword{triglabels}]{Options \nxLkeyword{trigLabels}, -\nxLkeyword{xtrigLabels}, \nxLkeyword{ytrigLabels}, and \nxLkeyword{trigLabelBase} - for an axis with trigonmetrical units}\label{triglabels} -%-------------------------------------------------------------------------------------- -With the option \Lkeyword{trigLabels}=\true\ \emph{only} the labels on the $x$ axis -are trigonometrical ones. It is the same than setting \Lkeyword{xtrigLabels}=\true. -The option \Lkeyword{trigLabelBase} sets the -denominator of fraction. The default value of 0 is the same as no -fraction. The following constants are defined in the package: -\begin{lstlisting}[style=syntax] -\def?\ON?\psPiFour?\OFF?{12.566371} -\def?\ON?\psPiTwo?\OFF?{6.283185} -\def?\ON?\psPi?\OFF?{3.14159265} -\def?\ON?\psPiH?\OFF?{1.570796327} -\newdimen\pstRadUnit -\newdimen\pstRadUnitInv -?\ON?\pstRadUnit?\OFF?=1.047198cm % this is pi/3 -?\ON?\pstRadUnitInv?\OFF?=0.95493cm % this is 3/pi -\end{lstlisting} - - - -Because it is a bit complicated to set the right values, we show -some more examples here. -For \textbf{all} following examples in this section we did a -global - -\begin{Xverbatim}{} -\psset{trigLabels,labelFontSize=\scriptstyle} -\end{Xverbatim} - -\psset{trigLabels,labelFontSize=\scriptstyle} Translating the -decimal ticks to trigonometrical ones makes no real sense, because -every 1 xunit (1cm) is a tick and the last one is at 6cm. - -\clearpage -\psset{unit=1cm} -\begin{minipage}{0.45\fullWidth} -\begin{pspicture}[trigLabels](-0.5,-1.25)(6.5,1.25)% - \pnode(5,0){A}% - \psaxes{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25)% -\end{pspicture} -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)% - \pnode(5,0){A}% - \psaxes{->}(0,0)(-.5,-1.25)(\psPiTwo,1.25) -\end{pspicture} -\end{lstlisting} -\end{minipage} - -\begin{minipage}{0.45\fullWidth} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)% - \psaxes[trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) -\end{pspicture} -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)% - \psaxes[?\ON?trigLabelBase=3?\OFF?]{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) -\end{pspicture} -\end{lstlisting} -\end{minipage} - -Modifying the ticks to have the last one exactly at the end is -possible with a different dx value ($\frac{\pi}{3}\approx 1.047$): - - -\begin{minipage}{0.45\fullWidth} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)\pnode(\psPiTwo,0){C}% - \psaxes[dx=\pstRadUnit]{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) -\end{pspicture}% -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)\pnode(\psPiTwo,0){C}% - \psaxes[?\ON?dx=\pstRadUnit?\OFF?]{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) -\end{pspicture}% -\end{lstlisting} -\end{minipage} - - -\begin{minipage}{0.45\fullWidth} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)\pnode(5,0){B}% - \psaxes[dx=\pstRadUnit,trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) -\end{pspicture}% -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)\pnode(5,0){B}% - \psaxes[dx=\pstRadUnit,?\ON?trigLabelBase=3?\OFF?] {->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) -\end{pspicture}% -\end{lstlisting} -\end{minipage} - -\ncline[linestyle=dashed,linewidth=0.4pt]{A}{B} - -Set everything globally in radian units. Now 6 units on the -$x$-axis are $6\pi$. Using \Lkeyword{trigLabelBase}=3 reduces this -value to $2\pi$, a.s.o. - -\bigskip -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)\pnode(6,0){D}% - \psaxes{->}(0,0)(-0.5,-1.25)(6.5,1.25)% -\end{pspicture}% -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{?\ON?xunit=\pstRadUnit?\OFF?}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25)\pnode(6,0){D}% - \psaxes{->}(0,0)(-0.5,-1.25)(6.5,1.25)% -\end{pspicture}% -\end{lstlisting} -\end{minipage} -\ncline[linestyle=dashed,linewidth=0.4pt]{C}{D} - - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(6.5,1.25) -\end{pspicture}% -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{?\ON?xunit=\pstRadUnit?\OFF?}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[?\ON?trigLabelBase=3?\OFF?]{->}(0,0)(-0.5,-1.25)(6.5,1.25) -\end{pspicture}% -\end{lstlisting} -\end{minipage} - - - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=4]{->}(0,0)(-0.5,-1.25)(6.5,1.25) -\end{pspicture}% -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{?\ON?xunit=\pstRadUnit?\OFF?}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[?\ON?trigLabelBase=4?\OFF?]{->}(0,0)(-0.5,-1.25)(6.5,1.25) -\end{pspicture}% -\end{lstlisting} -\end{minipage} - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=6]{->}(0,0)(-0.5,-1.25)(6.5,1.25) -\end{pspicture}% -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{?\ON?xunit=\pstRadUnit?\OFF?}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[?\ON?trigLabelBase=6?\OFF?]{->}(0,0)(-0.5,-1.25)(6.5,1.25) -\end{pspicture}% -\end{lstlisting} -\end{minipage} - - - -The best way seems to be to set the $x$-unit to -\Lcs{pstRadUnit}. Plotting a function doesn't consider the value -for \Lkeyword{trigLabelBase}, it has to be done by the user. The first -example sets the unit locally for the \Lcs{psplot} back to 1cm, -which is needed, because we use this unit on the PostScript side. - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.4,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[xunit=1cm,linecolor=red,linewidth=1.5pt]{0}{\psPiTwo}{x RadtoDeg sin} -\end{pspicture} -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[?\ON?xunit=1cm?\OFF?,linecolor=red,linewidth=1.5pt]{0}{?\ON?\psPiTwo?\OFF?}{x RadtoDeg sin} -\end{pspicture} -\end{lstlisting} -\end{minipage} - - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.4,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[linecolor=red,linewidth=1.5pt]{0}{6}{x Pi 3 div mul RadtoDeg sin} -\end{pspicture} -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[trigLabelBase=3]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[linecolor=red,linewidth=1.5pt]{0}{6}{x ?\ON?Pi 3 div mul ?\OFF?RadtoDeg sin} -\end{pspicture} -\end{lstlisting} -\end{minipage} - - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.4,-1.25)(6.5,1.25) - \psaxes[dx=1.5]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[xunit=.5cm,linecolor=red,linewidth=1.5pt]{0}{\psPiFour}{x RadtoDeg sin} -\end{pspicture} -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[?\ON?dx=1.5?\OFF?]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[?\ON?xunit=0.5cm?\OFF?,linecolor=red,linewidth=1.5pt]{0}{?\ON?\psPiFour?\OFF?}{x RadtoDeg sin} -\end{pspicture} -\end{lstlisting} -\end{minipage} - - -\begin{minipage}{0.45\fullWidth} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.4,-1.25)(6.5,1.25) - \psaxes[dx=0.75,trigLabelBase=2]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[xunit=.5cm,linecolor=red,linewidth=1.5pt]{0}{\psPiFour}{x RadtoDeg sin} -\end{pspicture} -\end{minipage}% -\begin{minipage}{0.55\fullWidth} -\begin{lstlisting} -\psset{xunit=\pstRadUnit}% -\begin{pspicture}(-0.5,-1.25)(6.5,1.25) - \psaxes[?\ON?dx=0.75?\OFF?,?\ON?trigLabelBase=2?\OFF?]{->}(0,0)(-0.5,-1.25)(6.5,1.25) - \psplot[?\ON?xunit=0.5cm?\OFF?,linecolor=red,linewidth=1.5pt]{0}{\psPiFour}{x RadtoDeg sin} -\end{pspicture} -\end{lstlisting} -\end{minipage} - - -It is also possible to set the $x$ unit and $dx$ value to get the -labels right. But this needs some more understanding as to how it -really works. A \Lkeyword{xunit}=1.570796327 sets the unit to $\pi/2$ -and a \Lkeyword{dx}=0.666667 then puts at every $2/3$ of the unit a -tick mark and a label. The length of the $x$-axis is 6.4 units -which is $6.4\cdot 1.570796327cm\approx 10cm$. The function then -is plotted from $0$ to $3\pi=9.424777961$. - - - - -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-0.5,-1.25)(10,1.25) - \psaxes[xunit=\psPiH,showorigin=false,trigLabelBase=3,dx=0.666667]{->}(0,0)(-0.5,-1.25)(6.4,1.25) - \psplot[linecolor=red,linewidth=1.5pt]{0}{9.424777961}{% - x RadtoDeg dup sin exch 1.1 mul cos add} -\end{pspicture} -\end{center} -\begin{lstlisting} -\begin{pspicture}(-0.5,-1.25)(10,1.25) - \psaxes[?\ON?xunit=\psPiH?\OFF?,?\ON?trigLabelBase=3?\OFF?,?\ON?dx=0.666667?\OFF?]{->}(0,0)(-0.5,-1.25)(6.4,1.25) - \psplot[linecolor=red,linewidth=1.5pt]{0}{?\ON?9.424777961?\OFF?}{% - x RadtoDeg dup sin exch 1.1 mul cos add} -\end{pspicture} -\end{lstlisting} - -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-0.5,-1.25)(10,1.25) - \psaxes[xunit=\psPi,dx=0.25]{->}(0,0)(-0.25,-1.25)(3.2,1.25) - \psplot[xunit=0.25,plotpoints=500,linecolor=red,linewidth=1.5pt]{0}{37.70}{% - x RadtoDeg dup sin exch 1.1 mul cos add} -\end{pspicture} -\end{center} -\begin{lstlisting} -\psset{?\ON?unit=1cm?\OFF?} - \psplot[?\ON?xunit=0.25?\OFF?,?\ON?plotpoints=500?\OFF?,linecolor=red,linewidth=1.5pt]{0}{37.70}{% - x RadtoDeg dup sin exch 1.1 mul cos add} -\end{pspicture} -\end{lstlisting} - - -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-0.5,-2)(10,2) - \psplot[xunit=0.0625,linecolor=red,linewidth=1.5pt,plotpoints=5000]{0}{150.80}{% - x RadtoDeg dup sin exch 1.1 mul cos add} - \psaxes[xunit=\psPi,dx=0.5,Dx=8,subticks=2]{->}(0,0)(-0.1,-2)(3.2,2) -\end{pspicture} -\end{center} -\begin{lstlisting} -\psset{?\ON?unit=1cm?\OFF?} -\begin{pspicture}(-0.5,-1.25)(10,1.25) - \psplot[?\ON?xunit=0.0625?\OFF?,linecolor=red,linewidth=1.5pt,% - ?\ON?plotpoints=5000?\OFF?]{0}{150.80}% - {x RadtoDeg dup sin exch 1.1 mul cos add} - \psaxes[?\ON?xunit=\psPi?\OFF?,?\ON?dx=0.5?\OFF?,?\ON?Dx=8?\OFF?]{->}(0,0)(-0.25,-1.25)(3.2,1.25) -\end{pspicture} -\end{lstlisting} - - -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-7,-1.5)(7,1.5) - \psaxes[trigLabels=true,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) - \psplot[linecolor=red,linewidth=1.5pt]{-7}{7}{x RadtoDeg sin} -\end{pspicture} -\end{center} -\begin{lstlisting} -\begin{pspicture}(-7,-1.5)(7,1.5) - \psaxes[trigLabels=true,?\ON?xunit=\psPi?\OFF?]{->}(0,0)(-2.2,-1.5)(2.2,1.5) - \psplot[linecolor=red,linewidth=1.5pt]{-7}{7}{x RadtoDeg sin} -\end{pspicture} -\end{lstlisting} - - -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-7,-1.5)(7,1.5) - \psaxes[trigLabels=true, - trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) - \psplot[linecolor=red,linewidth=1.5pt]{-7}{7}{x RadtoDeg sin} -\end{pspicture} -\end{center} -\begin{lstlisting} -\begin{pspicture}(-7,-1.5)(7,1.5) - \psaxes[trigLabels=true, - trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) - \psplot[linecolor=red,linewidth=1.5pt]{-7}{7}{x RadtoDeg sin} -\end{pspicture} -\end{lstlisting} - -\psset{unit=1cm,trigLabels=false} - -The setting of trigonometrical labels with \Lkeyword{ytriglabels}=\true -for the $y$ axis is the same as for the $x$ axis. -\label{xtriglabels}\label{ytriglabels} -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-6.5,-7)(6.5,7.5) -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,ytrigLabels] - {->}(0,0)(-1.7,-6.5)(1.77,6.5)[$x$,0][$y$,90] -\end{pspicture} -\end{center} - -\begin{lstlisting} -\psset{unit=1cm} -\begin{pspicture}(-6.5,-7)(6.5,7.5) -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,ytrigLabels] - {->}(0,0)(-1.7,-6.5)(1.77,6.5)[$x$,0][$y$,90] -\end{pspicture} -\end{lstlisting} - -Also setting labels for the $x$ axis is possible with \Lkeyword{trigLabels}=\true -or alternatively with \Lkeyword{ytrigLabels}=\true. - -\begin{center} -\psset{unit=1cm} -\begin{pspicture}(-6.5,-7)(6.5,7.5) -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,xtrigLabels,ytrigLabels] - {->}(0,0)(-1.7,-6.5)(1.77,6.5)[$x$,0][$y$,90] -\end{pspicture} -\end{center} - -\begin{lstlisting} -\psset{unit=1cm} -\begin{pspicture}(-6.5,-7)(6.5,7.5) -\psaxes[trigLabelBase=2,dx=\psPiH,xunit=\psPi,xtrigLabels,ytrigLabels] - {->}(0,0)(-1.7,-6.5)(1.77,6.5)[$x$,0][$y$,90] -\end{pspicture} -\end{lstlisting} - - -\psset{trigLabels=false,labelFontSize=\scriptstyle,unit=1cm} - -\clearpage - -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{ticks}}\label{ticks} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -ticks=all|x|y|none -\end{lstlisting} - -This option was already in the \LPack{pst-plot} package and -only mentioned here for some completeness. - -\begin{LTXexample}[width=3.5cm] -\psset{ticksize=6pt} -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=all,subticks=5]{->}(0,0)(-1,-1)(2,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=y,subticks=5]{->}(0,0)(-1,-1)(2,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=x,subticks=5]{->}(0,0)(2,2)(-1,-1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=none,subticks=5]{->}(0,0)(2,2)(-1,-1) -\end{pspicture} -\end{LTXexample} - -\clearpage - - -% full= 0, top=1, bottom=-1, inner=2 => -1 0 1 2 -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{tickstyle}}\label{tickstyle} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -tickstyle=full|top|bottom|inner -\end{lstlisting} - -The value \Lkeyval{inner} is only possible for the axes style \Lkeyval{frame}. - -\medskip -\begin{LTXexample}[pos=t] -\psset{subticks=10} -\begin{pspicture}(-1,-1)(3,3) \psaxes[tickstyle=full]{->}(3,3) \end{pspicture} -\begin{pspicture}(-1,-1)(3,3) \psaxes[tickstyle=top]{->}(3,3) \end{pspicture} -\begin{pspicture}(-1,-1)(3,3) \psaxes[tickstyle=bottom]{->}(3,3)\end{pspicture} -\begin{pspicture}(-1,-1)(3,3) - \psaxes[axesstyle=frame, tickstyle=inner, ticksize=0 4pt]{->}(3,3) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{ticksize}, \nxLkeyword{xticksize}, \nxLkeyword{yticksize}}\label{ticksize} -%-------------------------------------------------------------------------------------- - -With this new option the recent \Lkeyword{tickstyle} option of -\LPack{pst-plot} is obsolete and no longer supported by \LPack{pstricks-add}. - -Syntax: -\begin{lstlisting}[style=syntax] -ticksize=value[unit] -ticksize=value[unit] value[unit] -xticksize=value[unit] -xticksize=value[unit] value[unit] -yticksize=value[unit] -yticksize=value[unit] value[unit] -\end{lstlisting} - -\Lkeyword{ticksize} sets both values. The first one is left/below and the optional second -one is right/above of the coordinate axis. The old setting \Lkeyset{tickstyle=bottom} is -now easy to realize, e.\,g.: \Lkeyword{ticksize}=-6pt 0, or vice versa, if the coordinates -are set from positive to negative values. - -\medskip -\begin{LTXexample}[width=6cm] -\psset{arrowscale=2} -\begin{pspicture}(-1.5,-1.5)(4,3.5) - \psaxes[ticksize=0.5cm]{->}(0,0)(-1.5,-1.5)(4,3.5) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6cm] -\psset{arrowscale=2} -\begin{pspicture}(-1.5,-1.5)(4,3.5) - \psaxes[xticksize=-10pt 0,yticksize=0 10pt]% - {->}(0,0)(-1.5,-1.5)(4,3.5) -\end{pspicture} -\end{LTXexample} - -A grid is also possible by setting the values to the max/min coordinates. - -\begin{LTXexample}[width=6cm] -\psset{arrowscale=2} -\begin{pspicture}(-.5,-.5)(5,4.5) - \psaxes[ticklinestyle=dashed, - ticksize=0 4cm]{->}(0,0)(-.5,-.5)(5,4.5) -\end{pspicture} -\end{LTXexample} - -\clearpage -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{subticks}, \nxLkeyword{xsubticks}, and \nxLkeyword{ysubticks}}\label{subticks} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -subticks=<number> -xsubticks=<number> -ysubticks=<number> -\end{lstlisting} - -By default \Lkeyword{subticks} cannot have labels. - -\begin{LTXexample}[width=3.5cm] -\psset{ticksize=6pt} -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=all,xsubticks=5, - ysubticks=10]{->}(0,0)(-1,-1)(2,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=y,subticks=5]{->}(0,0)(-1,-1)(2,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=x,subticks=5]{->}(0,0)(2,2)(-1,-1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(-1,-1)(2,2) -\psaxes[ticks=none,subticks=5]{->}(0,0)(2,2)(-1,-1) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{subticksize}, \nxLkeyword{xsubticksize}, \nxLkeyword{ysubticksize}}\label{subticksize} -%-------------------------------------------------------------------------------------- - -\Lkeyword{subticksize} sets both values, \Lkeyword{xsubticksize} only for the $x$-axis and -\Lkeyword{ysubticksize} only for the $y$-axis, -which must be relative to the ticksize length and -can have any number. 1 sets it to the same length as the main ticks. - -Syntax: -\begin{lstlisting}[style=syntax] -subticksize=value -xsubticksize=value -ysubticksize=value -\end{lstlisting} - - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{yunit=1.5cm,xunit=3cm} -\begin{pspicture}(-1.25,-4.75)(3.25,.75) - \psaxes[xticksize=-4.5 0.5,ticklinestyle=dashed,subticks=5,xsubticksize=1,% - ysubticksize=0.75,xsubticklinestyle=dotted,xsubtickwidth=1pt, - subtickcolor=gray]{->}(0,0)(-1,-4)(3.25,0.5) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection[\nxLkeyword{tickcolor} and \nxLkeyword{subtickcolor}]% -{Options \nxLkeyword{tickcolor}, \nxLkeyword{xtickcolor}, \nxLkeyword{ytickcolor}, -\nxLkeyword{subtickcolor}, \nxLkeyword{xsubtickcolor}, and \nxLkeyword{ysubtickcolor}}\label{tickcolor} -%-------------------------------------------------------------------------------------- - -Syntax: -\begin{lstlisting}[style=syntax] -tickcolor=<color> -xtickcolor=<color> -ytickcolor=<color> -subtickcolor=<color> -xsubtickcolor=<color> -ysubtickcolor=<color> -\end{lstlisting} - -\Lkeyword{tickcolor} and \Lkeyword{subtickcolor} set both for the $x$- and the $y$-Axis. - -\begin{LTXexample}[preset=\centering,pos=t] -\begin{pspicture}(0,-0.75)(10,1) -\psaxes[yAxis=false,labelFontSize=\scriptstyle,ticksize=0 10mm,subticks=10,subticksize=0.75, - tickcolor=red,subtickcolor=blue,tickwidth=1pt,subtickwidth=0.5pt](10.01,0) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=5cm] -\begin{pspicture}(5,-0.75)(10,1) -\psaxes[yAxis=false,labelFontSize=\scriptstyle,ticksize=0 -10mm,subticks=10,subticksize=0.75, - tickcolor=red,subtickcolor=blue,tickwidth=1pt,subtickwidth=0.5pt,Ox=5](5,0)(5,0)(10.01,0) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection[\nxLkeyword{ticklinestyle} and \nxLkeyword{subticklinestyle}]% - {Options \nxLkeyword{ticklinestyle}, \nxLkeyword{xticklinestyle}, \nxLkeyword{yticklinestyle}, -\nxLkeyword{subticklinestyle}, \nxLkeyword{xsubticklinestyle}, and \nxLkeyword{ysubticklinestyle}}\label{ticklinestyle} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{lstlisting}[style=syntax] -ticklinestyle=solid|dashed|dotted|none -xticklinestyle=solid|dashed|dotted|none -yticklinestyle=solid|dashed|dotted|none -subticklinestyle=solid|dashed|dotted|none -xsubticklinestyle=solid|dashed|dotted|none -ysubticklinestyle=solid|dashed|dotted|none -\end{lstlisting} - -\Lkeyword{ticklinestyle} and \Lkeyword{subticklinestyle} set both values -for the x and y axis. The value \Lkeyval{none} doesn't really makes -sense, because it is the same as \verb+[sub]ticklines=0+ -\xLkeyword{xticklinestyle}\xLkeyword{yticklinestyle} -\xLkeyword{xsubticklinestyle}\xLkeyword{ysubticklinestyle} - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{unit=4cm} -\pspicture(-0.15,-0.15)(2.5,1) - \psaxes[axesstyle=frame,logLines=y,xticksize=0 1,xsubticksize=1,ylogBase=10, - tickcolor=red,subtickcolor=blue,tickwidth=1pt,subticks=9,xsubticks=10, - xticklinestyle=dashed,xsubticklinestyle=dashed](2.5,1) -\endpspicture -\end{LTXexample} - - - -%-------------------------------------------------------------------------------------- -\subsection{\nxLkeyword{logLines}}\label{loglines} -%-------------------------------------------------------------------------------------- -Syntax: -\begin{BDef} -logLines=all|x|y -\end{BDef} - -By default the option \Lkeyword{logLines} sets the ticksize to the maximal length for x, y, or both. -It can be changed, when \emph{after} the option \Lkeyword{logLines} the ticksize is set. - -\begin{LTXexample}[pos=t] -\pspicture(-1,-1)(5,5) - \psaxes[subticks=5,xylogBase=10,logLines=all](5,5) -\endpspicture\hspace{1cm} -\pspicture(-1,-1)(5,5) - \psaxes[subticks=9,axesstyle=frame,xylogBase=10,logLines=all, - ticksize=0 5pt,tickstyle=inner](5,5) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{unit=4cm} -\pspicture(-0.15,-0.15)(2.5,2) - \psaxes[axesstyle=frame,logLines=y,xticksize=max,xsubticksize=1,ylogBase=10, - tickcolor=red,subtickcolor=blue,tickwidth=1pt,subticks=9,xsubticks=10](2.5,2) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{unit=4} -\pspicture(-0.5,-0.3)(3,1.2) - \psaxes[axesstyle=frame,tickstyle=inner,logLines=x,xlogBase=10,Dy=0.5,tickcolor=red, - subtickcolor=blue,tickwidth=1pt,ysubticks=5,xsubticks=9](3,1) -\endpspicture -\end{LTXexample} - -%-------------------------------------------------------------------------------------- -\subsection{\nxLkeyword{xylogBase}, \nxLkeyword{xlogBase} and \nxLkeyword{ylogBase}}\label{xylogbase} -%-------------------------------------------------------------------------------------- -There are additional options \Lkeyword{xylogBase}, \Lkeyword{xlogBase}, -\Lkeyword{ylogBase} to get one or both axes with \Index{logarithmic label}s. For an -interval of [$10^{-3} ... 10^2$] choose a \PST interval -of [-3,2]. \PST takes $0$ as the origin of this axes, -which is wrong if we want to have a logarithmic axes. With the -options \Lkeyword{Oy} and \Lkeyword{Ox} we can set the origin to $-3$, so -that the first label gets $10^{-3}$. If this is not done by the -user then \LPack{pst-plot} does it by default. An alternative -is to set these parameters to empty values \verb|Ox={},Oy={}|, in -this case the package does nothing. - - -%------------------------------------------------------------------------------------ -\subsection{\nxLkeyword{xylogBase}}\label{logbase} -%------------------------------------------------------------------------------------ -This mode in math is also called double logarithmic. It is a -combination of the two foregoing modes and the function is now -$y=\log x$ and is shown in the following example. - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-3.5)(3.5,3.5) - \psplot[linewidth=2pt,linecolor=red]{0.001}{3}{x log} - \psaxes[xylogBase=10,Oy=-3,Ox=-3]{->}(-3,-3)(3.5,3.5) - \uput[-90](3.5,-3){x} - \uput[180](-3,3.5){y} - \rput(2.5,1){$y=\log x$} -\end{pspicture} -\end{LTXexample} - - - -%-------------------------------------------------------------------------------------------- -\subsection{\nxLkeyword{ylogBase}}\label{ylogbase} -%-------------------------------------------------------------------------------------------- -The values for the \Lcs{psaxes} y-coordinate are now the -exponents to the base $10$ and for the right function to the base -$e$: $10^{-3} \ldots 10^1$ which corresponds to the given -y-interval $-3\ldots 1.5$, where only integers as exponents are -possible. These logarithmic labels have no effect on the -internally used units. To draw the logarithm function we have to -use the math function -\[y=\log\{\log x\}\] -\[y=\ln\{\ln x\}\] -with an drawing interval of $1.001\ldots 6$. - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-0.5,-3.5)(6.5,1.5) - \psaxes[ylogBase=10,Oy=-3]{->}(0,-3)(6.5,1.5) - \uput[-90](6.5,-3){x} - \uput[0](0,1.4){y} - \rput(5,1){$y=\log x$} - \psplot[linewidth=2pt,% - plotpoints=100,linecolor=red]{1.001}{6}{x log log} % log(log(x)) -\end{pspicture} -\end{LTXexample} - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-0.5,-3.5)(6.5,1.5) - \psplot[linewidth=2pt,plotpoints=100,linecolor=red]% - {1.04}{6}[ /ln {log 0.4343 div} def ]{x ln ln} % log(x) - \psaxes[ylogBase=e,Oy=-3]{->}(0,-3)(6.5,1.5) - \uput[-90](6.5,-3){x} - \uput[0](0,1.5){y} - \rput(5,1){$y=\ln x$} -\end{pspicture} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[width=7cm] - \begin{pspicture}(-0.5,1.75)(6.5,4.5) - \psaxes[ylogBase=10,Oy=2]{->}(0,2)(0,2)(6.5,4.5) - \end{pspicture} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[width=7cm] - \begin{pspicture}(-0.5,-0.25)(6.5,4.5) - \psplot{0}{6}{x x cos add log} % x + cox(x) - \psplot[linecolor=red]{0}{6}{x 3 exp x cos add log} % x^3 + cos(x) - \psplot[linecolor=cyan]{0}{6}{x 5 exp x cos add log} % x^5 + cos(x) - \psaxes[ylogBase=10]{->}(6.5,4.5) - \end{pspicture} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-0.5,-1.25)(6.5,4.5) - \psplot{0}{6}{x x cos add log} % x + cox(x) - \psplot[linecolor=red]{0}{6}{x 3 exp x cos add log} % x^3 + cos(x) - \psplot[linecolor=cyan]{0}{6}{x 5 exp x cos add log} % x^5 + cos(x) - \psaxes[ylogBase=10]{->}(0,-1)(0,-1)(6.5,4.5) -\end{pspicture} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[width=4cm] -\begin{pspicture}(2.5,1.75)(6.5,4.5) - \psplot[linecolor=cyan]{3}{6}{x 5 exp x cos add log} % x^5 + cos(x) - \psaxes[ylogBase=10,Ox=3,Oy=2]{->}(3,2)(3,2)(6.5,4.5) -\end{pspicture} -\end{LTXexample} - - - - - -%-------------------------------------------------------------------------------------- -\subsection{\nxLkeyword{xlogBase}}\label{xlogbase} -%-------------------------------------------------------------------------------------- -Now we have to use the easy math function $y=x$ because the x axis is still $\log x$. -\xLkeyword{xlogBase} - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-3.5)(3.5,3.5) - \psplot[linewidth=2pt,linecolor=red]{-3}{3}{x} % log(x) - \psplot[linewidth=2pt,linecolor=blue]{-1.3}{1.5}{x 0.4343 div} % ln(x) - \psaxes[xlogBase=10,Oy=-3,Ox=-3]{->}(-3,-3)(3.5,3.5) - \uput[-90](3.5,-3){x} - \uput[180](-3,3.5){y} - \rput(2.5,1){$y=\log x$} - \rput[lb](0,-1){$y=\ln x$} -\end{pspicture} -\end{LTXexample} - -\begin{center} -\psset{yunit=3cm,xunit=2cm} -\begin{pspicture}(-1.25,-1.25)(4.25,1.5) - \uput[-90](4.25,-1){x} - \uput[0](-1,1.25){y} - \rput(0,1){$y=\sin x$} - \psplot[linewidth=2pt,plotpoints=5000,linecolor=red]{-1}{3.5}{10 x exp sin } - \psaxes[xlogBase=10,Oy=-1,Ox=-1]{->}(-1,-1)(4.25,1.25) - \psline[linestyle=dashed](!0 1)(!90 log 1)(!90 log 0) -\end{pspicture} -\end{center} - -\begin{lstlisting} -\psset{yunit=3cm,xunit=2cm} -\begin{pspicture}(-1.25,-1.25)(4.25,1.5) - \uput[-90](4.25,-1){x} - \uput[0](-1,1.25){y} - \rput(0,1){$y=\sin x$} - \psplot[linewidth=2pt,plotpoints=5000,linecolor=red]{-1}{3.5}{10 x exp sin } - \psaxes[xlogBase=10,Ox=-1,Oy=-1]{->}(-1,-1)(4.25,1.25) - \psline[linestyle=dashed](-1,0)(4,0) - \psline[linestyle=dashed](!-1 1)(!90 log 1)(!90 log -1) - \psline[linestyle=dashed](!90 log 1)(!180 log 1)(!180 log -1) -\end{pspicture} -\end{lstlisting} - - -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-2.5)(3.5,2.5) - \psaxes[xlogBase=10]{->}(0,0)(-3.5,-2.5)(3.5,2.5) - \psplot{-2.5}{2.5}{10 x exp log} -\end{pspicture} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-2.5)(3.5,2.5) - \psaxes[xlogBase=10,Ox={},Oy={}]{->}(0,0)(-3.5,-2.5)(3.5,2.5) - \psplot{-2.5}{2.5}{10 x exp log} -\end{pspicture} -\end{LTXexample} - - -%------------------------------------------------------------------------------------ -\subsection{No logstyle (\nxLkeyword{xylogBase=\{\}})} -%------------------------------------------------------------------------------------ -This is only a demonstration that the default option \xLkeyword{xylogBase}=\{\} still works ... :-) - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-0.5)(3.5,2.5) - \psplot[linewidth=2pt,linecolor=red,xylogBase={}]{0.5}{3}{x log} % log(x) - \psaxes{->}(0,0)(-3.5,0)(3.5,2.5) - \uput[-90](3.5,0){x} - \uput[180](0,2.5){y} - \rput(2.5,1){$y=\log x$} -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{tickwidth} and \nxLkeyword{subtickwidth}}\label{tickwidth} -%-------------------------------------------------------------------------------------- - - -\begin{center} -{\psset{arrowscale=3,arrows=-D>,yAxis=false} - \psaxes[subticks=8](0,0)(-5,-1)(5,1)\\[1cm] - \psaxes[subticks=4,ticksize=-4pt 0,xlabelPos=top](0,0)(5,1)(-5,-1)\\ - \psaxes[subticks=4,ticksize=-10pt 0](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=10,ticksize=0 -10pt](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=4,ticksize=0 10pt,xlabelPos=bottom](0,0)(5,5)(-5,-5)\\[1cm] - \psaxes[subticks=4,ticksize=0 -10pt,xlabelPos=top](0,0)(5,5)(-5,-5)\\[0.25cm] - \psaxes[subticks=0](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=0,tickcolor=red,linecolor=blue,xlabelPos=top](0,0)(5,5)(-5,-5)\\ - \psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=0,tickcolor=red,xlabelPos=top](0,0)(5,5)(-5,-5)} -\end{center} -\begin{lstlisting}[xrightmargin=-1.75cm] -\psset{arrowscale=3,arrows=-D>,yAxis=false} - \psaxes[subticks=8](0,0)(-5,-1)(5,1)\\[1cm] - \psaxes[subticks=4,ticksize=-4pt 0,xlabelPos=top](0,0)(5,1)(-5,-1)\\ - \psaxes[subticks=4,ticksize=-10pt 0](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=10,ticksize=0 -10pt](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=4,ticksize=0 10pt,xlabelPos=bottom](0,0)(5,5)(-5,-5)\\[1cm] - \psaxes[subticks=4,ticksize=0 -10pt,xlabelPos=top](0,0)(5,5)(-5,-5)\\[0.25cm] - \psaxes[subticks=0](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=0,tickcolor=red,linecolor=blue,xlabelPos=top](0,0)(5,5)(-5,-5)\\ - \psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt](0,0)(-5,-5)(5,5)\\[1cm] - \psaxes[subticks=0,tickcolor=red,xlabelPos=top](0,0)(5,5)(-5,-5)} -\end{lstlisting} - -\clearpage -\vspace*{4cm} -\begin{center} -\psset{arrowscale=3,xAxis=false} -\psaxes[subticks=8]{->}(0,0)(-5,-5)(5,5)\hspace{2em} -\psaxes[subticks=4,ylabelPos=right,ylabelPos=left]{->}(0,0)(5,5)(-5,-5)\hspace{4em} -\psaxes[subticks=4,ticksize=0 4pt]{->}(0,0)(-5,-5)(5,5)\hspace{3em} -\psaxes[subticks=4,ticksize=-4pt 0]{->}(0,0)(-5,-5)(5,5)\hspace{1em} -\psaxes[subticks=4,ticksize=0 4pt,ylabelPos=right]{->}(0,0)(5,5)(-5,-5)\hspace{3em} -\psaxes[subticks=4,ticksize=-4pt 0,linecolor=red,ylabelPos=right]{->}(0,0)(5,5)(-5,-5)\hspace{5em} -\psaxes[subticks=0]{->}(0,0)(-5,-5)(5,5)\hspace{1em} -\psaxes[subticks=0,tickcolor=red,linecolor=blue,ylabelPos=right]{->}(0,0)(5,5)(-5,-5)\hspace{5em} -\psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt]{->}(0,0)(-5,-5)(5,5)\hspace{1em} -\psaxes[subticks=5,tickcolor=red,tickwidth=2pt,% - ticksize=10pt,subtickcolor=blue,subticksize=0.75,ylabelPos=right]{->}(0,0)(5,5)(-5,-5) -\end{center} - -\vspace*{5cm} -\begin{lstlisting}[xrightmargin=-1.75cm] -\psset{arrowscale=3,xAxis=false} -\psaxes[subticks=8]{->}(0,0)(-5,-5)(5,5)\hspace{2em} -\psaxes[subticks=4,ylabelPos=right,ylabelPos=left]{->}(0,0)(5,5)(-5,-5)\hspace{4em} -\psaxes[subticks=4,ticksize=0 4pt]{->}(0,0)(-5,-5)(5,5)\hspace{3em} -\psaxes[subticks=4,ticksize=-4pt 0]{->}(0,0)(-5,-5)(5,5)\hspace{1em} -\psaxes[subticks=4,ticksize=0 4pt,ylabelPos=right]{->}(0,0)(5,5)(-5,-5)\hspace{3em} -\psaxes[subticks=4,ticksize=-4pt 0,linecolor=red,ylabelPos=right]{->}(0,0)(5,5)(-5,-5)\hspace{5em} -\psaxes[subticks=0]{->}(0,0)(-5,-5)(5,5)\hspace{1em} -\psaxes[subticks=0,tickcolor=red,linecolor=blue,ylabelPos=right]{->}(0,0)(5,5)(-5,-5)\hspace{5em} -\psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt]{->}(0,0)(-5,-5)(5,5)\hspace{1em} -\psaxes[subticks=5,tickcolor=red,tickwidth=2pt,% - ticksize=10pt,subtickcolor=blue,subticksize=0.75,ylabelPos=right]{->}(0,0)(5,5)(-5,-5) -\end{lstlisting} - -\begin{LTXexample}[width=5.5cm] -\pspicture(5,5.5) -\psaxes[subticks=4,ticksize=6pt,subticksize=0.5,% - tickcolor=red,subtickcolor=blue]{->}(5.4,5) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=5.5cm] -\pspicture(5,5.5) - \psaxes[subticks=5,ticksize=0 6pt,subticksize=0.5]{->}(5.4,5) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=5.5cm] -\pspicture(5,5.5) - \psaxes[subticks=5,ticksize=-6pt 0,subticksize=0.5]{->}(5.4,5) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\pspicture(-3,-3)(3,3.5) - \psaxes[subticks=5,ticksize=0 6pt,subticksize=0.5]{->}(0,0)(3,3)(-3,-3) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\pspicture(0,0.5)(-3,-3) - \psaxes[subticks=5,ticksize=-6pt 0,subticksize=0.5,linecolor=red]{->}(-3,-3) -\endpspicture -\end{LTXexample} - - - -\begin{LTXexample}[width=5.5cm] -\psset{axesstyle=frame} -\pspicture(5,5.5) - \psaxes[subticks=4,tickcolor=red,subtickcolor=blue](5,5) -\endpspicture -\end{LTXexample} - -\vspace{1cm} -\begin{LTXexample}[width=5.5cm] -\pspicture(5,5.5) - \psaxes[subticks=5,subticksize=1,subtickcolor=lightgray](5,5) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=5.5cm] -\pspicture(5,5.5) - \psaxes[subticks=2,subticksize=1,subtickcolor=lightgray](5,5) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\pspicture(3,4.5) - \psaxes[subticks=5,ticksize=-7pt 0](3,4) -\endpspicture -\end{LTXexample} - - -\begin{LTXexample}[width=3.5cm] -\pspicture(0,1)(-3,-4) - \psaxes[subticks=5](-3,-4) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\pspicture(3,4.5) - \psaxes[axesstyle=axes,subticks=5](3,4) -\endpspicture -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\pspicture(0,1)(-3,-4) - \psaxes[axesstyle=axes,subticks=5,% - ticksize=0 10pt](-3,-4) -\endpspicture -\end{LTXexample} - - -%------------------------------------------------------------------------------------ -\section{New options for \nxLcs{readdata}}\label{ignorelines} -%------------------------------------------------------------------------------------ - -By default the macro \Lcs{readdata} reads every data record, -which could be annoying when you have some text lines at top of -your data files or when there are more than 10000 records to read. - -\LPack{pst-plot} defines two additional keys \Lkeyword{ignoreLines} -and \Lkeyword{nStep}, which allows you to ignore preceeding lines, e.\,g. -\Lkeyword{ignoreLines}=2, or to read only a selected part of the data -records, e.\,g. \Lkeyword{nStep}=10, only every 10\textsuperscript{th} -record is saved. - -\begin{lstlisting} -\readdata[ignoreLines=2]{\dataA}{stressrawdata.data} -\readdata[nStep=10]{\dataA}{stressrawdata.data} -\end{lstlisting} - -The default value for \Lkeyword{ignoreLines} is $0$ and for \Lkeyword{nStep} is $1$. -the following data file has two text lines which shall be ignored by the \Lcs{readdata} macro: - -\begin{LTXexample}[width=4cm] -\begin{filecontents*}{pstricks-add-data9.data} -some nonsense in this line ---time forcex forcey -0 0.2 -1 1 -2 4 -\end{filecontents*} -\readdata[ignoreLines=2]{\data}{pstricks-add-data9.data} -\pspicture(2,4) - \listplot[showpoints]{\data} - \psaxes{->}(2,4) -\endpspicture -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\section{New options for \nxLcs{listplot}} -%-------------------------------------------------------------------------------------- -By default the plot macros \Lcs{dataplot}, \Lcs{fileplot} and \Lcs{listplot} plot every -data record. There are noew additional keys -\Lkeyword{nStep}, \Lkeyword{nStart}, \Lkeyword{nEnd}, and \Lkeyword{xStep}, \Lkeyword{xStart}, -\Lkeyword{xEnd}, which allows -to plot only a selected part of the data records, e.\,g. \Lkeyword{nStep}=10. These "`n"' -options mark the number of the record to be plotted ($0,1,2,...$) and the "`x"' ones the x-values of the data records. - -The new options are only available -for the \Lcs{listplot} macro, which is not a real limitation, because all data records can be read -from a file with the \Lcs{readdata} macro (see example files or~\cite{dtk02.2:jackson.voss:plot-funktionen}): - -\begin{lstlisting}[style=syntax] -\readdata[nStep=10]{\data}{/home/voss/data/data1.data} -\end{lstlisting} -\xLcs{readdata} - -The use \Lkeyword{nStep} and \Lkeyword{xStep} options only make real sense -when also using the option \Lkeyset{plotstyle=dots}. Otherwise the -coordinates are connected by a line as usual. Also the -\Lkeyword{xStep} option needs increasing x values. Note that -\Lkeyword{nStep} can be used for \Lcs{readdata} and for -\Lcs{listplot}. If used in both macros then the effect is -multiplied, e.g. \Lcs{readdata} with \Lkeyword{nStep}=5 and -\Lcs{listplot} with \Lkeyword{nStep}=10 means, that only every -50\textsuperscript{th} data record is read and plotted. - -When both, \verb|x/yStart/End| are defined then the values are also compared with -both values. - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{nStep}, \nxLkeyword{xStep}, and \nxLkeyword{yStep}}\label{nxstep} -%-------------------------------------------------------------------------------------- - -The datafile \verb|data.data| contains $1000$ data records. The thin blue line is the plot -of all records with the plotstyle option \Lkeyval{curve}.\xLkeyword{nStep}\xLkeyword{xStep}\xLkeyword{yStep} - -\begin{LTXexample}[preset=\centering,pos=t] -\readdata{\data}{data.data} -\psset{xunit=12.5cm,yunit=0.2mm} -\begin{pspicture}(-0.080,-30)(1,270) -\pstScalePoints(1,1){1000 div}{1000 div} -\psaxes[Dx=200,dx=2.5cm,Dy=100,ticksize=0 5pt,tickstyle=inner, - subticks=10,ylabelFactor=\cdot10^3,dy=2cm](0,0)(1,250) -\listplot[nStep=50,linewidth=3pt,linecolor=red,plotstyle=dots]{\data} -\listplot[linewidth=1pt,linecolor=blue]{\data} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[preset=\centering,pos=t] -\readdata{\data}{data.data} -\psset{xunit=12.5cm,yunit=0.2mm} -\begin{pspicture}(-0.080,-30)(1,270) -\pstScalePoints(1,1){1000 div}{1000 div} -\psaxes[Dx=200,dx=2.5cm,Dy=100,ticksize=0 5pt,tickstyle=inner, - subticks=10,ylabelFactor=\cdot10^3,dy=2cm](0,0)(1,250) -\listplot[xStep=100,linewidth=2pt,linecolor=red,plotstyle=dots]{\data} -\multido{\rA=0.1+0.1}{9}{% - \psline[linecolor=black!40,linestyle=dashed](\rA,0)(\rA,250)} -\listplot[yStep=50000,linewidth=2pt,linecolor=blue,plotstyle=dots]{\data} -\multido{\nA=50+50}{5}{% - \psline[linecolor=black!40,linestyle=dashed](0,\nA)(1,\nA)} -\listplot[linewidth=0.5pt]{\data} -\end{pspicture} -\end{LTXexample} - - -\clearpage - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{nStart} and \nxLkeyword{xStart}}\label{nxstart} -%-------------------------------------------------------------------------------------- - -\begin{LTXexample}[preset=\centering,pos=t] -\readdata{\data}{data.data} -\psset{xunit=12.5cm,yunit=0.2mm} -\begin{pspicture}(-0.080,-30)(1,270) -\pstScalePoints(1,1){1000 div}{1000 div} -\psaxes[Dx=200,dx=2.5cm,Dy=100,ticksize=0 5pt,tickstyle=inner, - subticks=10,ylabelFactor=\cdot10^3,dy=2cm](0,0)(1,250) -\listplot[nStart=200,linewidth=3pt, - linecolor=blue,plotstyle=dots]{\data} -\listplot[linewidth=1pt,linecolor=blue]{\data} -\end{pspicture} -\end{LTXexample} - -\clearpage - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{nEnd} and \nxLkeyword{xEnd}}\label{nxend} -%-------------------------------------------------------------------------------------- - -\begin{LTXexample}[preset=\centering,pos=t] -\readdata{\data}{data.data} -\psset{xunit=12.5cm,yunit=0.2mm} -\begin{pspicture}(-0.080,-30)(1,270) -\pstScalePoints(1,1){1000 div}{1000 div} -\psaxes[axesstyle=frame,Dx=200,dx=2.5cm,Dy=100,ticksize=0 5pt,tickstyle=inner, - subticks=10,ylabelFactor=\cdot10^3,dy=2cm](0,0)(1,250) -\listplot[nStart=200,linewidth=3pt, - linecolor=blue]{\data} -\listplot[linewidth=1pt,linecolor=blue]{\data} -\end{pspicture} -\end{LTXexample} - - -\clearpage - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{yStart} and \nxLkeyword{yEnd}}\label{ystartend} -%-------------------------------------------------------------------------------------- - -\begin{LTXexample}[preset=\centering,pos=t] -\readdata{\data}{data.data} -\psset{xunit=12.5cm,yunit=0.2mm} -\begin{pspicture}(-0.080,-30)(1,270) -\pstScalePoints(1,1){1000 div}{1000 div} -\psaxes[axesstyle=frame,Dx=200,dx=2.5cm,Dy=100,ticksize=0 5pt,tickstyle=inner, - ylabelFactor=\cdot10^3,dy=2cm](0,0)(1,250) - \psset{linewidth=0.1pt, linestyle=dashed,linecolor=red} - \psline(0,40)(1,40) - \psline(0,175)(1,175) - \listplot[yStart=40000, yEnd=175000,linewidth=3pt,linecolor=blue,plotstyle=dots]{\data} -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{Options \nxLkeyword{plotNo}, \nxLkeyword{plotNoX}, and \nxLkeyword{plotNoMax}}\label{plotno} -%-------------------------------------------------------------------------------------- -By default the plot macros expect \verb+x|y+ data records, but -when having data files with multiple values for y, like: -\begin{lstlisting}[style=syntax] -x y1 y2 y3 y4 ... yMax -x y1 y2 y3 y4 ... yMax -... -\end{lstlisting} - -you can select the y value which should be plotted. The option \Lkeyword{plotNo} marks the plotted -value (default $1$) and the option \Lkeyword{plotNoMax} tells \LPack{pst-plot} how many $y$ values are -present. There are no real restrictions in the maximum number for \Lkeyword{plotNoMax}. - -We have the following data file: -\begin{lstlisting}[style=syntax] -[% file data.data -0 0 3.375 0.0625 -10 5.375 7.1875 4.5 -20 7.1875 8.375 6.25 -30 5.75 7.75 6.6875 -40 2.1875 5.75 5.9375 -50 -1.9375 2.1875 4.3125 -60 -5.125 -1.8125 0.875 -70 -6.4375 -5.3125 -2.6875 -80 -4.875 -7.1875 -4.875 -90 0 -7.625 -5.625 -100 5.5 -6.3125 -5.8125 -110 6.8125 -2.75 -4.75 -120 5.25 2.875 -0.75 -]% -\end{lstlisting} - -\noindent which holds data records for multiple plots (\verb+x y1 y2 y3+). This can be plotted -without any modification to the data file: - -\begin{LTXexample}[preset=\centering,pos=t] -\readdata\Data{dataMul.data} -\psset{xunit=0.1cm, yunit=0.5cm,lly=-0.5cm} -\begin{pspicture}(0,-7.5)(150,10) -\psaxes[Dx=10,Dy=2.5]{->}(0,0)(0,-7.5)(150,7.5)[$\mathbf{x}$,-90][$\mathbf{y}$,0] -\psset{linewidth=2pt,plotstyle=curve} -\listplot[linecolor=green,plotNo=1,plotNoMax=3]{\Data} -\listplot[linecolor=red,plotNo=2,plotNoMax=3]{\Data} -\listplot[linecolor=blue,plotNo=3,plotNoMax=3]{\Data} -\end{pspicture} -\end{LTXexample} - -It is also possible to select another column for the $x$-value. Suppose we have -a data base with records like \verb+x y y x y+, then it is by default a record -with one $x$ value and four possible $y$ values. We still have to define -\Lkeyword{plotNoMax}=4. However, it is possible to select the forth value as -new $x$ value by setting \Lkeyword{plotNoX=4} (it is preset to 1). -Then the forth value is taken as $x$. The example uses the the following -data set. - -\begin{lstlisting}[style=syntax] -% X1 X2 Y1 Y2 - 2 55.1500 10.35 11.26 - 31 59.7167 11.06 11.11 - 34 65.7167 11.87 10.83 - 40 62.1833 11.59 11.19 - 45 56.0500 10.74 11.50 - 47 68.2667 12.65 11.11 - 52 69.7500 13.23 11.38 - 55 76.3333 14.28 11.22 - 59 75.4000 14.69 11.69 - 62 78.6000 15.25 11.64 - 66 69.3167 14.06 12.17 - 69 77.5500 15.24 11.79 - 73 70.8833 14.52 12.29 - 75 60.6167 13.10 12.97 - 79 68.3833 14.43 12.66 - 82 56.6833 12.05 12.75 - 87 95.1333 21.10 13.31 -\end{lstlisting} - - -\begin{filecontents*}{demo.txt} -% X1 X2 Y1 Y2 - 2 55.1500 10.35 11.26 - 31 59.7167 11.06 11.11 - 34 65.7167 11.87 10.83 - 40 62.1833 11.59 11.19 - 45 56.0500 10.74 11.50 - 47 68.2667 12.65 11.11 - 52 69.7500 13.23 11.38 - 55 76.3333 14.28 11.22 - 59 75.4000 14.69 11.69 - 62 78.6000 15.25 11.64 - 66 69.3167 14.06 12.17 - 69 77.5500 15.24 11.79 - 73 70.8833 14.52 12.29 - 75 60.6167 13.10 12.97 - 79 68.3833 14.43 12.66 - 82 56.6833 12.05 12.75 - 87 95.1333 21.10 13.31 -\end{filecontents*} - - -\begin{LTXexample}[pos=t,preset=\centering] -\readdata{\data}{demo.txt} -\psset{xAxisLabel={},yAxisLabel={},llx=-5mm} -\begin{psgraph}[axesstyle=frame,Dy=5,Dx=10,ticksize=5pt 0](0,0)(100,25){10cm}{8cm} -\psset{dotstyle=square,dotscale=1.5,linewidth=1.5pt} -\listplot[plotNoMax=3,plotNo=2,linecolor=red,plotstyle=dots]{\data} -\listplot[plotNoMax=3,plotNoX=2,plotNo=3,linecolor=blue,plotstyle=dots]{\data} -\end{psgraph} -\end{LTXexample} - - - -\clearpage - - -%-------------------------------------------------------------------------------------- -\subsection{Option \nxLkeyword{changeOrder}}\label{changeorder} -%-------------------------------------------------------------------------------------- -It is only possible to fill the region between two listplots with -\Lcs{pscustom} if one of them has the values in reverse order. -Otherwise we do not get a closed path. With the option -\Lkeyword{ChangeOrder} the values are used in reverse order: - -\begin{LTXexample}[pos=t,preset=\centering] -\begin{filecontents*}{test.data} - 0 3 8 - 2 4 7 - 5 5 5.5 - 7 3.5 5 - 10 2 9 -\end{filecontents*} -\psset{lly=-.5cm} -\begin{psgraph}[axesstyle=frame,ticklinestyle=dotted,ticksize=0 10](0,0)(10,10){4in}{2in}% -\readdata{\data}{test.data}% -\pscustom[fillstyle=solid,fillcolor=blue!40]{% - \listplot[plotNo=2,plotNoMax=2]{\data}% - \listplot[plotNo=1,plotNoMax=2,ChangeOrder]{\data}} -\end{psgraph} -\end{LTXexample} - -\clearpage -\section{New plot styles} - -%-------------------------------------------------------------------------------------- -\subsection{Plot style \nxLkeyword{colordot} and option \nxLkeyword{Hue}}\label{colordot} -%-------------------------------------------------------------------------------------- -The plotted dots can be colored with the \Index{HSB} color model, where \Index{Hue} -is set by an angle (0\ldots360) and the values of \Index{Saturation} and \Index{Brightnes} -are set by the relative $y$ value of the data records. The default value for -\Lkeyword{Hue} is 180. - -\readdata{\data}{data3.data} -\psset{xunit=10,yunit=0.02} -\begin{pspicture}(0,-50)(1.1,400) - \psaxes[dy=1cm,Dy=50]{->}(0,0)(0,-50)(1.1,400) - \listplot[Hue=280,plotstyle=colordots]{\data} -\end{pspicture} - -\psset{unit=1cm} - -\begin{lstlisting} -\readdata{\data}{data3.data} -\psset{xunit=10,yunit=0.02} -\begin{pspicture}(0,-50)(1.1,400) - \psaxes[dy=1cm,Dy=50]{->}(0,0)(0,-50)(1.1,400) - \listplot[?\ON?Hue=280?\OFF?,plotstyle=?\ON?colordots?\OFF?]{\data} -\end{pspicture} -\end{lstlisting} - -\clearpage -%-------------------------------------------------------------------------------------- -\subsection{Plot style \nxLkeyword{bar} and option \nxLkeyword{barwidth}}\label{barwidth} -%-------------------------------------------------------------------------------------- -This option allows you to draw bars for the data records. The -width of the bars is controlled by the option \Lkeyword{barwidth}, -which is set by default to value of \verb+0.25cm+, which is the -total width. - -\def\barData{ -0 0.03 -1 0.11 -2 0.28 -3 0.84 -4 6.70 -5 8.55 -6 8.77 -7 11.09 -8 7.18 -9 6.20 -10 5.78 -11 4.19 -12 2.37 -13 2.26 -14 1.68 -15 1.03 -16 1.37 -17 1.34 -18 0.92 -19 0.67 -20 0.87 -21 1.20 -22 1.98 -23 3.99 -24 5.08 -25 5.17 -26 5.78 -27 4.44 -28 0.11 -} - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{xunit=.44cm,yunit=.3cm} -\begin{pspicture}(-2,-3)(29,13) - \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2,xticksize=-6pt 0, - ylabelFactor={\,\%}]{-}(29,12) - \listplot[shadow=true,linecolor=blue,plotstyle=bar,barwidth=0.3cm, - fillcolor=red,fillstyle=solid]{\barData} - \rput{90}(-3,6.25){Amount} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{xunit=.44cm,yunit=.3cm} -\begin{pspicture}(-2,-3)(29,13) - \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2,ticksize=-4pt 0, - ylabelFactor={\,\%}]{-}(29,12) - \listplot[linecolor=blue,plotstyle=bar,barwidth=0.3cm, - fillcolor=red,fillstyle=crosshatch]{\barData} - \rput{90}(-3,6.25){Amount} -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[preset=\centering,pos=t] -\psset{xunit=.44cm,yunit=.3cm} -\begin{pspicture}(-2,-3)(29,13) - \psaxes[axesstyle=axes,Ox=1466,Oy=0,Dx=4,Dy=2,ticksize=-4pt 0, - ylabelFactor={\,\%}]{-}(29,12) - \listplot[linecolor=blue,plotstyle=bar,barwidth=0.3cm, - fillcolor=red,fillstyle=vlines]{\barData} - \listplot[showpoints=true]{\barData} - \rput{90}(-3,6.25){Amount} -\end{pspicture} -\end{LTXexample} - - -\subsubsection{Interrupted bar plot} - -The new keywords \Lkeyword{interrupt} takes three comma separated values: -the value, when the interrupted $y$ axis is interruptes, the separation for the -drawn tilde and the value for the inrrupted section, e.g. \verb|interrupt={15,1,30}|. - - -\psset{xunit=.44cm,yunit=.3cm} -\begin{pspicture}(-2,-3)(29,32) -\psaxes[axesstyle=axes,ticksize=-4pt 0,Dy=2,Dx=2](29,15) -\rput(0,15.4){\textbf{\huge$\approx$}} -\rput(0,16){\psaxes[xAxis=false,ticksize=-4pt 0, - Dy=2,Oy=46,Dx=2](29,15)} -\psset{interrupt={15,1,30}} -\listplot[linecolor=red,plotstyle=bar,barwidth=0.3cm, - fillcolor=red!30,fillstyle=solid]{ -0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 10 2 -11 1 12 50 13 55 14 14 15 7 16 9 17 7 18 4 -19 2 20 3 21 0 22 0 23 0 24 1 25 2 % 1st example -} -\listplot[linecolor=blue,plotstyle=bar,barwidth=0.3cm, - fillcolor=blue!30,fillstyle=solid,opacity=0.5]{ -0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 3 10 10 -11 11 12 8 13 61 14 10 15 13 16 3 17 1 18 0 -19 0 20 2 21 0 22 0 23 0 24 0 25 0 % 2nd exa -} -\listplot[linecolor=green,plotstyle=bar,barwidth=0.3cm, - fillcolor=green!30,fillstyle=solid,opacity=0.5]{ -0 0 1 0 2 0 3 0 4 1 5 0 6 0 7 0 8 0 9 3 10 4 -11 11 12 59 13 11 14 12 15 7 16 3 17 1 18 0 -19 0 20 2 21 0 22 1 23 0 24 0 25 0 % 3rd exa -} -\end{pspicture} - -\begin{lstlisting} -\psset{xunit=.44cm,yunit=.3cm} -\begin{pspicture}(-2,-3)(29,32) -\psaxes[axesstyle=axes,ticksize=-4pt 0,Dy=2,Dx=2](29,15) -\rput(0,15.4){\textbf{\huge$\approx$}} -\rput(0,16){\psaxes[xAxis=false,ticksize=-4pt 0, - Dy=2,Oy=46,Dx=2](29,15)} -\psset{interrupt={15,1,30}} -\listplot[linecolor=red,plotstyle=bar,barwidth=0.3cm, - fillcolor=red!30,fillstyle=solid]{ -0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 10 2 -11 1 12 50 13 55 14 14 15 7 16 9 17 7 18 4 -19 2 20 3 21 0 22 0 23 0 24 1 25 2 % 1st example -} -\listplot[linecolor=blue,plotstyle=bar,barwidth=0.3cm, - fillcolor=blue!30,fillstyle=solid,opacity=0.5]{ -0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 3 10 10 -11 11 12 8 13 61 14 10 15 13 16 3 17 1 18 0 -19 0 20 2 21 0 22 0 23 0 24 0 25 0 % 2nd exa -} -\listplot[linecolor=green,plotstyle=bar,barwidth=0.3cm, - fillcolor=green!30,fillstyle=solid,opacity=0.5]{ -0 0 1 0 2 0 3 0 4 1 5 0 6 0 7 0 8 0 9 3 10 4 -11 11 12 59 13 11 14 12 15 7 16 3 17 1 18 0 -19 0 20 2 21 0 22 1 23 0 24 0 25 0 % 3rd exa -} -\end{pspicture} -\end{lstlisting} - -\psset{unit=1cm} - - -%-------------------------------------------------------------------------------------- -\subsection{Plot style \nxLkeyword{ybar}}\label{options:ybar} -%-------------------------------------------------------------------------------------- -With the setting \Lkeyset{plotstyle=ybar} the graph is set with horizontal bars instead -of vertical. For \Lkeyword{yLabels} see section~\ref{yLabels}. -. -\begin{center} -\savedata{\data}[1 1 1 2 1 3 2 4 3 5 4 6 4 7 6 8 6 9 7 10 25 11 30 12 32 13] - -\psset{llx=-1.5cm,lly=-1.5cm,xAxisLabel=\textbf{Frequency of Winning the Final}, - xAxisLabelPos={c,-1cm},yAxisLabel=,yLabels={,Kerry,Laois,London,Waterford,Clare,Offaly, - Galway,Wexford,Dublin,Limerick,Tipperary,Cork,Kilkenny}} -\begin{psgraph}[axesstyle=frame,labels=x,ticksize=-4pt 0,Dx=5](0,0)(35,14){10cm}{7cm} - \listplot[plotstyle=ybar,fillcolor=blue!20,linecolor=blue,barwidth=4mm,fillstyle=solid]{\data} - \listplot[plotstyle=xvalues,labelsep=5pt]{\data} -\end{psgraph} -\end{center} - -\begin{lstlisting} -\savedata{\data}[1 1 1 2 1 3 2 4 3 5 4 6 4 7 6 8 6 9 7 10 25 11 30 12 32 13] - -\psset{llx=-1.5cm,lly=-1.5cm,xAxisLabel=\textbf{Frequency of Winning the Final}, - xAxisLabelPos={c,-1cm},yAxisLabel=,yLabels={,Kerry,Laois,London,Waterford,Clare,Offaly, - Galway,Wexford,Dublin,Limerick,Tipperary,Cork,Kilkenny}} -\begin{psgraph}[axesstyle=frame,labels=x,ticksize=-4pt 0,Dx=5](0,0)(35,14){10cm}{7cm} - \listplot[plotstyle=ybar,fillcolor=blue!20,linecolor=blue,barwidth=4mm,fillstyle=solid]{\data} - \listplot[plotstyle=xvalues,labelsep=5pt]{\data} -\end{psgraph} -\end{lstlisting} - -%-------------------------------------------------------------------------------------- -\subsection{Plotstyle \nxLkeyval{LSM}}\label{LSM} -%-------------------------------------------------------------------------------------- -With the setting \Lkeyset{plotstyle=LSM} (\textbf{L}east \textbf{S}quare \textbf{Method})\index{Least square method} -the data records are not printed in the usual way as dots or a line, -the \Lcs{listplot} macro calculates the values for a line $y=v\cdot x+u$ which fits -best all data records. - -\bgroup -\centering -\begin{filecontents*}{LSM.data} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 -\end{filecontents*} -\psset{lly=-.5cm} -\readdata{\data}{LSM.data} -\begin{psgraph}[arrows=->](0,0)(0,0)(8,8){.5\textwidth}{!} - \listplot[plotstyle=dots]{\data} - \listplot[plotstyle=LSM,linecolor=red]{\data} -\end{psgraph} -\egroup - - -\begin{lstlisting} -\begin{filecontents*}{LSM.data} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 -\end{filecontents*} -\psset{lly=-.5cm} -\readdata{\data}{LSM.data} -\begin{psgraph}[arrows=->](0,0)(0,0)(8,8){.5\textwidth}{!} - \listplot[plotstyle=dots]{\data} - \listplot[?\ON?plotstyle?\OFF?=?\ON?LSM?\OFF?,linecolor=red]{\data} -\end{psgraph} -\end{lstlisting} - - -The macro looks for the lowest and biggest x-value and draws the -line for this interval. It is possible to pass other values to the -macro by setting the \Lkeyword{xStart} and/or \Lkeyword{xEnd} options. -They are preset with an empty value \verb+{}+. - -\bgroup -\centering -\begin{filecontents*}{LSM.data} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 -\end{filecontents*} -\readdata{\data}{LSM.data} -\psset{lly=-1.75cm} -\begin{psgraph}[arrows=->](0,0)(0,0)(8,8){.5\textwidth}{!} - \listplot[plotstyle=dots]{\data} - \listplot[PstDebug=1,plotstyle=LSM,xStart=-0.5,xEnd=8.5,linecolor=red]{\data} -\end{psgraph} -\egroup - -\begin{lstlisting} -\begin{filecontents*}{LSM.data} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 -\end{filecontents*} -\readdata{\data}{LSM.data} -\psset{lly=-1.75cm} -\begin{psgraph}[arrows=->](0,0)(0,0)(8,8){.5\textwidth}{!} - \listplot[plotstyle=dots]{\data} - \listplot[?\ON?PstDebug?\OFF?,plotstyle=?\ON?LSM?\OFF?,?\ON?xStart?\OFF?=-0.5,?\ON?xEnd?\OFF?=8.5,linecolor=red]{\data} -\end{psgraph} -\end{lstlisting} - - -With \Lkeyword{PstDebug} one gets the equation $y=v\cdot x+u$ -printed, beginning at the position (0|-50pt). This cannot be -changed, because it is only for some kind of debugging. Pay -attention for the correct \Lkeyword{xStart} and \Lkeyword{xEnd} values, -when you use the \Lcs{pstScalePoints} Macro. In the following -example we use an x-interval from 0 to 3 to plot the values; first -we subtract 0.003 from all x-values and then scale them with -10000. This is not taken into account for the \Lkeyword{xStart} and -\Lkeyword{xEnd} values. - - -\bgroup -\centering -\begin{filecontents*}{LSM.data} -0.003298697 1.397785583 -0.003193358 1.615489564 -0.003094538 2.044019006 -0.003001651 2.259240127 -\end{filecontents*} -\readdata{\data}{LSM.data} -\pstScalePoints(10000,1){ 0.003 sub }{} -\psset{lly=-1.75cm} -\psgraph[arrows=->,Ox=0.0030,Dx=0.0001,dx=\psxunit](0,0)(3.2,3){10cm}{5cm} - \listplot[showpoints=true,linewidth=1pt,linecolor=blue]{\data} - \listplot[PstDebug=1,plotstyle=LSM,linewidth=0.1pt,linestyle=dashed,% - xStart=-0.25,xEnd=3.3]{\data} -\endpsgraph -\egroup - -\begin{lstlisting} -\begin{filecontents*}{LSM.data} -0.003298697 1.397785583 -0.003193358 1.615489564 -0.003094538 2.044019006 -0.003001651 2.259240127 -\end{filecontents*} -\readdata{\data}{LSM.data} -?\ON?\pstScalePoints?\OFF?(10000,1){ 0.003 sub }{} -\psset{lly=-1.75cm} -\psgraph[arrows=->,Ox=0.0030,Dx=0.0001,dx=\psxunit](0,0)(3.2,3){10cm}{5cm} - \listplot[showpoints=true,linewidth=1pt,linecolor=blue]{\data} - \listplot[PstDebug=1,plotstyle=?\ON?LSM?\OFF?,linewidth=0.1pt,linestyle=dashed,% - xStart=-0.25,xEnd=3.3]{\data} -\endpsgraph -\end{lstlisting} - -\clearpage -\subsection{Plotstyles \nxLkeyval{values} and \nxLkeyval{values*}}\label{values} - -Instead of plotting the curve with the setting \Lkeyset{plotstyle=values} -the $y$-values are printed at the current point. - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-.5)(3.5,9.5) - \psaxes{->}(0,0)(-3,0)(3,9) - \psplot{-3}{3}{x dup mul } - \psplot[plotstyle=values]{-3}{3}{x dup mul } -\end{pspicture} -\end{LTXexample} - -The possible optional arguments are \Lkeyword{PSfont},\Lkeyword{valuewidth}, -\Lkeyword{fontscale}, and \Lkeyword{decimals}. The default setting is: -\begin{Xverbatim}{} -\psset[pst-plot]{PSfont=Times-Roman,fontscale=10,valuewidth=10,decimals=-1} -\end{Xverbatim} -The optional argument \Lkeyword{rot} from the base package \LPack{pstricks} is also taken into account. -With the star version \Lkeyset{plotstyle=values*} the box of the printed value isn't transparent, -everything behind this box is not seen. - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-3.5,-.5)(3.5,9.5) - \psaxes{->}(0,0)(-3,0)(3,9) - \psplot{-3}{3}{x dup mul } - \psplot[plotstyle=values*]{-3}{3}{x dup mul } -\end{pspicture} -\end{LTXexample} - - -\subsection{Plotstyles \nxLkeyval{xvalues} and \nxLkeyval{xvalues*}}\label{xvalues} -This is similiar to the options \Lkeyval{values}, except that it plots the $x$-values -instead of the $y$-values. This maybe useful when also using the plotstyle \Lkeyval{ybar} -(see~Section\vref{options:ybar}). - -\medskip -\begin{LTXexample}[width=7cm] -\begin{pspicture}(-2.5,-.5)(2.5,5.5) - \psaxes{->}(0,0)(-2,0)(2,5.5) - \psplot{-2}{2}{x dup mul } - \psplot[plotstyle=xvalues, - plotpoints=10]{-2}{2}{x dup mul } -\end{pspicture} -\end{LTXexample} - - - -\clearpage -%-------------------------------------------------------------------------------------- -\section{Polar plots}\label{polarplots} -%-------------------------------------------------------------------------------------- - -With the option \Lkeyword{polarplot}=\false|\true\ it is possible to use \Lcs{psplot} -in polar mode: -\begin{BDef} -\Lcs{psplot}\OptArg{polarplot=true,...}\Largb{<start angle>}\Largb{<end angle>}\%\\ - \OptArg{PS command}\Largb{<r(alpha)>} -\end{BDef} - -The equation in PostScript code is interpreted as a function $r=f(\alpha)$, e.g. for the -circle with radius 1 as $r=\sqrt{\sin^2x+\cos^2x}$, or $r=a*\dfrac{sin(x)*cos(x)}{(sin(x)^3+cos(x)^3)}$ -for the following examples: - -\begin{lstlisting}[style=syntax] -x sin dup mul x cos dup mul add sqrt -\end{lstlisting} - - -\medskip -\begin{LTXexample}[pos=t] -\psset{plotpoints=200,unit=0.75} -\begin{pspicture*}(-5,-5)(5.1,5.1) - \psaxes[arrowlength=1.75,ticksize=2pt,labelFontSize=\scriptstyle, - linewidth=0.2mm]{->}(0,0)(-4.99,-4.99)(5,5)[x,-90][y,180] - \rput[Br](-.15,-.35){$0$} \psset{linewidth=.35mm,polarplot} - \psplot[linecolor=red]{140}{310}{3 neg x sin mul x cos mul x sin 3 exp x cos 3 exp add div} - \psplot[linecolor=cyan]{140}{310}{6 x sin mul x cos mul x sin 3 exp x cos 3 exp add div} - \psplot[linecolor=blue,algebraic=true]{2.44}{5.41}{-8*sin(x)*cos(x)/(sin(x)^3+cos(x)^3)} -\end{pspicture*} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[pos=t] -\psset{unit=0.5cm} -\begin{pspicture}(-6,-6)(6,6) -\psaxes[axesstyle=polar,labelFontSize=\scriptstyle,linewidth=0.2mm]{->}(6,6) -\psset{linewidth=3pt,polarplot,plotpoints=500,plotstyle=curve} -\psclip{\pscircle[linestyle=none]{6}} - \psplot[linecolor=red]{140}{310}{3 neg x sin mul x cos mul x sin 3 exp x cos 3 exp add div} - \psplot[linecolor=cyan]{140}{310}{6 x sin mul x cos mul x sin 3 exp x cos 3 exp add div} - \psplot[linecolor=blue,algebraic=true]{2.44}{5.41}{-8*sin(x)*cos(x)/(sin(x)^3+cos(x)^3)} -\endpsclip -\end{pspicture} -\end{LTXexample} - - -\medskip -\begin{LTXexample}[width=5cm] -\psset{plotpoints=200,unit=1} -\begin{pspicture}(-2.5,-2.5)(2.5,2.5)% Ulrich Dirr - \psaxes[arrowlength=1.75,% - ticksize=2pt,linewidth=0.17mm]{->}% - (0,0)(-2.5,-2.5)(2.5,2.5)[$x$,-90][$y$,180] - \rput[Br](-.15,-.35){$0$} - \psset{linewidth=.35mm,plotstyle=curve,polarplot=true} - \psplot[linecolor=red]{0}{360}{x cos 2 mul x sin mul} - \psplot[linecolor=green]{0}{360}{x cos 3 mul x sin mul} - \psplot[linecolor=blue]{0}{360}{x cos 4 mul x sin mul} -\end{pspicture} -\end{LTXexample} - - - -\medskip -\begin{LTXexample}[width=8cm] -\psset{plotpoints=200,unit=0.5} -\begin{pspicture}(-8.5,-8.5)(9,9)% Ulrich Dirr -\psaxes[Dx=2,dx=2,Dy=2,dy=2,arrowlength=1.75, - ticksize=2pt,linewidth=0.17mm]{->}(0,0)(-8.5,-8.5)(9,9) -\rput[Br](9,-.7){$x$} -\rput[tr](-.3,9){$y$} -\rput[Br](-.3,-.7){$0$} -% -\psset{linewidth=.35mm,plotstyle=curve,polarplot=true} -\psplot[linecolor=blue]{0}{720}{8 2.5 x mul sin mul} -\end{pspicture} -\end{LTXexample} - - -\clearpage -\section{New macros} -\subsection{\nxLcs{psCoordinates}} - -\begin{BDef} - \Lcs{psCoordinates}\OptArgs\Largr{\CAny} -\end{BDef} - - -\medskip -\begin{LTXexample}[pos=t] -\begin{pspicture}(-5mm,-1cm)(10,10) - \psaxes{->}(10,10) - \psplot[algebraic,linecolor=red,linewidth=2pt]{0}{10}{x^2/10} - \psCoordinates(*2 {x^2/10}) - \psCoordinates[linecolor=blue,linestyle=dashed, - dotstyle=square,dotscale=2](*4 {x^2/10}) - \psCoordinates[arrowscale=1.5,arrows=->](*6 {x^2/10}) - \psCoordinates[arrows=->,linecolor=blue,linestyle=dotted, - dotstyle=triangle,dotscale=2](*8 {x^2/10}) - \psCoordinates[dotscale=2](*9 {x^2/10}) -\end{pspicture} -\end{LTXexample} - -\clearpage -\subsection{\nxLcs{psFixpoint}} -\begin{BDef} - \Lcs{psFixpoint}\OptArgs\Largb{$x_0$}\Largb{$f(x)$}\Largb{$n$} -\end{BDef} - -$x_0$ is the start value of the iteration, $f(x)$ the function, which can either be in -postfix or algebraic notation, for the latter it needs the optional argument \Lkeyword{algebraic}. -The number of the iteration is given by $n$. - -\medskip -\begin{LTXexample}[pos=t] -\begin{pspicture}[algebraic](-5mm,-1cm)(10,10) - \psaxes{->}(10,10) - \psplot[linecolor=red,linewidth=2pt]{0}{10}{sqrt(5*x)} - \psline(10,10) - \psFixpoint[linecolor=blue]{9.5}{sqrt(5*x)}{20} - \psFixpoint[linestyle=dashed]{1}{sqrt(5*x)}{20} -\end{pspicture} -\end{LTXexample} - -\clearpage -\subsection{\nxLcs{psNewton}} -\begin{BDef} - \Lcs{psNewton}\OptArgs\Largb{$x_0$}\Largb{$f(x)$}\OptArg*{\Largs{f'(x)}}\Largb{$n$} -\end{BDef} - -If the optional derivation of the function $f(x)$ is missing, then the macro itself -calculates the derivation with an interval of $\pm0.01$. It can be changed by setting -the optional argument \Lkeyword{VarStepEpsilon} to another value. If the derivation -is also given as a function, it is used without any check for the values. - -\medskip -\begin{LTXexample}[pos=t] -\def\f{1/5*x^3-x^2} -\psset{plotpoints=2000,algebraic} -% -\begin{pspicture*}[showgrid](-5.5,-8.5)(7.5,3.5) -\psaxes{->}(0,0)(-5,-8)(7,3)[$x$,270][$y$,0] -\psplot[linewidth=2pt,linecolor=blue]{-5}{8}{\f} -\uput[90](2.95,0){$x_0$}\uput[90](3.9,0){$x_0$} -\psNewton[linecolor=red,linewidth=0.5pt]{2.95}{\f}{10} -\psNewton[showpoints,linestyle=dashed]{3.9}{\f}{8} -\end{pspicture*} -\end{LTXexample} - - - -$x_0$ is the start value of the iteration, $f(x)$ the function, which can either be in -postfix or algebraic notation, for the latter it needs the optional argument \Lkeyword{algebraic}. -The number of the iteration is given by $n$. All defined plotstyles can be used, but there -maybe PostScript errors for \Lkeyset{plotstyle=values} if the number of steps is too -big. In such a case decrease the number of steps. - -\medskip -\begin{LTXexample}[pos=t] -\def\f{-(1/192)*x^3-(1/12)*x-(1/192)*Pi*x^2-(1/12)*Pi+2} -\def\fDerive{-(3/192)*x^2-(1/12)-(2/192)*Pi*x} -\psset{plotpoints=2000,unit=0.5,algebraic} -% -\begin{pspicture*}[showgrid](-16,-5)(8.5,18.5) -\psaxes[Dx=6,Dy=4]{->}(0,0)(-16,-5)(8,18)[$x$,270][$y$,0] -\psplot[algebraic,linewidth=2pt,linecolor=blue]{-20}{8}{\f} -\psxTick(-15){x_0} -\psNewton[linecolor=red,linewidth=0.5pt]{-15}{\f}{12} -\psNewton[linecolor=red,linewidth=0.5pt,plotstyle=xvalues,showDerivation=false]{-15}{\f}{6} -% -%-15, -9.567466932, -4.903526029, 3.026073041, 6.688396612, 5.580230655 (Made by Maple) -\end{pspicture*} -\end{LTXexample} - -\clearpage -\section{List of all optional arguments for \texttt{pst-plot}} - -\xkvview{family=pst-plot,columns={key,type,default}} - - -\nocite{*} -\bgroup -\RaggedRight -\bibliographystyle{plain} -\bibliography{pst-plot-doc} -\egroup - -\printindex - - -\end{document} |