Tuesday, May 22, 2012

Bar plots

In package pstricks-add (Maybe in a new version of pstrick this plotstyle have been moved to package pstrick) there is a new plotstyle named bar defined. Use this plotstyle a bar chart can be plotted easily. The parameters closely related to this plotstyle includes "barwidth","fillstyle" and so on. The usage of this plotstyle is very simple. Let us learn it by an example.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
  \begin{psgraph}(-1,0)(6,5){5cm}{5cm}
    \savedata{\mydata}[{0,1},{1,3},
      {2,2}{3,4},{4,1},{5,2}]
    \dataplot[linecolor=blue,plotstyle=bar,
      barwidth=0.5cm,fillcolor=red,
      fillstyle= solid]{\mydata}
  \end{psgraph}
\end{document} 

Fig.1 Bar plot using pstricks
Files Download: tex ps pdf

Sunday, April 8, 2012

Parametric plots

Besides the usual Cartesian coordinate plots and polar plots, Pstricks also can realize parametric plots. The command is "\psparametricplot[options]{t0}{t1}{x(t) y(t)}". "t0" and "t1" are the begin and end value of variable t. "x(t)" and "y(t)" are interpreted as the parametric plot functions.

Now we come to practice on this command.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\psset{unit=3cm}
\begin{document}
  \psset{plotpoints=500}
  \begin{psgraph}(-1,-1)(1,1){5cm}{5cm}
    \psparametricplot{0}{360}
    {2 t mul sin 3 t mul cos}
    %sin(2t),cos(3t)
  \end{psgraph}
\end{document}
Fig.1 parametric plots in pstricks

Files Download: tex ps pdf

Tuesday, March 27, 2012

Plot in polar coordinate --- polarplot

With the option "polarplot=true", it is possible to use command "\psplot" to create a polar plot. The syntax is the same as usual --- "\psplot[polarplot=true,...]{x0}{x1}{function}" where "x0" and "x1" are the start and end angle. "function" is interpreted as a function r=f(theta) in the polar plotting. So if a circle with radius 1 is to be plotted, command "\psplot[polarplot=true]{0}{360}{1}" can be used.
Now we come to draw a cardioid. The function of a cardioid in polar coordinate reads "r=a(1+sin(x))". And we take a=1.5.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
  \psset{plotpoints=500}
  \begin{psgraph}{->}(0,0)(-0.5,-2)(3.5,2.5){5cm}{5cm}
    \psplot[polarplot=true]{0}{360}
      {x cos 1 add 1.5 mul}
  \end{psgraph}
\end{document}

Fig.1 Plot in polar coordinate --- cardioid.

The axesstyle can also be set to polar. The only thing need to do is setting "axesstyle=polar". This time we use a three-leaved rose curve (r=a*sin(3x),a=3.5) to shown it.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
\psset{plotpoints=500}
\begin{pspicture}(-4,-4)(4,4)
  \psaxes[axesstyle=polar,xAxisLabel=some,
    subticks=2,tickcolor=red,tickwidth=1pt,
    subtickcolor=green]{->}(0,0)(-4,4)(4,4)
  \psplot[polarplot=true,linewidth=2pt,
    linecolor=blue]{0}{360}
    {3 x mul sin 3.5 mul}
\end{pspicture}
\end{document}

Fig.2 Plot in polar coordinate — three leaved rose curve.
 
Files Download: tex ps pdf 

Sunday, February 26, 2012

Pstricks defined plotting suitable environment --- psgraph

Except allocating spaces for the pstricks elements just as what pspicture does, this new environment also does the scaling and draws the axes. It means that the axes drawing and transformation from physical coordinate to mathematical coordinate will be done automatically. The syntax is:

\begin{psgraph}[options]{arrowstyle}%
  (xorigin,yorigin)(xmin,ymin)(xmax,ymax){width}{height}
...
\end{psgraph}

where the options are similar to those of "\psaxes" macro. "arrowstyle" controls the arrwostyle of axes. "(xorigin,yorigin)", "(xmin,ymin)" and "(xmax,ymax)" define the coordinate system. "width" and "height" determine the physical width and height of the graph. Now we show the advantage of this new environment by the following example.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
  \psset{
    axesstyle=frame,ysubticks=2,
    xsubticks=4,subticksize=0.5,
    subtickcolor=black,xAxisLabel=Time(s),
    xAxisLabelPos={c,-1cm},
    yAxisLabel=Voltage(mV),
    yAxisLabelPos={-1cm,c}
    }
  \begin{psgraph}[Dx=2,Dy=10,Ox=-2,Oy=-10]
    {->}(-2,-10)(6,75){8cm}{5cm}
    \psplot[linecolor=red]{-2}{6}{2 x exp}
    \psplot[plotpoints=500,linecolor=blue]
      {-2}{6}{2 x exp 500 x mul sin add}
    \rput(-1.5,65){\psline[linecolor=red]
      (0,0)(0.75cm,0)}
    \rput[l](-0.5,65){Original Theory}
    \rput(-1.5,55){\psline[linecolor=blue]
      (0,0)(0.75cm,0)}
    \rput[l](-0.5,55){Improved Theory}
  \end{psgraph}
