First, get the latest version by clicking on "repository" in the sidebar. This will take you to a "git" revision control system. The most current entry will be at the top. There will be a link under "actions" labeled ".tar.gz". This will get you a compressed tar file of the project source code.
To build Pdplot, type "make depend" and then "make". If you like what you see, then run "make install" with sufficient permission to write in "/usr/local/". Pdplot keeps its font files in "/usr/local/lib/pdplot".
Normally you will plot by piping data to the helper script "/usr/local/bin/pd". It will create a pipe file in "/var/spool/sockets/pdplot". You may have to create this directory by hand the first time you run the program. From then on, pd will check for the existence of a pdplot daemon and will start a new one if needed, otherwise it will send the plot data through the pipe to the currently running pdplot program.
A simple way to test if things are working is to create a simple plot by typing:
(echo 0 0; echo 1 1) | pd
PDPLOT(1:LOCAL) PDPLOT(1:LOCAL) NAME pdplot - plot ascii data to an X window SYNOPSIS Pdplot pd [-n] [-k] [-g] [-p ] [-r] [file1 file2...] DESCRIPTION Pdplot reads ascii x-y pairs and commands from standard input to create a formatted plot of the data in an X11 window. The input lines should consist of either an x-y pair or a formatting command, one per line. Blank lines and lines starting with "#" are ignored. The easiest way to invoke Pdplot under X11 is with the pd(1) script, which will handle creation of pipes and put Pdplot into the background so the display will not be erased when the data ends. Additional plots can be made to the same graphics window with later calls to pd(1). pd(1) accepts input from either a list of files from the command line, or from stdin (similiar to cat(1)). With no options pd will start a pdplot daemon if none already exists, clear the window and plot the data. OPTIONS -n Do not clear the plot window before plotting new data. New data will be merged with the old dataset and the data will be rescaled if necessary. -g Write a bitdump of the existing window to .png. This function requires the program pnmtopng(1) (from the Netpbm pack- age) to be present in the search path. This is equivalent to giving the graph formatting command in the plot data file. -p Write a postscript dump of the existing window to .ps. This is equivalent to putting a post formatting command in the input data file. -k Kill any existing pdplot daemon and close the graphics window. -r Force a refresh of the screen. GENERAL USAGE After the X11 window is created, it can be resized and zoomed in sev- eral ways. The normal X11 resize by stretching the frame or menu selection leaves the plotted value range unchanged. Clicking the right mouse button at two locations will zoom in to that range. If the clicks are outside the frame of the plot, the plot will be zoomed out. Double clicking at the same x-y location will cause the data to be rescaled so that it is all within the frame (auto unzoom). If the keyword plot appears on the input, the data so far will be plot- ted. If the keyword clear appears, the window will be cleared, ready for another set of data. These two commands are used by pd to allow reuse of the same graphics window for additional plots or to add data. FORMATTING COMMANDS The following formatting commands are available. Most of them should appear before any data. Some of them, such as the pen command, may appear among the data. Formatting commands and datapoints may be placed one per line. style {working|presentation} This sets one of several basic modes. The default is working, which uses a large drawing area, small default character size and defaults to using a grid. The alternative is presentation, which is intended to provide legible slides or viewgraphs. This uses larger characters and a somewhat smaller data region, and turns off the grid. The style command overrides earlier lower- left, charsize and grid commands. Only the first character of the argument ( w, or p ) is needed. title top_label top_label must be fewer than 150 characters. Up to two lines of title may be specified. Titles too long to fit at the default (or specified) character size will be drawn smaller so as to fit. Some special characters are available (see below). xscale [value] [axis_label] yscale [value] [axis_label] The program divides the corresponding inputs by value and labels the corresponding axis with axis_label. The scale value is applied when it is read. Points that are read prior to the x/y scale command will not be scaled. Either the value or the label may be omitted but at least one must appear on the command line. For example, if the x data are values around a few nanoseconds, you might use: xscale 1e-9 TIME (ns) The label must have fewer than 150 characters. nextygraph [graph_number] Pdplot can stack up to 10 graphs on one plot. All graphs share a common X axis, and the Y axes are independently scaled, labelled, etc. The nextygraph command directs Pdplot to add another graph and subsequent data, label and yscale commands will be placed in that graph. noisotropic isotropic [aspect] By default, Pdplot scales the X and Y directions independently to fill the page. If isotropic is given, Pdplot will force the scales to be the same in X and Y by reducing the size of the plot frame in one directions. If an aspect ratio is given, then a square will be drawn aspect times higher than it is wide. label x y label_string label x% y% label_string X and y values are given in scaled units. In the case of dbx and dby, the values should be in dB. The label_string may con- tain any of the special characters mentioned below. The label may be placed outside of the normal plotting area. The size of the label may be changed with a labelsize command. The orient- tion of the label may be changed with a labeldir command. In the second case above, the label placement may be specified as X and Y percentages relative to the graphing region. When com- bined with data lines using %, this provides an easy way to draw legends, etc. labeldir direction This defines the orientation of the labels. The default direc- tion is 0 degrees (horizontal). xset xmin xmax yset ymin ymax This command allows the user to specify the range of the plot independent of the data. Both the minimum and the maximum must be specified with each command, or automatic scaling is enabled. If only one of the two axes is specified, automatic scaling of the other axis will only consider data points that are within the specified range on the first axis. maxxdiv n maxydiv n N is the maximum number of divisions along the axis. The default is 7. For example, if the data ranged from 0 to 100, the scale would normally be 5 divisions of 20, but if max?div were set to 10, there would be 10 divisions of 10. The range of n is limited between 2 and 50. The unit division is from the set 1, 2, 2.5, 5, possibly multiplied by a power of 10. Each tick will land on an integer multiple of the unit division. charsize size scalesize size tagsize size titlesize size labelsize size Characters are usually proportional to the sum of the lengths of the axes. Size is a value between .1 and 10 which multiplies the default size of the characters. Charsize changes the size of all the text, and each of the other commands changes the cor- responding kind of text. Tagsize scales the numeric labels at the grid divisions. Scalesize scales the axis label specified by xscale or yscale. xgrid [xgridline] (vertical grid) ygrid [ygridline] (horizontal grid) grid [gridline] (full grid) nogrid (default) These commands draw a grid for the plot. A line type between 1 and 5 may be specified (see line below). xgridpen xgridpen (vertical grid) ygridpen ygridpen (horizontal grid) gridpen gridpen framepen framepen Select a pen other than pen 1 for grid lines or the frame. The frame includes the axes, tags, scale labels, and titles. This is most useful on a pen plotter where a thinner pen is to be used for the grid than for the frame. noback (default) back If noback is set, the pen will lift for negative x motion so that one datafile can have multiple curves. If the back command is given, the pen will stay down during negative x motion. This command may be among the data pairs. line n N is an integer between zero and five which specifies the type of line to draw. 0 dots only at the data points 1 solid line (default) 2 dashed line 3 dotted line 4 dash dot line 5 long dash short dash Line type 0 uses a square dot that is one device unit on a side. This will usually plot as four pixels on graphics terminals. autoline noautoline (default) If noback is set, the linetype for each new trace is cycled through linetypes 1-5. On monochrome displays, the default is autoline. pen [n] Change to pen n for the following data. The number of pens available depends on the plotter. In X11 and on the default PAINTXL plotter model, 6 pens are allowed. If no n is given, the next pen is selected, going back to pen 1 after the last pen. If n is larger than the maximum allowed, pen n-modulo- max_n is used. logx, logy, loglog, dbx, dby, dbpx, dbpy, linx, liny Use a logarithmic scale for the indicated axis. dbx and dby will plot 20*log10 of the variable, while dbpx and dbpy will plot 10*log10 of the variable. linx and liny are used to reset the mode if a second set of axes is used. Any scale factor introduced by an xscale or yscale will still be applied. autopen (default) noautopen If noback is set, the traces will cycle among the available pens. symbol [symbol_number] Begin a scatter plot with the indicated symbol. Unless sym- bol+line is active, the normal line will not be drawn. If no symbol name is given, the "next" symbol will be used. symbol+line Turn on both symbols and lines — connect the dots. nosymbol Turn off symbols, and turn on lines. This negates symbol+line. noline Turn off lines, and turn on symbol mode. This negates sym- bol+line. symbolsize value Change the size of the symbol, with value being a multiplier on the default size, which scales with the perimeter of the plot. autosymbol (default) noautosymbol Change the symbol to the "next" symbol each time there is neg- ative x motion. jump The jump command causes a pen lift between the two surrounding data points. ticklength [length] Tick marks along the axes are normally scaled with the perimeter of the plotting area. The length will multiply the normal length of the ticks. If no length is specified, ticks are suppressed. scaletol [tolerance] (both axes) xscaletol [tolerance] yscaletol [tolerance] When the program selects a scale to fit the data, the frame of the plot is normally allowed to be slightly smaller than the range of the data. For example, if the data range from -.0001 to 100, the range for the corresponding scale will be from 0 to 100. Scaletol sets the fraction of the data range which can fall outside the scale for the plot. Its default value is 0.001. If tolerance is not given, it is assumed to be 0, and all of the data points are guaranteed to be within the frame. Negative values may be specified, which guarantees a clearance between the data and the frame of the plot. noframe The drawing of the axes will be suppressed. Neither the scale labels nor the titles will appear. The label command may be used to do annotation. nobox The box around the data region will be suppressed. Scale labels, grids and titles are not affected. graph Write a bitdump of the existing window to .png. This function requires the program pnmtopng(1) (from the Netpbm package) to be present in the search path. The bitmap is dumped at the point that it appears in the file, so the command should be placed at the very end of the data file. post Write a postcript dump of the existing window to .ps. The resulting file is in a fairly organized format. In particular, you may wish to search for the color definitions c1, c2, ... c15 to make modifications. The postscript file is autoscaled and rotated to fit the page as well as possible. SPECIAL CHARACTERS The following special command characters are allowed in titles and labels. begin subscript \[ end subscript \] begin superscript \{ end superscript \} backspace one char \< forward one char \> The following special characters are allowed in titles and labels. All of them are taken from the Hershey simplex fonts. GAMMA \G DELTA \D THETA \H LAMBDA \L XI \C PI \P SIGMA \S UPSILON \Y PHI \F CHI \X PSI \Q OMEGA \W OMEGA \O alpha \a beta \b gamma \g delta \d epsilon \e zeta \z eta \y theta1 \@ iota \i kappa \k lambda \l mu \m mu \u nu \n xi \c pi \p rho \r sigma \s tau \t phi \f chi \x psi \q omega \w omega \o slash \\ FILES /usr/local/lib/NOTEDATA.F ; font definition file /usr/local/lib/SYMBOL.F ; symbol+greek definition file AUTHOR Pdplot was written by Rick Walker (walker@omnisterra.com). Pdplot is a shameless clone of the Autoplot program originally written by Bob Jewett at UC Berkeley with subsequent enhancements at HP and Agilent Laboratories (by Konstantinos Konstantinides and Ken Poulton). Most input data files written for Autoplot will produce useful if not virtually identical plots under Pdplot. Pdplot is a "from scratch" implementation, heavily leveraging code from PdPiglet, and is released under the GNU General Public License version 2. DIFFERENCES WITH AUTOPLOT Autoplot is a general pen-plotter driver with an emphasis on HPGL out- put. Pdplot is primarily an X11 plot program and does not produce HPGL but has support for PNG and Postscript output. Autoplot referenced the entire Hershey font database. Pdplot uses Piglet-style font definition files for characters and symbols. Autoplot cycles through 6 pen colors: 0=Black, 1=White, 2=Red, 3=Green, 4=Blue, 5=Aqua, 6=Magenta, 7=White, 8=Red... and so on. Pdplot defines 15 colors: White, 6 basic colors, 6 desaturated colors and two shades of grey. In both systems Black can be explicitly called by pen 0, but is not part of the automatic pen cycle. In Pdplot, "noframe" followed by "grid" will produce a plot with just a grid and no frame or annotations. Autoplot's noframe command overrides any further modification of scales or grids. Pdplot allows the specification of symbols by index number in addition to name. The dimgrid, brightgrid and the graph, post commands do not exist in autoplot. Autoplot tops it's graphic window on every expose event causing it to pop up whenever an overlaying window is repositioned. Pdplot only tops itself at a plot command. There are minor pen usage differences between the two programs. While plotting in "autopen" and "noback" mode, if a "pen " command is made just prior to a negative x-motion in the data, autoplot will honor the pen command and use pen , but pdplot will honor the negative x- motion, thereby printing the next segment with pen . Pdplot tries hard to show all lines that would be visible inside x or yset ranges. Autoplot will sometimes drop lines that have their defin- ing coordinates outside the range. This version of Pdplot does not implement the following Autoplot com- mands: topxscale, rightyscale, labeloverlab, nolabeloverlab, labelsinframe, nolabelsinframe, swallowzero, noswallowzero, xswallowzero, noxswal- lowzero, yswallowzero, noyswallowzero, lowerleft, xsize, ysize, speed, rotate, binary BUGS Cursor coordinate picking probably doesn't yet work on log scales. Maxxdiv and Maxydiv commands are handled by the code, but not parsed yet. Multiple commands cannot yet be entered by using ";;" delimiters on a givein line. Log scales only have ticks at decade intervals and do not yet use metric prefixes (10k 100k 1M 10M 100M 1G...). No provi- sion has yet been made to handle two title lines. PDPLOT(1:LOCAL)