\end{document} 

Fig.1 Pstricks defined plotting suitable environment --- psgraph

Isn't it more convinient than pspicture?

Downloads: tex ps pdf

Saturday, February 4, 2012

More options on pstricks plotting (2)

When a Logarithmic scale graph is plot, "x(y)logBase=num|empty", and "logLines=none|x|y|all" are useful. The first one controls the logBse of corresponding axes. The later one controls the log grid line.

Let us plot a logarithmic scale graph to shown how these options are used.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
  \begin{pspicture}(0,0)(6,5)
  \psaxes[axesstyle=frame,ylogBase=10,
    subticks=5,logLines=y](0,0)(6,5)
  \psplot[linecolor=red]{0}{5}{x}
  \psplot[linecolor=blue,linestyle=dotted,
    linewidth=1.5pt,dotsep=1pt]
    {0}{6}{0.5 x mul}
  \psplot[linecolor=green,linestyle=dashed]
    {1}{6}{x log 4 mul}
  \rput(3.5,4.25){\color{red}$y=10^{x}$}
  \rput(3,2.25){\color{green}$y=x^{4}$}
  \rput(3.5,1.25){\color{blue}$y=10^{x/2}$}
  \rput(3,-0.75){$x$}
  \rput(-1,2.5){$y$}
  \end{pspicture}
\end{document}

Fig.1 Plotting Logarithmic scale graph using Pstricks.

Options "nStep, nStart, nEnd, xStep, XStart, xEnd, yStart, yEnd" controls the plot range.

By default the plot macros expect x|y data records, but when data files contains more than one y value, like:
x y1 y2 ... yMax
x y1 y2 ... yMax
...
one can select the column to be plotted using "plotNo" and "PlotNoMax". "plotNo=num" tells pst-plot to plot the num-th y-column. "plotNoMax" tells pst-plot how many y-column are present.

Files: tex ps pdf

Friday, January 6, 2012

More options on pstricks plotting (1)

In package pst-plot there are only some basic options for a plot. To control the appearance of a plot more finely a new package called pstricks-add should be used.(In the new version of pst-plot, the options are greatly flourished, and you may also find these options in pst-plot.) In this package a great amount of new options have been introduced. In this posts only some of them will be covered, and to get a whole list of these options you may refer to the official document.

We know that by default the function of "\psplot" should be written in postscript code. And it is hard for a fresh man to understand the meaning of a long line postscript mathematical expression. With package "pstricks-add", you may get rid of the unfriendly postscript codes. Setting "algebraic=true", common algebraic notations can be used. For example you instead of using "x cos x 2 exp mul", you can write it "cos(x)*x^2".

To change the font size of the labels "labelFontSize" may be used. You can set "labelFontSize = \footnotesize", so that the font size of the labels will be smaller.

There are some options used to control the ticks and subticks. "subticks=num" set num subtics between two main ticks. "(x)(y)(sub)ticklinestyle", "(x)(y)(sub)tickcolor", "(x)(y)(sub)tickwidth", and "(x)(y)(sub)ticksize" control the linestyle, color, width and size of corresponding ticks.

There is an example on these options.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-plot}
\usepackage{pstricks-add}
\begin{document}
  \psset{yunit=0.2cm,xunit=0.5cm}
  \begin{pspicture}(-5,0)(5,25)
    \psaxes[linecolor=blue,axesstyle=frame,
      tickstyle=bottom,Dx=2,Dy=5,
      xsubticks=4,ysubticks=5,
      tickcolor=blue,subtickcolor=cyan,
      subticksize=0.5,ticksize=2mm,
      tickwidth=1.5pt,subtickwidth=0.75pt,
      ](-5,0)(5,25)
    \psset{algebraic=true}
    \psplot[linecolor=red]{-5}{5}{0.9*x^2}
  \end{pspicture}
\end{document} 

Fig.1 More options on Pstricks plotting
Files Download: tex ps pdf

Wednesday, December 28, 2011

How to plot using pstricks(3) --- plot a data file

The second data plotting command is "\dataplot[parameters]{command}".

Before you use "\dataplot", you have to read the data in using either command "\savedata {command} [data]" or "\readdata {command} [datafile]". At this time someone may ask "dataplot have to take two steps to finish the thing which fileplot takes only one step. Is there the necessity of its existance?" The answer is "yes". Because if you reuse the data, the combination of "\readdata" and "\dataplot" is much faster as the data file is read only one time.


Now let us come to an example of "\dataplot".

\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-plot}
\begin{document}
  \psset{xunit=2cm,yunit=1.5cm}
  \begin{pspicture}(-1.25,-1)(3.25,1.25)
    \savedata{\mydatasinexp}%
[{0.,0.},{0.05,0.456044},{0.1,0.761394},
{0.15,0.858552},{0.2,0.74447},{0.25,0.466091},
{0.3,0.104544},{0.35,-0.247193},{0.4,-0.5073},
{0.45,-0.623301},{0.5,-0.581617},{0.55,-0.407061},
{0.6,-0.153346},{0.65,0.112302},{0.7,0.32625},
{0.75,0.44308},{0.8,0.444547},{0.85,0.341285},
{0.9,0.167555},{0.95,-0.029064},{1.,-0.200134},
{1.05,-0.307839},{1.1,-0.332868},{1.15,-0.2772},
{1.2,-0.161613},{1.25,-0.0190015},{1.3,0.114509},
{1.35,0.208373},{1.4,0.244281},{1.45,0.219299},
{1.5,0.145099},{1.55,0.0438223},{1.6,-0.0581267},
{1.65,-0.136698},{1.7,-0.175631},{1.75,-0.169538},
{1.8,-0.124137},{1.85,-0.0538507},{1.9,0.0224169},
{1.95,0.0861526},{2.,0.123554},{2.05,0.128327},
{2.1,0.102454},{2.15,0.0549385},{2.2,-0.000980753},
{2.25,-0.0513478},{2.3,-0.0848411},
{2.35,-0.0951862},{2.4,-0.0821522},{2.45,-0.0510304},
{2.5,-0.0108641},{2.55,0.0280359},{2.6,0.0566379},
{2.65,0.0691928},{2.7,0.0642737},{2.75,0.0447009},
{2.8,0.0164738},{2.85,-0.012943},{2.9,-0.0365153},
{2.95,-0.0492533},{3.,-0.0491912},{3.05,-0.0375617},
{3.1,-0.0182016}]
    \readdata{\mydataexp}{dataexp.dat}
    \psaxes{->}(0,0)(0,-1)(3.25,1.25)
    \dataplot[plotstyle=curve,linecolor=red]
      {\mydatasinexp}
    \dataplot[plotstyle=dots,linecolor=blue,
      dotsize=2.5pt]{\mydatasinexp}
    \dataplot[plotstyle=curve,linecolor=cyan]
      {\mydataexp}
  \end{pspicture}
\end{document} 

And data file "mydataexp.dat" contains the following datas:

[{0.,1.},{0.05,0.951229},{0.1,0.904837},
{0.15,0.860708},{0.2,0.818731},{0.25,0.778801},
{0.3,0.740818},{0.35,0.704688},{0.4,0.67032},
{0.45,0.637628},{0.5,0.606531},{0.55,0.57695},
{0.6,0.548812},{0.65,0.522046},{0.7,0.496585},
{0.75,0.472367},{0.8,0.449329},{0.85,0.427415},
{0.9,0.40657},{0.95,0.386741},{1.,0.367879},
{1.05,0.349938},{1.1,0.332871},{1.15,0.316637},
{1.2,0.301194},{1.25,0.286505},{1.3,0.272532},
{1.35,0.25924},{1.4,0.246597},{1.45,0.23457},
{1.5,0.22313},{1.55,0.212248},{1.6,0.201897},
{1.65,0.19205},{1.7,0.182684},{1.75,0.173774},
{1.8,0.165299},{1.85,0.157237},{1.9,0.149569},
{1.95,0.142274},{2.,0.135335},{2.05,0.128735},
{2.1,0.122456},{2.15,0.116484},{2.2,0.110803},
{2.25,0.105399},{2.3,0.100259},{2.35,0.0953692},
{2.4,0.090718},{2.45,0.0862936},{2.5,0.082085},
{2.55,0.0780817},{2.6,0.0742736},{2.65,0.0706512},
{2.7,0.0672055},{2.75,0.0639279},{2.8,0.0608101},
{2.85,0.0578443},{2.9,0.0550232},{2.95,0.0523397},
{3.,0.0497871},{3.05,0.0473589},{3.1,0.0450492}]

The plotted picture looks like this one:

Fig.1 An example of dataplot



The last data plotting command is "\listplot[parameters]{list}". And it has a similar usage as "dataplot", so no example of this command is provided. When using this command data can only delimited by white space.

Files download: tex ps pdf
Creative Commons License
Except as otherwise noted, the content of this page is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.