summaryrefslogtreecommitdiffstats
path: root/tkblt/doc
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2019-01-07 20:18:49 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2019-01-07 20:18:49 (GMT)
commit99617a9a6ab0ac0cbce628dbe35a979580a4fdef (patch)
treea243a9f15d2caa4fec35d53b988746c18c5db6c7 /tkblt/doc
parente1f700df25c677f44a7c7f3a2ad497ecf3a9e38b (diff)
downloadblt-99617a9a6ab0ac0cbce628dbe35a979580a4fdef.zip
blt-99617a9a6ab0ac0cbce628dbe35a979580a4fdef.tar.gz
blt-99617a9a6ab0ac0cbce628dbe35a979580a4fdef.tar.bz2
update TEA 3.13
Diffstat (limited to 'tkblt/doc')
-rw-r--r--tkblt/doc/BLT.html74
-rw-r--r--tkblt/doc/BLT.n76
-rw-r--r--tkblt/doc/barchart.html1640
-rw-r--r--tkblt/doc/barchart.n2239
-rw-r--r--tkblt/doc/graph.html1759
-rw-r--r--tkblt/doc/graph.n2408
-rw-r--r--tkblt/doc/vector.html704
-rw-r--r--tkblt/doc/vector.n1134
8 files changed, 0 insertions, 10034 deletions
diff --git a/tkblt/doc/BLT.html b/tkblt/doc/BLT.html
deleted file mode 100644
index 55e4e38..0000000
--- a/tkblt/doc/BLT.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- BLT is a library of extensions to the Tk library. It adds new commands
- and variables to the application's interpreter.
-
-
-
-</PRE>
-<H2>COMMANDS</H2><PRE>
- The following commands are added to the interpreter from the BLT
- library:
-
- <B>graph</B> A 2D plotting widget. Plots two variable data in a win-
- dow with an optional legend and annotations. It has of
- several components; coordinate axes, crosshairs, a leg-
- end, and a collection of elements and tags.
-
- <B>barchart</B> A barchart widget. Plots two-variable data as rectangu-
- lar bars in a window. The x-coordinate values designate
- the position of the bar along the x-axis, while the y-
- coordinate values designate the magnitude. The <B>barchart</B>
- widget has of several components; coordinate axes,
- crosshairs, a legend, and a collection of elements and
- tags.
-
- <B>vector</B> Creates a vector of floating point values. The vector's
- components can be manipulated in three ways: through a
- Tcl array variable, a Tcl command, or the C API.
-
-
-</PRE>
-<H2>ADDING BLT TO YOUR APPLICATIONS</H2><PRE>
- It's easy to add BLT to an existing Tk application. BLT requires no
- patches or edits to the Tcl or Tk libraries. To add BLT, simply add
- the following code snippet to your application's tkAppInit.c file.
-
- if (Tkblt_Init(interp) != TCL_OK) {
-
- return TCL_ERROR;
-
- }
-
- Recompile and link with the tkblt library and that's it.
-
- Alternately, you can dynamically load tkblt, simply by invoking the
- command
-
- % package require tkblt
-
- from your Tcl script.
-
-
-</PRE>
-<H2>BUGS</H2><PRE>
- Send bug reports, requests, suggestions, etc. to wjoye@cfa.harvard.edu
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- BLT
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/tkblt/doc/BLT.n b/tkblt/doc/BLT.n
deleted file mode 100644
index 6f63aa8..0000000
--- a/tkblt/doc/BLT.n
+++ /dev/null
@@ -1,76 +0,0 @@
-'\"
-'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-'\" This code has been modified under the terms listed below and is made
-'\" available under the same terms.
-'\"
-'\" Copyright 1991-1997 by Bell Labs Innovations for Lucent Technologies.
-'\"
-'\" Permission to use, copy, modify, and distribute this software and its
-'\" documentation for any purpose and without fee is hereby granted, provided
-'\" that the above copyright notice appear in all copies and that both that the
-'\" copyright notice and warranty disclaimer appear in supporting documentation,
-'\" and that the names of Lucent Technologies any of their entities not be used
-'\" in advertising or publicity pertaining to distribution of the software
-'\" without specific, written prior permission.
-'\"
-'\" Lucent Technologies disclaims all warranties with regard to this software,
-'\" including all implied warranties of merchantability and fitness. In no event
-'\" shall Lucent Technologies be liable for any special, indirect or
-'\" consequential damages or any damages whatsoever resulting from loss of use,
-'\" data or profits, whether in an action of contract, negligence or other
-'\" tortuous action, arising out of or in connection with the use or performance
-'\" of this software.
-'\"
-.TH intro n BLT_VERSION BLT "BLT Built-In Commands"
-.BS
-'\" Note: do not modify the .SH NAME line immediately below!
-.SH NAME
-BLT \- Introduction to the BLT library
-.BE
-.SH DESCRIPTION
-BLT is a library of extensions to the Tk library. It adds new
-commands and variables to the application's interpreter.
-.LP
-.SH COMMANDS
-The following commands are added to the interpreter from the BLT library:
-.TP 15
-\fBgraph\fR
-A 2D plotting widget. Plots two variable data in a window with an optional
-legend and annotations. It has of several components; coordinate axes,
-crosshairs, a legend, and a collection of elements and tags.
-.TP 15
-\fBbarchart\fR
-A barchart widget. Plots two-variable data as rectangular bars in a
-window. The x-coordinate values designate the position of the bar along
-the x-axis, while the y-coordinate values designate the magnitude.
-The \fBbarchart\fR widget has of several components; coordinate axes,
-crosshairs, a legend, and a collection of elements and tags.
-.TP 15
-\fBvector\fR
-Creates a vector of floating point values. The vector's components
-can be manipulated in three ways: through a Tcl array variable, a Tcl
-command, or the C API.
-.SH ADDING BLT TO YOUR APPLICATIONS
-It's easy to add BLT to an existing Tk application. BLT requires no
-patches or edits to the Tcl or Tk libraries. To add BLT, simply add the
-following code snippet to your application's tkAppInit.c file.
-.PP
-if (Tkblt_Init(interp) != TCL_OK) {
-.PP
- return TCL_ERROR;
-.PP
-}
-.TP 15
-Recompile and link with the tkblt library and that's it.
-.PP
-Alternately, you can dynamically load tkblt, simply by invoking the
-command
-.PP
-% package require tkblt
-.PP
-from your Tcl script.
-.SH BUGS
-Send bug reports, requests, suggestions, etc. to
-wjoye@cfa.harvard.edu
-.SH KEYWORDS
-BLT
diff --git a/tkblt/doc/barchart.html b/tkblt/doc/barchart.html
deleted file mode 100644
index 7f04d25..0000000
--- a/tkblt/doc/barchart.html
+++ /dev/null
@@ -1,1640 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>barchart</B> <I>pathName</I> ?<I>option</I> <I>value</I>?...
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>barchart</B> command creates a bar chart for plotting two-dimensional
- data (X-Y coordinates). A bar chart is a graphic means of comparing
- numbers by displaying bars of lengths proportional to the y-coordinates
- of the points they represented. The bar chart has many configurable
- components: coordinate axes, elements, legend, grid lines, cross hairs,
- etc. They allow you to customize the look and feel of the graph.
-
-
-</PRE>
-<H2>INTRODUCTION</H2><PRE>
- The <B>barchart</B> command creates a new window for plotting two-dimensional
- data (X-Y coordinates), using bars of various lengths to represent the
- data points. The bars are drawn in a rectangular area displayed in the
- center of the new window. This is the <I>plotting</I> <I>area</I>. The coordinate
- axes are drawn in the margins surrounding the plotting area. By
- default, the legend is drawn in the right margin. The title is dis-
- played in top margin.
-
- A <B>barchart</B> widget has several configurable components: coordinate axes,
- data elements, legend, grid, cross hairs, pens, postscript, and annota-
- tion markers. Each component can be queried or modified.
-
- axis Up to four coordinate axes (two X-coordinate and two Y-coor-
- dinate axes) can be displayed, but you can create and use any
- number of axes. Axes control what region of data is displayed
- and how the data is scaled. Each axis consists of the axis
- line, title, major and minor ticks, and tick labels. Tick
- labels display the value at each major tick.
-
- crosshairs
- Cross hairs are used to position the mouse pointer relative
- to the X and Y coordinate axes. Two perpendicular lines,
- intersecting at the current location of the mouse, extend
- across the plotting area to the coordinate axes.
-
- element An element represents a set of data to be plotted. It con-
- tains an x and y vector of values representing the data
- points. Each data point is displayed as a bar where the
- length of the bar is proportional to the ordinate (Y-coordi-
- nate) of the data point. The appearance of the bar, such as
- its color, stipple, or relief is configurable.
-
- A special case exists when two or more data points have the
- same abscissa (X-coordinate). By default, the bars are over-
- layed, one on top of the other. The bars are drawn in the
- order of the element display list. But you can also config-
- ure the bars to be displayed in two other ways. They may be
- displayed as a stack, where each bar (with the same abscissa)
- is stacked on the previous. Or they can be drawn side-by-
- side as thin bars. The width of each bar is a function of
-
- pen Pens define attributes for elements. Data elements use pens
- to specify how they should be drawn. A data element may use
- many pens at once. Here the particular pen used for a data
- point is determined from each element's weight vector (see
- the element's <B>-weight</B> and <B>-style</B> options).
-
- postscript
- The widget can generate encapsulated PostScript output. This
- component has several options to configure how the PostScript
- is generated.
-
-
-</PRE>
-<H2>SYNTAX</H2><PRE>
- <B>barchart</B> <I>pathName</I> ?<I>option</I> <I>value</I>?... The <B>barchart</B> command creates a new
- window <I>pathName</I> and makes it into a <B>barchart</B> widget. At the time this
- command is invoked, there must not exist a window named <I>pathName</I>, but
- <I>pathName</I>'s parent must exist. Additional options may be specified on
- the command line or in the option database to configure aspects of the
- graph such as its colors and font. See the <B>configure</B> operation below
- for the exact details about what <I>option</I> and <I>value</I> pairs are valid.
-
- If successful, <B>barchart</B> returns the path name of the widget. It also
- creates a new Tcl command by the same name. You can use this command
- to invoke various operations that query or modify the graph. The gen-
- eral form is: <I>pathName</I> <I>operation</I> ?<I>arg</I>?... Both <I>operation</I> and its argu-
- ments determine the exact behavior of the command. The operations
- available for the graph are described in the <B>BARCHART</B> <B>OPERATIONS</B> sec-
- tion.
-
- The command can also be used to access components of the graph. <I>path-</I>
- <I>Name</I> <I>component</I> <I>operation</I> ?<I>arg</I>?... The operation, now located after the
- name of the component, is the function to be performed on that compo-
- nent. Each component has its own set of operations that manipulate that
- component. They will be described below in their own sections.
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- The <B>barchart</B> command creates a new bar chart. # Create a new bar
- chart. Plotting area is black. barchart .b -plotbackground black A
- new Tcl command .b is created. This command can be used to query and
- modify the bar chart. For example, to change the title of the graph to
- "My Plot", you use the new command and the <B>configure</B> operation. #
- Change the title. .b configure -title "My Plot" To add data elements,
- you use the command and the <B>element</B> component. # Create a new element
- named "e1" .b element create e1 \ -xdata { 1 2 3 4 5 6 7 8 9 10 }
- \ -ydata { 26.18 50.46 72.85 93.31 111.86 128.47 143.14
- 155.85 166.60 175.38 } The element's X-Y coordinates are
- specified using lists of numbers. Alternately, BLT vectors could be
- used to hold the X-Y coordinates. # Create two vectors and add them to
- the barchart. vector xVector yVector xVector set { 1 2 3 4 5 6 7 8 9
- 10 } yVector set { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85
- 166.60 175.38 } n.b element create e1 -xdata xVector -ydata yVec-
- tor The advantage of using vectors is that when you modify one, the
- sure we change the bar width too. .b configure -barwidth 0.2 The
- height of each bar is proportional to the ordinate (Y-coordinate) of
- the data point.
-
- If two or more data points have the same abscissa (X-coordinate value),
- the bars representing those data points may be drawn in various ways.
- The default is to overlay the bars, one on top of the other. The
- ordering is determined from the of element display list. If the
- stacked mode is selected (using the <B>-barmode</B> configuration option), the
- bars are stacked, each bar above the previous. # Display the elements
- as stacked. .b configure -barmode stacked If the aligned mode is
- selected, the bars having the same x-coordinates are displayed side by
- side. The width of each bar is a fraction of its normal width, based
- upon the number of bars with the same x-coordinate. # Display the ele-
- ments side-by-side. .b configure -barmode aligned By default, the ele-
- ment's label in the legend will be also e1. You can change the label,
- or specify no legend entry, again using the element's <B>configure</B> opera-
- tion. # Don't display "e1" in the legend. .b element configure e1
- -label "" You can configure more than just the element's label. An
- element has many attributes such as stipple, foreground and background
- colors, relief, etc. .b element configure e1 -fg red -bg pink \
- -stipple gray50 Four coordinate axes are automatically created: x,
- x2, y, and y2. And by default, elements are mapped onto the axes x and
- y. This can be changed with the <B>-mapx</B> and <B>-mapy</B> options. # Map "e1"
- on the alternate y axis "y2". .b element configure e1 -mapy y2 Axes
- can be configured in many ways too. For example, you change the scale
- of the Y-axis from linear to log using the <B>axis</B> component. # Y-axis is
- log scale. .b axis configure y -logscale yes One important way axes
- are used is to zoom in on a particular data region. Zooming is done by
- simply specifying new axis limits using the <B>-min</B> and <B>-max</B> configuration
- options. .b axis configure x -min 1.0 -max 1.5 .b axis configure y
- -min 12.0 -max 55.15 To zoom interactively, you link the<B>axis</B> <B>configure</B>
- operations with some user interaction (such as pressing the mouse but-
- ton), using the <B>bind</B> command. To convert between screen and graph
- coordinates, use the <B>invtransform</B> operation. # Click the button to set
- a new minimum bind .b &lt;ButtonPress-1&gt; {
- %W axis configure x -min [%W axis invtransform x %x]
- %W axis configure x -min [%W axis invtransform x %y] } By default,
- the limits of the axis are determined from data values. To reset back
- to the default limits, set the <B>-min</B> and <B>-max</B> options to the empty
- value. # Reset the axes to autoscale again. .b axis configure x -min
- {} -max {} .b axis configure y -min {} -max {} By default, the legend
- is drawn in the right margin. You can change this or any legend con-
- figuration options using the <B>legend</B> component. # Configure the legend
- font, color, and relief .b legend configure -position left -relief
- raised \ -font fixed -fg blue To prevent the legend from being
- displayed, turn on the <B>-hide</B> option. # Don't display the legend. .b
- legend configure -hide yes The <B>barchart</B> has simple drawing procedures
- called markers. They can be used to highlight or annotate data in the
- graph. The types of markers available are bitmaps, polygons, lines, or
- windows. Markers can be used, for example, to mark or brush points.
- For example there may be a line marker which indicates some low-water
- chart into file "file.ps" .b postscript output file.ps -maxpect yes
- -decorations no This generates a file file.ps containing the encapsu-
- lated PostScript of the graph. The option <B>-maxpect</B> says to scale the
- plot to the size of the page. Turning off the <B>-decorations</B> option
- denotes that no borders or color backgrounds should be drawn (i.e. the
- background of the margins, legend, and plotting area will be white).
-
-
-</PRE>
-<H2>SYNTAX</H2><PRE>
- <B>barchart</B> <I>pathName</I> ?<I>option</I> <I>value</I>?... The <B>barchart</B> command creates a new
- window <I>pathName</I> and makes it into a barchart widget. At the time this
- command is invoked, there must not exist a window named <I>pathName</I>, but
- <I>pathName</I>'s parent must exist. Additional options may may be specified
- on the command line or in the option database to configure aspects of
- the bar chart such as its colors and font. See the <B>configure</B> operation
- below for the exact details as to what <I>option</I> and <I>value</I> pairs are
- valid.
-
- If successful, <B>barchart</B> returns <I>pathName</I>. It also creates a new Tcl
- command <I>pathName</I>. This command may be used to invoke various opera-
- tions to query or modify the bar chart. It has the general form: <I>path-</I>
- <I>Name</I> <I>operation</I> ?<I>arg</I>?... Both <I>operation</I> and its arguments determine the
- exact behavior of the command. The operations available for the bar
- chart are described in the following section.
-
-
-</PRE>
-<H2>BARCHART OPERATIONS</H2><PRE>
- <I>pathName</I> <B>bar</B> <I>elemName</I> ?<I>option</I> <I>value</I>?...
- Creates a new barchart element <I>elemName</I>. It's an error if an
- element <I>elemName</I> already exists. See the manual for <B>barchart</B>
- for details about what <I>option</I> and <I>value</I> pairs are valid.
-
- <I>pathName</I> <B>cget</B> <I>option</I>
- Returns the current value of the configuration option given by
- <I>option</I>. <I>Option</I> may be any option described below for the <B>con-</B>
- <B>figure</B> operation.
-
- <I>pathName</I> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options of the graph. If
- <I>option</I> isn't specified, a list describing the current options
- for <I>pathName</I> is returned. If <I>option</I> is specified, but not
- <I>value</I>, then a list describing <I>option</I> is returned. If one or
- more <I>option</I> and <I>value</I> pairs are specified, then for each pair,
- the option <I>option</I> is set to <I>value</I>. The following options are
- valid.
-
- <B>-background</B> <I>color</I>
- Sets the background color. This includes the margins and
- legend, but not the plotting area.
-
- <B>-barmode</B> <I>mode</I>
- Indicates how related bar elements will be drawn.
- Related elements have data points with the same abscissas
- (X-coordinates). <I>Mode</I> indicates how those segments should
-
- <B>-barwidth</B> <I>value</I>
- Specifies the width of the bars. This value can be over-
- rided by the individual elements using their <B>-barwidth</B>
- configuration option. <I>Value</I> is the width in terms of
- graph-coordinates. The default width is 1.0.
-
- <B>-borderwidth</B> <I>pixels</I>
- Sets the width of the 3-D border around the outside edge
- of the widget. The <B>-relief</B> option determines if the bor-
- der is to be drawn. The default is 2.
-
- <B>-bottommargin</B> <I>pixels</I>
- Specifies the size of the margin below the X-coordinate
- axis. If <I>pixels</I> is 0, the size of the margin is selected
- automatically. The default is 0.
-
- <B>-bufferelements</B> <I>boolean</I>
- Indicates whether an internal pixmap to buffer the dis-
- play of data elements should be used. If <I>boolean</I> is
- true, data elements are drawn to an internal pixmap.
- This option is especially useful when the graph is
- redrawn frequently while the remains data unchanged (for
- example, moving a marker across the plot). See the <B>SPEED</B>
- <B>TIPS</B> section. The default is 1.
-
- <B>-cursor</B> <I>cursor</I>
- Specifies the widget's cursor. The default cursor is
- crosshair.
-
- <B>-font</B> <I>fontName</I>
- Specifies the font of the graph title. The default is
- *-Helvetica-Bold-R-Normal-*-18-180-*.
-
- <B>-halo</B> <I>pixels</I>
- Specifies a maximum distance to consider when searching
- for the closest data point (see the element's <B>closest</B>
- operation below). Data points further than <I>pixels</I> away
- are ignored. The default is 0.5i.
-
- <B>-height</B> <I>pixels</I>
- Specifies the requested height of widget. The default is
- 4i.
-
- <B>-invertxy</B> <I>boolean</I>
- Indicates whether the placement X-axis and Y-axis should
- be inverted. If <I>boolean</I> is true, the X and Y axes are
- swapped. The default is 0.
-
- <B>-justify</B> <I>justify</I>
- Specifies how the title should be justified. This mat-
- ters only when the title contains more than one line of
- area. The <B>-plotrelief</B> option determines if a border is
- drawn. The default is 2.
-
- <B>-plotpadx</B> <I>pad</I>
- Sets the amount of padding to be added to the left and
- right sides of the plotting area. <I>Pad</I> can be a list of
- one or two screen distances. If <I>pad</I> has two elements,
- the left side of the plotting area entry is padded by the
- first distance and the right side by the second. If <I>pad</I>
- is just one distance, both the left and right sides are
- padded evenly. The default is 8.
-
- <B>-plotpady</B> <I>pad</I>
- Sets the amount of padding to be added to the top and
- bottom of the plotting area. <I>Pad</I> can be a list of one or
- two screen distances. If <I>pad</I> has two elements, the top
- of the plotting area is padded by the first distance and
- the bottom by the second. If <I>pad</I> is just one distance,
- both the top and bottom are padded evenly. The default
- is 8.
-
- <B>-plotrelief</B> <I>relief</I>
- Specifies the 3-D effect for the plotting area. <I>Relief</I>
- specifies how the interior of the plotting area should
- appear relative to rest of the graph; for example, raised
- means the plot should appear to protrude from the graph,
- relative to the surface of the graph. The default is
- sunken.
-
- <B>-relief</B> <I>relief</I>
- Specifies the 3-D effect for the barchart widget. <I>Relief</I>
- specifies how the graph should appear relative to widget
- it is packed into; for example, raised means the graph
- should appear to protrude. The default is flat.
-
- <B>-rightmargin</B> <I>pixels</I>
- Sets the size of margin from the plotting area to the
- right edge of the window. By default, the legend is
- drawn in this margin. If <I>pixels</I> is than 1, the margin
- size is selected automatically.
-
- <B>-takefocus</B> <I>focus</I>
- Provides information used when moving the focus from win-
- dow to window via keyboard traversal (e.g., Tab and
- Shift-Tab). If <I>focus</I> is 0, this means that this window
- should be skipped entirely during keyboard traversal. 1
- means that the this window should always receive the
- input focus. An empty value means that the traversal
- scripts make the decision whether to focus on the window.
- The default is "".
-
- <B>-tile</B> <I>image</I>
- <B>-width</B> <I>pixels</I>
- Specifies the requested width of the widget. The default
- is 5i.
-
- <I>pathName</I> <B>crosshairs</B> <I>operation</I> ?<I>arg</I>?
- See the <B>CROSSHAIRS</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>element</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>ELEMENT</B> <B>COMPONENTS</B> section.
-
- <I>pathName</I> <B>extents</B> <I>item</I>
- Returns the size of a particular item in the graph. <I>Item</I> must
- be either leftmargin, rightmargin, topmargin, bottommargin,
- plotwidth, or plotheight.
-
- <I>pathName</I> <B>grid</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>GRID</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>invtransform</B> <I>winX</I> <I>winY</I>
- Performs an inverse coordinate transformation, mapping window
- coordinates back to graph-coordinates, using the standard X-axis
- and Y-axis. Returns a list of containing the X-Y graph-coordi-
- nates.
-
- <I>pathName</I> <B>inside</B> <I>x</I> <I>y</I>
- Returns 1 is the designated screen-coordinate (<I>x</I> and <I>y</I>) is
- inside the plotting area and 0 otherwise.
-
- <I>pathName</I> <B>legend</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>LEGEND</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>line</B> <B>operation</B> <B>arg</B>...
- The operation is the same as <B>element</B>.
-
- <I>pathName</I> <B>marker</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>MARKER</B> <B>COMPONENTS</B> section.
-
- <I>pathName</I> <B>metafile</B> ?<I>fileName</I>?
- <I>This</I> <I>operation</I> <I>is</I> <I>for</I> <I>Window</I> <I>platforms</I> <I>only</I>. Creates a Windows
- enhanced metafile of the barchart. If present, <I>fileName</I> is the
- file name of the new metafile. Otherwise, the metafile is auto-
- matically added to the clipboard.
-
- <I>pathName</I> <B>postscript</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>POSTSCRIPT</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>snap</B> <I>photoName</I>
- Takes a snapshot of the graph and stores the contents in the
- photo image <I>photoName</I>. <I>PhotoName</I> is the name of a Tk photo
- image that must already exist.
-
- <I>pathName</I> <B>transform</B> <I>x</I> <I>y</I>
- A graph is composed of several components: coordinate axes, data ele-
- ments, legend, grid, cross hairs, postscript, and annotation markers.
- Instead of one big set of configuration options and operations, the
- graph is partitioned, where each component has its own configuration
- options and operations that specifically control that aspect or part of
- the graph.
-
- <B>AXIS</B> <B>COMPONENTS</B>
- Four coordinate axes are automatically created: two X-coordinate axes
- (x and x2) and two Y-coordinate axes (y, and y2). By default, the axis
- x is located in the bottom margin, y in the left margin, x2 in the top
- margin, and y2 in the right margin.
-
- An axis consists of the axis line, title, major and minor ticks, and
- tick labels. Major ticks are drawn at uniform intervals along the
- axis. Each tick is labeled with its coordinate value. Minor ticks are
- drawn at uniform intervals within major ticks.
-
- The range of the axis controls what region of data is plotted. Data
- points outside the minimum and maximum limits of the axis are not plot-
- ted. By default, the minimum and maximum limits are determined from
- the data, but you can reset either limit.
-
- You can create and use several axes. To create an axis, invoke the axis
- component and its create operation. # Create a new axis called "tem-
- perature" .b axis create temperature You map data elements to an axis
- using the element's -mapy and -mapx configuration options. They specify
- the coordinate axes an element is mapped onto. # Now map the tempera-
- ture data to this axis. .b element create "temp" -xdata $x -ydata
- $tempData \
- -mapy temperature While you can have many axes, only four axes can
- be displayed simultaneously. They are drawn in each of the margins
- surrounding the plotting area. The axes x and y are drawn in the bot-
- tom and left margins. The axes x2 and y2 are drawn in top and right
- margins. Only x and y are shown by default. Note that the axes can
- have different scales.
-
- To display a different axis, you invoke one of the following compo-
- nents: <B>xaxis</B>, <B>yaxis</B>, <B>x2axis</B>, and <B>y2axis</B>. The <B>use</B> operation designates
- the axis to be drawn in the corresponding margin: <B>xaxis</B> in the bottom,
- <B>yaxis</B> in the left, <B>x2axis</B> in the top, and <B>y2axis</B> in the right. # Dis-
- play the axis temperature in the left margin. .b yaxis use temperature
-
- You can configure axes in many ways. The axis scale can be linear or
- logarithmic. The values along the axis can either monotonically
- increase or decrease. If you need custom tick labels, you can specify
- a Tcl procedure to format the label any way you wish. You can control
- how ticks are drawn, by changing the major tick interval or the number
- of minor ticks. You can define non-uniform tick intervals, such as for
- time-series plots.
-
-
- <B>-autorange</B> <I>range</I>
- Sets the range of values for the axis to <I>range</I>. The axis
- limits are automatically reset to display the most recent
- data points in this range. If <I>range</I> is 0.0, the range is
- determined from the limits of the data. If <B>-min</B> or <B>-max</B>
- are specified, they override this option. The default is
- 0.0.
-
- <B>-color</B> <I>color</I>
- Sets the color of the axis and tick labels. The default
- is black.
-
- <B>-command</B> <I>prefix</I>
- Specifies a Tcl command to be invoked when formatting the
- axis tick labels. <I>Prefix</I> is a string containing the name
- of a Tcl proc and any extra arguments for the procedure.
- This command is invoked for each major tick on the axis.
- Two additional arguments are passed to the procedure: the
- pathname of the widget and the current the numeric value
- of the tick. The procedure returns the formatted tick
- label. If "" is returned, no label will appear next to
- the tick. You can get the standard tick labels again by
- setting <I>prefix</I> to "". The default is "".
-
- Please note that this procedure is invoked while the bar
- chart is redrawn. You may query the widget's configura-
- tion options. But do not reset options, because this can
- have unexpected results.
-
- <B>-descending</B> <I>boolean</I>
- Indicates whether the values along the axis are monotoni-
- cally increasing or decreasing. If <I>boolean</I> is true, the
- axis values will be decreasing. The default is 0.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the axis is displayed.
-
- <B>-justify</B> <I>justify</I>
- Specifies how the axis title should be justified. This
- matters only when the axis title contains more than one
- line of text. <I>Justify</I> must be left, right, or center.
- The default is center.
-
- <B>-limits</B> <I>formatStr</I>
- Specifies a printf-like description to format the minimum
- and maximum limits of the axis. The limits are displayed
- at the top/bottom or left/right sides of the plotting
- area. <I>FormatStr</I> is a list of one or two format descrip-
- tions. If one description is supplied, both the minimum
- and maximum limits are formatted in the same way. If
- two, the first designates the format for the minimum
- limit, the second for the maximum. If "" is given as
- data points tightly, at the outermost data points, or
- loosely, at the outer tick intervals. This is relevant
- only when the axis limit is automatically calculated. If
- <I>boolean</I> is true, the axis range is "loose". The default
- is 0.
-
- <B>-majorticks</B> <I>majorList</I>
- Specifies where to display major axis ticks. You can use
- this option to display ticks at non-uniform intervals.
- <I>MajorList</I> is a list of axis coordinates designating the
- location of major ticks. No minor ticks are drawn. If
- <I>majorList</I> is "", major ticks will be automatically com-
- puted. The default is "".
-
- <B>-max</B> <I>value</I>
- Sets the maximum limit of <I>axisName</I>. Any data point
- greater than <I>value</I> is not displayed. If <I>value</I> is "", the
- maximum limit is calculated using the largest data value.
- The default is "".
-
- <B>-min</B> <I>value</I>
- Sets the minimum limit of <I>axisName</I>. Any data point less
- than <I>value</I> is not displayed. If <I>value</I> is "", the minimum
- limit is calculated using the smallest data value. The
- default is "".
-
- <B>-minorticks</B> <I>minorList</I>
- Specifies where to display minor axis ticks. You can use
- this option to display minor ticks at non-uniform inter-
- vals. <I>MinorList</I> is a list of real values, ranging from
- 0.0 to 1.0, designating the placement of a minor tick.
- No minor ticks are drawn if the <B>-majortick</B> option is also
- set. If <I>minorList</I> is "", minor ticks will be automati-
- cally computed. The default is "".
-
- <B>-rotate</B> <I>theta</I>
- Specifies the how many degrees to rotate the axis tick
- labels. <I>Theta</I> is a real value representing the number of
- degrees to rotate the tick labels. The default is 0.0
- degrees.
-
- <B>-shiftby</B> <I>value</I>
- Specifies how much to automatically shift the range of
- the axis. When the new data exceeds the current axis
- maximum, the maximum is increased in increments of <I>value</I>.
- You can use this option to prevent the axis limits from
- being recomputed at each new time point. If <I>value</I> is 0.0,
- then no automatic shifting is down. The default is 0.0.
-
- <B>-showticks</B> <I>boolean</I>
- Indicates whether axis ticks should be drawn. If <I>boolean</I>
- is true, ticks are drawn. If false, only the axis line
-
- <B>-tickfont</B> <I>fontName</I>
- Specifies the font for axis tick labels. The default is
- *-Courier-Bold-R-Normal-*-100-*.
-
- <B>-ticklength</B> <I>pixels</I>
- Sets the length of major and minor ticks (minor ticks are
- half the length of major ticks). If <I>pixels</I> is less than
- zero, the axis will be inverted with ticks drawn pointing
- towards the plot. The default is 0.1i.
-
- <B>-title</B> <I>text</I>
- Sets the title of the axis. If <I>text</I> is "", no axis title
- will be displayed.
-
- <B>-titlecolor</B> <I>color</I>
- Sets the color of the axis title. The default is black.
-
- <B>-titlefont</B> <I>fontName</I>
- Specifies the font for axis title. The default is *-Hel-
- vetica-Bold-R-Normal-*-14-140-*.
-
- Axis configuration options may be also be set by the <B>option</B> com-
- mand. The resource class is Axis. The resource names are the
- names of the axes (such as x or x2). option add *Bar-
- chart.Axis.Color blue option add *Barchart.x.LogScale true
- option add *Barchart.x2.LogScale false
-
- <I>pathName</I> <B>axis</B> <B>create</B> <I>axisName</I> ?<I>option</I> <I>value</I>?...
- Creates a new axis by the name <I>axisName</I>. No axis by the same
- name can already exist. <I>Option</I> and <I>value</I> are described in above
- in the axis <B>configure</B> operation.
-
- <I>pathName</I> <B>axis</B> <B>delete</B> ?<I>axisName</I>?...
- Deletes the named axes. An axis is not really deleted until it
- is not longer in use, so it's safe to delete axes mapped to ele-
- ments.
-
- <I>pathName</I> <B>axis</B> <B>invtransform</B> <I>axisName</I> <I>value</I>
- Performs the inverse transformation, changing the screen-coordi-
- nate <I>value</I> to a graph-coordinate, mapping the value mapped to
- <I>axisName</I>. Returns the graph-coordinate.
-
- <I>pathName</I> <B>axis</B> <B>limits</B> <I>axisName</I>
- Returns a list of the minimum and maximum limits for <I>axisName</I>.
- The order of the list is min max.
-
- <I>pathName</I> <B>axis</B> <B>names</B> ?<I>pattern</I>?...
- Returns a list of axes matching zero or more patterns. If no
- <I>pattern</I> argument is give, the names of all axes are returned.
-
- <I>pathName</I> <B>axis</B> <B>transform</B> <I>axisName</I> <I>value</I>
- Transforms the coordinate <I>value</I> to a screen-coordinate by map-
-
- right Y-axis.
-
- They implicitly control the axis that is currently using to that loca-
- tion. By default, <B>xaxis</B> uses the x axis, <B>yaxis</B> uses y, <B>x2axis</B> uses x2,
- and <B>y2axis</B> uses y2. These components can be more convenient to use
- than always determining what axes are current being displayed by the
- graph.
-
- The following operations are available for axes. They mirror exactly
- the operations of the <B>axis</B> component. The <I>axis</I> argument must be <B>xaxis</B>,
- <B>x2axis</B>, <B>yaxis</B>, or <B>y2axis</B>.
-
- <I>pathName</I> <I>axis</I> <B>cget</B> <I>option</I>
-
- <I>pathName</I> <I>axis</I> <B>configure</B> ?<I>option</I> <I>value</I>?...
-
- <I>pathName</I> <I>axis</I> <B>invtransform</B> <I>value</I>
-
- <I>pathName</I> <I>axis</I> <B>limits</B>
-
- <I>pathName</I> <I>axis</I> <B>transform</B> <I>value</I>
-
- <I>pathName</I> <I>axis</I> <B>use</B> ?<I>axisName</I>?
- Designates the axis <I>axisName</I> is to be displayed at this loca-
- tion. <I>AxisName</I> can not be already in use at another location.
- This command returns the name of the axis currently using this
- location.
-
- <B>CROSSHAIRS</B> <B>COMPONENT</B>
- Cross hairs consist of two intersecting lines (one vertical and one
- horizontal) drawn completely across the plotting area. They are used
- to position the mouse in relation to the coordinate axes. Cross hairs
- differ from line markers in that they are implemented using XOR drawing
- primitives. This means that they can be quickly drawn and erased with-
- out redrawing the entire widget.
-
- The following operations are available for cross hairs:
-
- <I>pathName</I> <B>crosshairs</B> <B>cget</B> <I>option</I>
- Returns the current value of the cross hairs configuration
- option given by <I>option</I>. <I>Option</I> may be any option described
- below for the cross hairs <B>configure</B> operation.
-
- <I>pathName</I> <B>crosshairs</B> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options of the cross
- hairs. If <I>option</I> isn't specified, a list describing all the
- current options for the cross hairs is returned. If <I>option</I> is
- specified, but not <I>value</I>, then a list describing <I>option</I> is
- returned. If one or more <I>option</I> and <I>value</I> pairs are specified,
- then for each pair, the cross hairs option <I>option</I> is set to
- <I>value</I>. The following options are available for cross hairs.
-
- <B>-linewidth</B> <I>pixels</I>
- Set the width of the cross hair lines. The default is 1.
-
- <B>-position</B> <I>pos</I>
- Specifies the screen position where the cross hairs
- intersect. <I>Pos</I> must be in the form "<I>@x,y</I>", where <I>x</I> and <I>y</I>
- are the window coordinates of the intersection.
-
- Cross hairs configuration options may be also be set by the
- <B>option</B> command. The resource name and class are crosshairs and
- Crosshairs respectively. option add *Bar-
- chart.Crosshairs.LineWidth 2 option add *Bar-
- chart.Crosshairs.Color red
-
- <I>pathName</I> <B>crosshairs</B> <B>off</B>
- Turns off the cross hairs.
-
- <I>pathName</I> <B>crosshairs</B> <B>on</B>
- Turns on the display of the cross hairs.
-
- <I>pathName</I> <B>crosshairs</B> <B>toggle</B>
- Toggles the current state of the cross hairs, alternately map-
- ping and unmapping the cross hairs.
-
-
-</PRE>
-<H2>ELEMENTS</H2><PRE>
- A data element represents a set of data. It contains x and y vectors
- which are the coordinates of the data points. Elements are displayed
- as bars where the length of the bar is proportional to the ordinate of
- the data point. Elements also control the appearance of the data, such
- as the color, stipple, relief, etc.
-
- When new data elements are created, they are automatically added to a
- list of displayed elements. The display list controls what elements
- are drawn and in what order.
-
- The following operations are available for elements.
-
- <I>pathName</I> <B>element</B> <B>activate</B> <I>elemName</I> ?<I>index</I>?...
- Specifies the data points of element <I>elemName</I> to be drawn using
- active foreground and background colors. <I>ElemName</I> is the name
- of the element and <I>index</I> is a number representing the index of
- the data point. If no indices are present then all data points
- become active.
-
- <I>pathName</I> <B>element</B> <B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?
- Associates <I>command</I> with <I>tagName</I> such that whenever the event
- sequence given by <I>sequence</I> occurs for an element with this tag,
- <I>command</I> will be invoked. The syntax is similar to the <B>bind</B> com-
- mand except that it operates on graph elements, rather than wid-
- gets. See the <B>bind</B> manual entry for complete details on <I>sequence</I>
- and the substitutions performed on <I>command</I> before invoking it.
-
-
- <I>pathName</I> <B>element</B> <B>closest</B> <I>x</I> <I>y</I> ?<I>option</I> <I>value</I>?... ?<I>elemName</I>?...
- Finds the data point representing the bar closest to the window
- coordinates <I>x</I> and <I>y</I> in the element <I>elemName</I>. <I>ElemName</I> is the
- name of an element, which must be currently displayed. If no
- elements are specified, then all displayed elements are
- searched. It returns a key-value list containing the name of
- the closest element, the index of its closest point, and the
- graph-coordinates of the point. If no data point within the
- threshold distance can be found, "" is returned. The following
- <I>option</I>-<I>value</I> pairs are available.
-
- <B>-halo</B> <I>pixels</I>
- Specifies a threshold distance where selected data points
- are ignored. <I>Pixels</I> is a valid screen distance, such as
- 2 or 1.2i. If this option isn't specified, then it
- defaults to the value of the <B>barchart</B>'s <B>-halo</B> option.
-
- <I>pathName</I> <B>element</B> <B>configure</B> <I>elemName</I> ?<I>elemName</I>... ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options for elements.
- Several elements can be modified at the same time. If <I>option</I>
- isn't specified, a list describing all the current options for
- <I>elemName</I> is returned. If <I>option</I> is specified, but not <I>value</I>,
- then a list describing the option <I>option</I> is returned. If one or
- more <I>option</I> and <I>value</I> pairs are specified, then for each pair,
- the element option <I>option</I> is set to <I>value</I>. The following
- options are valid for elements.
-
- <B>-activepen</B> <I>penName</I>
- Specifies pen to use to draw active element. If <I>penName</I>
- is "", no active elements will be drawn. The default is
- activeLine.
-
- <B>-bindtags</B> <I>tagList</I>
- Specifies the binding tags for the element. <I>TagList</I> is a
- list of binding tag names. The tags and their order will
- determine how events for elements. Each tag in the list
- matching the current event sequence will have its Tcl
- command executed. Implicitly the name of the element is
- always the first tag in the list. The default value is
- all.
-
- <B>-background</B> <I>color</I>
- Sets the the color of the border around each bar. The
- default is white.
-
- <B>-barwidth</B> <I>value</I>
- Specifies the width the bars drawn for the element.
- <I>Value</I> is the width in X-coordinates. If this option
- isn't specified, the width of each bar is the value of
- the widget's <B>-barwidth</B> option.
-
- a list of numeric expressions representing the X-Y coor-
- dinate pairs of each data point.
-
- <B>-foreground</B> <I>color</I>
- Sets the color of the interior of the bars.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the element is displayed. The default
- is no.
-
- <B>-label</B> <I>text</I>
- Sets the element's label in the legend. If <I>text</I> is "",
- the element will have no entry in the legend. The
- default label is the element's name.
-
- <B>-mapx</B> <I>xAxis</I>
- Selects the X-axis to map the element's X-coordinates
- onto. <I>XAxis</I> must be the name of an axis. The default is
- x.
-
- <B>-mapy</B> <I>yAxis</I>
- Selects the Y-axis to map the element's Y-coordinates
- onto. <I>YAxis</I> must be the name of an axis. The default is
- y.
-
- <B>-relief</B> <I>string</I>
- Specifies the 3-D effect desired for bars. <I>Relief</I> indi-
- cates how the interior of the bar should appear relative
- to the surface of the chart; for example, raised means
- the bar should appear to protrude from the surface of the
- plotting area. The default is raised.
-
- <B>-stipple</B> <I>bitmap</I>
- Specifies a stipple pattern with which to draw the bars.
- If <I>bitmap</I> is "", then the bar is drawn in a solid fash-
- ion.
-
- <B>-xdata</B> <I>xVector</I>
- Specifies the x-coordinate vector of the data. <I>XVector</I>
- is the name of a BLT vector or a list of numeric expres-
- sions.
-
- <B>-ydata</B> <I>yVector</I>
- Specifies the y-coordinate vector of the data. <I>YVector</I>
- is the name of a BLT vector or a list of numeric expres-
- sions.
-
- Element configuration options may also be set by the <B>option</B> com-
- mand. The resource names in the option database are prefixed
- by elem. option add *Barchart.Element.background blue
-
- <I>pathName</I> <B>element</B> <B>create</B> <I>elemName</I> ?<I>option</I> <I>value</I>?...
-
- <I>pathName</I> <B>element</B> <B>exists</B> <I>elemName</I>
- Returns 1 if an element <I>elemName</I> currently exists and 0 other-
- wise.
-
- <I>pathName</I> <B>element</B> <B>names</B> ?<I>pattern</I>?...
- Returns the elements matching one or more pattern. If no <I>pat-</I>
- <I>tern</I> is given, the names of all elements is returned.
-
- <I>pathName</I> <B>element</B> <B>show</B> ?<I>nameList</I>?
- Queries or modifies the element display list. The element dis-
- play list designates the elements drawn and in what order.
- <I>NameList</I> is a list of elements to be displayed in the order they
- are named. If there is no <I>nameList</I> argument, the current dis-
- play list is returned.
-
- <I>pathName</I> <B>element</B> <B>type</B> <I>elemName</I>
- Returns the type of <I>elemName</I>. If the element is a bar element,
- the commands returns the string "bar", otherwise it returns
- "line".
-
- <B>GRID</B> <B>COMPONENT</B>
- Grid lines extend from the major and minor ticks of each axis horizon-
- tally or vertically across the plotting area. The following operations
- are available for grid lines.
-
- <I>pathName</I> <B>grid</B> <B>cget</B> <I>option</I>
- Returns the current value of the grid line configuration option
- given by <I>option</I>. <I>Option</I> may be any option described below for
- the grid <B>configure</B> operation.
-
- <I>pathName</I> <B>grid</B> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options for grid lines.
- If <I>option</I> isn't specified, a list describing all the current
- grid options for <I>pathName</I> is returned. If <I>option</I> is specified,
- but not <I>value</I>, then a list describing <I>option</I> is returned. If
- one or more <I>option</I> and <I>value</I> pairs are specified, then for each
- pair, the grid line option <I>option</I> is set to <I>value</I>. The follow-
- ing options are valid for grid lines.
-
- <B>-color</B> <I>color</I>
- Sets the color of the grid lines. The default is black.
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of the grid lines. <I>DashList</I> is a list
- of up to 11 numbers that alternately represent the
- lengths of the dashes and gaps on the grid lines. Each
- number must be between 1 and 255. If <I>dashList</I> is "", the
- grid will be solid lines.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the grid should be drawn. If <I>boolean</I> is
-
- <B>-minor</B> <I>boolean</I>
- Indicates whether the grid lines should be drawn for
- minor ticks. If <I>boolean</I> is true, the lines will appear
- at minor tick intervals. The default is 1.
-
- Grid configuration options may also be set by the <B>option</B> com-
- mand. The resource name and class are grid and Grid respec-
- tively. option add *Barchart.grid.LineWidth 2 option add *Bar-
- chart.Grid.Color black
-
- <I>pathName</I> <B>grid</B> <B>off</B>
- Turns off the display the grid lines.
-
- <I>pathName</I> <B>grid</B> <B>on</B>
- Turns on the display the grid lines.
-
- <I>pathName</I> <B>grid</B> <B>toggle</B>
- Toggles the display of the grid.
-
- <B>LEGEND</B> <B>COMPONENT</B>
- The legend displays a list of the data elements. Each entry consists
- of the element's symbol and label. The legend can appear in any margin
- (the default location is in the right margin). It can also be posi-
- tioned anywhere within the plotting area.
-
- The following operations are valid for the legend.
-
- <I>pathName</I> <B>legend</B> <B>activate</B> <I>pattern</I>...
- Selects legend entries to be drawn using the active legend col-
- ors and relief. All entries whose element names match <I>pattern</I>
- are selected. To be selected, the element name must match only
- one <I>pattern</I>.
-
- <I>pathName</I> <B>legend</B> <B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?
- Associates <I>command</I> with <I>tagName</I> such that whenever the event
- sequence given by <I>sequence</I> occurs for a legend entry with this
- tag, <I>command</I> will be invoked. Implicitly the element names in
- the entry are tags. The syntax is similar to the <B>bind</B> command
- except that it operates on legend entries, rather than widgets.
- See the <B>bind</B> manual entry for complete details on <I>sequence</I> and
- the substitutions performed on <I>command</I> before invoking it.
-
- If all arguments are specified then a new binding is created,
- replacing any existing binding for the same <I>sequence</I> and <I>tag-</I>
- <I>Name</I>. If the first character of <I>command</I> is + then <I>command</I> aug-
- ments an existing binding rather than replacing it. If no <I>com-</I>
- <I>mand</I> argument is provided then the command currently associated
- with <I>tagName</I> and <I>sequence</I> (it's an error occurs if there's no
- such binding) is returned. If both <I>command</I> and <I>sequence</I> are
- missing then a list of all the event sequences for which bind-
- ings have been defined for <I>tagName</I>.
-
- <B>-activebackground</B> <I>color</I>
- Sets the background color for active legend entries. All
- legend entries marked active (see the legend <B>activate</B>
- operation) are drawn using this background color.
-
- <B>-activeborderwidth</B> <I>pixels</I>
- Sets the width of the 3-D border around the outside edge
- of the active legend entries. The default is 2.
-
- <B>-activeforeground</B> <I>color</I>
- Sets the foreground color for active legend entries. All
- legend entries marked as active (see the legend <B>activate</B>
- operation) are drawn using this foreground color.
-
- <B>-activerelief</B> <I>relief</I>
- Specifies the 3-D effect desired for active legend
- entries. <I>Relief</I> denotes how the interior of the entry
- should appear relative to the legend; for example, raised
- means the entry should appear to protrude from the leg-
- end, relative to the surface of the legend. The default
- is flat.
-
- <B>-anchor</B> <I>anchor</I>
- Tells how to position the legend relative to the posi-
- tioning point for the legend. This is dependent on the
- value of the <B>-position</B> option. The default is center.
-
- left or right
- The anchor describes how to position the leg-
- end vertically.
-
- top or bottom
- The anchor describes how to position the leg-
- end horizontally.
-
- @x,y The anchor specifies how to position the leg-
- end relative to the positioning point. For
- example, if <I>anchor</I> is center then the legend
- is centered on the point; if <I>anchor</I> is n then
- the legend will be drawn such that the top
- center point of the rectangular region occu-
- pied by the legend will be at the positioning
- point.
-
- plotarea The anchor specifies how to position the leg-
- end relative to the plotting area. For exam-
- ple, if <I>anchor</I> is center then the legend is
- centered in the plotting area; if <I>anchor</I> is
- ne then the legend will be drawn such that
- occupies the upper right corner of the plot-
- ting area.
-
- of the legend (if such border is being drawn; the <B>relief</B>
- option determines this). The default is 2 pixels.
-
- <B>-font</B> <I>fontName</I>
- <I>FontName</I> specifies a font to use when drawing the labels
- of each element into the legend. The default is *-Hel-
- vetica-Bold-R-Normal-*-12-120-*.
-
- <B>-foreground</B> <I>color</I>
- Sets the foreground color of the text drawn for the ele-
- ment's label. The default is black.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the legend should be displayed. If
- <I>boolean</I> is true, the legend will not be draw. The
- default is no.
-
- <B>-ipadx</B> <I>pad</I>
- Sets the amount of internal padding to be added to the
- width of each legend entry. <I>Pad</I> can be a list of one or
- two screen distances. If <I>pad</I> has two elements, the left
- side of the legend entry is padded by the first distance
- and the right side by the second. If <I>pad</I> is just one
- distance, both the left and right sides are padded
- evenly. The default is 2.
-
- <B>-ipady</B> <I>pad</I>
- Sets an amount of internal padding to be added to the
- height of each legend entry. <I>Pad</I> can be a list of one or
- two screen distances. If <I>pad</I> has two elements, the top
- of the entry is padded by the first distance and the bot-
- tom by the second. If <I>pad</I> is just one distance, both the
- top and bottom of the entry are padded evenly. The
- default is 2.
-
- <B>-padx</B> <I>pad</I>
- Sets the padding to the left and right exteriors of the
- legend. <I>Pad</I> can be a list of one or two screen dis-
- tances. If <I>pad</I> has two elements, the left side of the
- legend is padded by the first distance and the right side
- by the second. If <I>pad</I> has just one distance, both the
- left and right sides are padded evenly. The default is
- 4.
-
- <B>-pady</B> <I>pad</I>
- Sets the padding above and below the legend. <I>Pad</I> can be
- a list of one or two screen distances. If <I>pad</I> has two
- elements, the area above the legend is padded by the
- first distance and the area below by the second. If <I>pad</I>
- is just one distance, both the top and bottom areas are
- padded evenly. The default is 0.
-
- drawn on top of any elements that may overlap it. The
- default is no.
-
- <B>-relief</B> <I>relief</I>
- Specifies the 3-D effect for the border around the leg-
- end. <I>Relief</I> specifies how the interior of the legend
- should appear relative to the bar chart; for example,
- raised means the legend should appear to protrude from
- the bar chart, relative to the surface of the bar chart.
- The default is sunken.
-
- Legend configuration options may also be set by the <B>option</B> com-
- mand. The resource name and class are legend and Legend respec-
- tively. option add *Barchart.legend.Foreground blue option add
- *Barchart.Legend.Relief raised
-
- <I>pathName</I> <B>legend</B> <B>deactivate</B> <I>pattern</I>...
- Selects legend entries to be drawn using the normal legend col-
- ors and relief. All entries whose element names match <I>pattern</I>
- are selected. To be selected, the element name must match only
- one <I>pattern</I>.
-
- <I>pathName</I> <B>legend</B> <B>get</B> <I>pos</I>
- Returns the name of the element whose entry is at the screen
- position <I>pos</I> in the legend. <I>Pos</I> must be in the form "<I>@x,y</I>",
- where <I>x</I> and <I>y</I> are window coordinates. If the given coordinates
- do not lie over a legend entry, "" is returned.
-
- <B>PEN</B> <B>COMPONENTS</B>
- Pens define attributes for elements. Pens mirror the configuration
- options of data elements that pertain to how symbols and lines are
- drawn. Data elements use pens to determine how they are drawn. A data
- element may use several pens at once. In this case, the pen used for a
- particular data point is determined from each element's weight vector
- (see the element's <B>-weight</B> and <B>-style</B> options).
-
- One pen, called activeBar, is automatically created. It's used as the
- default active pen for elements. So you can change the active
- attributes for all elements by simply reconfiguring this pen. .g pen
- configure "activeBar" -fg green -bg green4 You can create and use sev-
- eral pens. To create a pen, invoke the pen component and its create
- operation. .g pen create myPen You map pens to a data element using
- either the element's <B>-pen</B> or <B>-activepen</B> options. .g element create
- "e1" -xdata $x -ydata $tempData \
- -pen myPen An element can use several pens at once. This is done by
- specifying the name of the pen in the element's style list (see the
- <B>-styles</B> option). .g element configure "e1" -styles { myPen 2.0 3.0 }
- This says that any data point with a weight between 2.0 and 3.0 is to
- be drawn using the pen myPen. All other points are drawn with the ele-
- ment's default attributes.
-
- The following operations are available for pen components.
- <I>value</I>. The following options are valid for pens.
-
- <B>-background</B> <I>color</I>
- Sets the the color of the border around each bar. The
- default is white.
-
- <B>-borderwidth</B> <I>pixels</I>
- Sets the border width of the 3-D border drawn around the
- outside of each bar. The <B>-relief</B> option determines if
- such a border is drawn. <I>Pixels</I> must be a valid screen
- distance like 2 or 0.25i. The default is 2.
-
- <B>-foreground</B> <I>color</I>
- Sets the color of the interior of the bars.
-
- <B>-relief</B> <I>string</I>
- Specifies the 3-D effect desired for bars. <I>Relief</I> indi-
- cates how the interior of the bar should appear relative
- to the surface of the chart; for example, raised means
- the bar should appear to protrude from the bar chart,
- relative to the surface of the plotting area. The
- default is raised.
-
- <B>-stipple</B> <I>bitmap</I>
- Specifies a stipple pattern with which to draw the bars.
- If <I>bitmap</I> is "", then the bar is drawn in a solid fash-
- ion.
-
- <B>-type</B> <I>elemType</I>
- Specifies the type of element the pen is to be used with.
- This option should only be employed when creating the
- pen. This is for those that wish to mix different types
- of elements (bars and lines) on the same graph. The
- default type is "bar".
-
- Pen configuration options may be also be set by the <B>option</B> com-
- mand. The resource class is Pen. The resource names are the
- names of the pens. option add *Barchart.Pen.Foreground
- blue option add *Barchart.activeBar.foreground green
-
- <I>pathName</I> <B>pen</B> <B>create</B> <I>penName</I> ?<I>option</I> <I>value</I>?...
- Creates a new pen by the name <I>penName</I>. No pen by the same name
- can already exist. <I>Option</I> and <I>value</I> are described in above in
- the pen <B>configure</B> operation.
-
- <I>pathName</I> <B>pen</B> <B>delete</B> ?<I>penName</I>?...
- Deletes the named pens. A pen is not really deleted until it is
- not longer in use, so it's safe to delete pens mapped to ele-
- ments.
-
- <I>pathName</I> <B>pen</B> <B>names</B> ?<I>pattern</I>?...
- Returns a list of pens matching zero or more patterns. If no
- <I>option</I>. <I>Option</I> may be any option described below for the post-
- script <B>configure</B> operation.
-
- <I>pathName</I> <B>postscript</B> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options for PostScript
- generation. If <I>option</I> isn't specified, a list describing the
- current postscript options for <I>pathName</I> is returned. If <I>option</I>
- is specified, but not <I>value</I>, then a list describing <I>option</I> is
- returned. If one or more <I>option</I> and <I>value</I> pairs are specified,
- then for each pair, the postscript option <I>option</I> is set to
- <I>value</I>. The following postscript options are available.
-
- <B>-center</B> <I>boolean</I>
- Indicates whether the plot should be centered on the
- PostScript page. If <I>boolean</I> is false, the plot will be
- placed in the upper left corner of the page. The default
- is 1.
-
- <B>-colormap</B> <I>varName</I>
- <I>VarName</I> must be the name of a global array variable that
- specifies a color mapping from the X color name to Post-
- Script. Each element of <I>varName</I> must consist of Post-
- Script code to set a particular color value (e.g. ``1.0
- 1.0 0.0 setrgbcolor''). When generating color informa-
- tion in PostScript, the array variable <I>varName</I> is checked
- if an element of the name as the color exists. If so, it
- uses its value as the PostScript command to set the
- color. If this option hasn't been specified, or if there
- isn't an entry in <I>varName</I> for a given color, then it uses
- the red, green, and blue intensities from the X color.
-
- <B>-colormode</B> <I>mode</I>
- Specifies how to output color information. <I>Mode</I> must be
- either color (for full color output), gray (convert all
- colors to their gray-scale equivalents) or mono (convert
- foreground colors to black and background colors to
- white). The default mode is color.
-
- <B>-fontmap</B> <I>varName</I>
- <I>VarName</I> must be the name of a global array variable that
- specifies a font mapping from the X font name to Post-
- Script. Each element of <I>varName</I> must consist of a Tcl
- list with one or two elements; the name and point size of
- a PostScript font. When outputting PostScript commands
- for a particular font, the array variable <I>varName</I> is
- checked to see if an element by the specified font
- exists. If there is such an element, then the font
- information contained in that element is used in the
- PostScript output. (If the point size is omitted from
- the list, the point size of the X font is used). Other-
- wise the X font is examined in an attempt to guess what
- PostScript font to use. This works only for fonts whose
- widget's height. The default is 0.
-
- <B>-landscape</B> <I>boolean</I>
- If <I>boolean</I> is true, this specifies the printed area is to
- be rotated 90 degrees. In non-rotated output the X-axis
- of the printed area runs along the short dimension of the
- page (``portrait'' orientation); in rotated output the
- X-axis runs along the long dimension of the page (``land-
- scape'' orientation). Defaults to 0.
-
- <B>-maxpect</B> <I>boolean</I>
- Indicates to scale the plot so that it fills the Post-
- Script page. The aspect ratio of the barchart is still
- retained. The default is 0.
-
- <B>-padx</B> <I>pad</I>
- Sets the horizontal padding for the left and right page
- borders. The borders are exterior to the plot. <I>Pad</I> can
- be a list of one or two screen distances. If <I>pad</I> has two
- elements, the left border is padded by the first distance
- and the right border by the second. If <I>pad</I> has just one
- distance, both the left and right borders are padded
- evenly. The default is 1i.
-
- <B>-pady</B> <I>pad</I>
- Sets the vertical padding for the top and bottom page
- borders. The borders are exterior to the plot. <I>Pad</I> can
- be a list of one or two screen distances. If <I>pad</I> has two
- elements, the top border is padded by the first distance
- and the bottom border by the second. If <I>pad</I> has just one
- distance, both the top and bottom borders are padded
- evenly. The default is 1i.
-
- <B>-paperheight</B> <I>pixels</I>
- Sets the height of the postscript page. This can be used
- to select between different page sizes (letter, A4, etc).
- The default height is 11.0i.
-
- <B>-paperwidth</B> <I>pixels</I>
- Sets the width of the postscript page. This can be used
- to select between different page sizes (letter, A4, etc).
- The default width is 8.5i.
-
- <B>-width</B> <I>pixels</I>
- Sets the width of the plot. This lets you generate a
- plot of a width different from that of the widget. If
- <I>pixels</I> is 0, the width is the same as the widget's width.
- The default is 0.
-
- Postscript configuration options may be also be set by the
- <B>option</B> command. The resource name and class are postscript and
- Postscript respectively. option add *Barchart.postscript.Deco-
-
- with a particular element, so that when the element is hidden or un-
- hidden, so is the marker. By default, markers are the last items
- drawn, so that data elements will appear in behind them. You can
- change this by configuring the <B>-under</B> option.
-
- Markers, in contrast to elements, don't affect the scaling of the coor-
- dinate axes. They can also have <I>elastic</I> coordinates (specified by -Inf
- and Inf respectively) that translate into the minimum or maximum limit
- of the axis. For example, you can place a marker so it always remains
- in the lower left corner of the plotting area, by using the coordinates
- -Inf,-Inf.
-
- The following operations are available for markers.
-
- <I>pathName</I> <B>marker</B> <B>after</B> <I>markerId</I> ?<I>afterId</I>?
- Changes the order of the markers, drawing the first marker after
- the second. If no second <I>afterId</I> argument is specified, the
- marker is placed at the end of the display list. This command
- can be used to control how markers are displayed since markers
- are drawn in the order of this display list.
-
- <I>pathName</I> <B>marker</B> <B>before</B> <I>markerId</I> ?<I>beforeId</I>?
- Changes the order of the markers, drawing the first marker
- before the second. If no second <I>beforeId</I> argument is specified,
- the marker is placed at the beginning of the display list. This
- command can be used to control how markers are displayed since
- markers are drawn in the order of this display list.
-
- <I>pathName</I> <B>marker</B> <B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?
- Associates <I>command</I> with <I>tagName</I> such that whenever the event
- sequence given by <I>sequence</I> occurs for a marker with this tag,
- <I>command</I> will be invoked. The syntax is similar to the <B>bind</B> com-
- mand except that it operates on graph markers, rather than wid-
- gets. See the <B>bind</B> manual entry for complete details on <I>sequence</I>
- and the substitutions performed on <I>command</I> before invoking it.
-
- If all arguments are specified then a new binding is created,
- replacing any existing binding for the same <I>sequence</I> and <I>tag-</I>
- <I>Name</I>. If the first character of <I>command</I> is + then <I>command</I> aug-
- ments an existing binding rather than replacing it. If no <I>com-</I>
- <I>mand</I> argument is provided then the command currently associated
- with <I>tagName</I> and <I>sequence</I> (it's an error occurs if there's no
- such binding) is returned. If both <I>command</I> and <I>sequence</I> are
- missing then a list of all the event sequences for which bind-
- ings have been defined for <I>tagName</I>.
-
- <I>pathName</I> <B>marker</B> <B>cget</B> <I>option</I>
- Returns the current value of the marker configuration option
- given by <I>option</I>. <I>Option</I> may be any option described below in
- the <B>configure</B> operation.
-
- <I>pathName</I> <B>marker</B> <B>configure</B> <I>markerId</I> ?<I>option</I> <I>value</I>?...
- determine how events for markers are handled. Each tag
- in the list matching the current event sequence will have
- its Tcl command executed. Implicitly the name of the
- marker is always the first tag in the list. The default
- value is all.
-
- <B>-coords</B> <I>coordList</I>
- Specifies the coordinates of the marker. <I>CoordList</I> is a
- list of graph-coordinates. The number of coordinates
- required is dependent on the type of marker. Text,
- image, and window markers need only two coordinates (an
- X-Y coordinate). Bitmap markers can take either two or
- four coordinates (if four, they represent the corners of
- the bitmap). Line markers need at least four coordinates,
- polygons at least six. If <I>coordList</I> is "", the marker
- will not be displayed. The default is "".
-
- <B>-element</B> <I>elemName</I>
- Links the marker with the element <I>elemName</I>. The marker
- is drawn only if the element is also currently displayed
- (see the element's <B>show</B> operation). If <I>elemName</I> is "",
- the marker is always drawn. The default is "".
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the marker is drawn. If <I>boolean</I> is
- true, the marker is not drawn. The default is no.
-
- <B>-mapx</B> <I>xAxis</I>
- Specifies the X-axis to map the marker's X-coordinates
- onto. <I>XAxis</I> must the name of an axis. The default is x.
-
- <B>-mapy</B> <I>yAxis</I>
- Specifies the Y-axis to map the marker's Y-coordinates
- onto. <I>YAxis</I> must the name of an axis. The default is y.
-
- <B>-name</B> <I>markerId</I>
- Changes the identifier for the marker. The identifier
- <I>markerId</I> can not already be used by another marker. If
- this option isn't specified, the marker's name is
- uniquely generated.
-
- <B>-under</B> <I>boolean</I>
- Indicates whether the marker is drawn below/above data
- elements. If <I>boolean</I> is true, the marker is be drawn
- underneath the data elements. Otherwise, the marker is
- drawn on top of the element. The default is 0.
-
- <B>-xoffset</B> <I>pixels</I>
- Specifies a screen distance to offset the marker horizon-
- tally. <I>Pixels</I> is a valid screen distance, such as 2 or
- 1.2i. The default is 0.
-
- Creates a marker of the selected type. <I>Type</I> may be either text,
- line, bitmap, image, polygon, or window. This command returns
- the marker identifier, used as the <I>markerId</I> argument in the
- other marker-related commands. If the <B>-name</B> option is used,
- this overrides the normal marker identifier. If the name pro-
- vided is already used for another marker, the new marker will
- replace the old.
-
- <I>pathName</I> <B>marker</B> <B>delete</B> ?<I>name</I>?...
- Removes one of more markers. The graph will automatically be
- redrawn without the marker..
-
- <I>pathName</I> <B>marker</B> <B>exists</B> <I>markerId</I>
- Returns 1 if the marker <I>markerId</I> exists and 0 otherwise.
-
- <I>pathName</I> <B>marker</B> <B>names</B> ?<I>pattern</I>?
- Returns the names of all the markers that currently exist. If
- <I>pattern</I> is supplied, only those markers whose names match it
- will be returned.
-
- <I>pathName</I> <B>marker</B> <B>type</B> <I>markerId</I>
- Returns the type of the marker given by <I>markerId</I>, such as line
- or text. If <I>markerId</I> is not a valid a marker identifier, "" is
- returned.
-
- <B>BITMAP</B> <B>MARKERS</B>
- A bitmap marker displays a bitmap. The size of the bitmap is con-
- trolled by the number of coordinates specified. If two coordinates,
- they specify the position of the top-left corner of the bitmap. The
- bitmap retains its normal width and height. If four coordinates, the
- first and second pairs of coordinates represent the corners of the bit-
- map. The bitmap will be stretched or reduced as necessary to fit into
- the bounding rectangle.
-
- Bitmap markers are created with the marker's <B>create</B> operation in the
- form: <I>pathName</I> <B>marker</B> <B>create</B> <B>bitmap</B> ?<I>option</I> <I>value</I>?... There may be
- many <I>option</I>-<I>value</I> pairs, each sets a configuration options for the
- marker. These same <I>option</I>-<I>value</I> pairs may be used with the marker's
- <B>configure</B> operation.
-
- The following options are specific to bitmap markers:
-
- <B>-background</B> <I>color</I>
- Same as the <B>-fill</B> option.
-
- <B>-bitmap</B> <I>bitmap</I>
- Specifies the bitmap to be displayed. If <I>bitmap</I> is "", the
- marker will not be displayed. The default is "".
-
- <B>-fill</B> <I>color</I>
- Sets the background color of the bitmap. If <I>color</I> is the empty
- string, no background will be transparent. The default back-
-
- <B>-rotate</B> <I>theta</I>
- Sets the rotation of the bitmap. <I>Theta</I> is a real number repre-
- senting the angle of rotation in degrees. The marker is first
- rotated and then placed according to its anchor position. The
- default rotation is 0.0.
-
- <B>IMAGE</B> <B>MARKERS</B>
- A image marker displays an image. Image markers are created with the
- marker's <B>create</B> operation in the form: <I>pathName</I> <B>marker</B> <B>create</B> <B>image</B>
- ?<I>option</I> <I>value</I>?... There may be many <I>option</I>-<I>value</I> pairs, each sets a
- configuration option for the marker. These same <I>option</I>-<I>value</I> pairs may
- be used with the marker's <B>configure</B> operation.
-
- The following options are specific to image markers:
-
- <B>-anchor</B> <I>anchor</I>
- <I>Anchor</I> tells how to position the image relative to the position-
- ing point for the image. For example, if <I>anchor</I> is center then
- the image is centered on the point; if <I>anchor</I> is n then the
- image will be drawn such that the top center point of the rect-
- angular region occupied by the image will be at the positioning
- point. This option defaults to center.
-
- <B>-image</B> <I>image</I>
- Specifies the image to be drawn. If <I>image</I> is "", the marker
- will not be drawn. The default is "".
-
- <B>LINE</B> <B>MARKERS</B>
- A line marker displays one or more connected line segments. Line mark-
- ers are created with marker's <B>create</B> operation in the form: <I>pathName</I>
- <B>marker</B> <B>create</B> <B>line</B> ?<I>option</I> <I>value</I>?... There may be many <I>option</I>-<I>value</I>
- pairs, each sets a configuration option for the marker. These same
- <I>option</I>-<I>value</I> pairs may be used with the marker's <B>configure</B> operation.
-
- The following options are specific to line markers:
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of the line. <I>DashList</I> is a list of up to 11
- numbers that alternately represent the lengths of the dashes and
- gaps on the line. Each number must be between 1 and 255. If
- <I>dashList</I> is "", the marker line will be solid.
-
- <B>-fill</B> <I>color</I>
- Sets the background color of the line. This color is used with
- striped lines (see the <B>-dashes</B> option). If <I>color</I> is the empty
- string, no background color is drawn (the line will be dashed,
- not striped). The default background color is "".
-
- <B>-linewidth</B> <I>pixels</I>
- Sets the width of the lines. The default width is 0.
-
- in the form: <I>pathName</I> <B>marker</B> <B>create</B> <B>polygon</B> ?<I>option</I> <I>value</I>?... There
- may be many <I>option</I>-<I>value</I> pairs, each sets a configuration option for
- the marker. These same <I>option</I>-<I>value</I> pairs may be used with the <B>marker</B>
- <B>configure</B> command to change the marker's configuration. The following
- options are supported for polygon markers:
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of the outline of the polygon. <I>DashList</I> is a
- list of up to 11 numbers that alternately represent the lengths
- of the dashes and gaps on the outline. Each number must be
- between 1 and 255. If <I>dashList</I> is "", the outline will be a
- solid line.
-
- <B>-fill</B> <I>color</I>
- Sets the fill color of the polygon. If <I>color</I> is "", then the
- interior of the polygon is transparent. The default is white.
-
- <B>-linewidth</B> <I>pixels</I>
- Sets the width of the outline of the polygon. If <I>pixels</I> is zero,
- no outline is drawn. The default is 0.
-
- <B>-outline</B> <I>color</I>
- Sets the color of the outline of the polygon. If the polygon is
- stippled (see the <B>-stipple</B> option), then this represents the
- foreground color of the stipple. The default is black.
-
- <B>-stipple</B> <I>bitmap</I>
- Specifies that the polygon should be drawn with a stippled pat-
- tern rather than a solid color. <I>Bitmap</I> specifies a bitmap to use
- as the stipple pattern. If <I>bitmap</I> is "", then the polygon is
- filled with a solid color (if the <B>-fill</B> option is set). The
- default is "".
-
- <B>TEXT</B> <B>MARKERS</B>
- A text marker displays a string of characters on one or more lines of
- text. Embedded newlines cause line breaks. They may be used to anno-
- tate regions of the graph. Text markers are created with the <B>create</B>
- operation in the form: <I>pathName</I> <B>marker</B> <B>create</B> <B>text</B> ?<I>option</I> <I>value</I>?...
- There may be many <I>option</I>-<I>value</I> pairs, each sets a configuration option
- for the text marker. These same <I>option</I>-<I>value</I> pairs may be used with
- the marker's <B>configure</B> operation.
-
- The following options are specific to text markers:
-
- <B>-anchor</B> <I>anchor</I>
- <I>Anchor</I> tells how to position the text relative to the position-
- ing point for the text. For example, if <I>anchor</I> is center then
- the text is centered on the point; if <I>anchor</I> is n then the text
- will be drawn such that the top center point of the rectangular
- region occupied by the text will be at the positioning point.
- This default is center.
-
-
- <B>-justify</B> <I>justify</I>
- Specifies how the text should be justified. This matters only
- when the marker contains more than one line of text. <I>Justify</I>
- must be left, right, or center. The default is center.
-
- <B>-outline</B> <I>color</I>
- Sets the color of the text. The default value is black.
-
- <B>-padx</B> <I>pad</I>
- Sets the padding to the left and right exteriors of the text.
- <I>Pad</I> can be a list of one or two screen distances. If <I>pad</I> has
- two elements, the left side of the text is padded by the first
- distance and the right side by the second. If <I>pad</I> has just one
- distance, both the left and right sides are padded evenly. The
- default is 4.
-
- <B>-pady</B> <I>pad</I>
- Sets the padding above and below the text. <I>Pad</I> can be a list of
- one or two screen distances. If <I>pad</I> has two elements, the area
- above the text is padded by the first distance and the area
- below by the second. If <I>pad</I> is just one distance, both the top
- and bottom areas are padded evenly. The default is 4.
-
- <B>-rotate</B> <I>theta</I>
- Specifies the number of degrees to rotate the text. <I>Theta</I> is a
- real number representing the angle of rotation. The marker is
- first rotated along its center and is then drawn according to
- its anchor position. The default is 0.0.
-
- <B>-text</B> <I>text</I>
- Specifies the text of the marker. The exact way the text is
- displayed may be affected by other options such as <B>-anchor</B> or
- <B>-rotate</B>.
-
- <B>WINDOW</B> <B>MARKERS</B>
- A window marker displays a widget at a given position. Window markers
- are created with the marker's <B>create</B> operation in the form: <I>pathName</I>
- <B>marker</B> <B>create</B> <B>window</B> ?<I>option</I> <I>value</I>?... There may be many <I>option</I>-<I>value</I>
- pairs, each sets a configuration option for the marker. These same
- <I>option</I>-<I>value</I> pairs may be used with the marker's <B>configure</B> command.
-
- The following options are specific to window markers:
-
- <B>-anchor</B> <I>anchor</I>
- <I>Anchor</I> tells how to position the widget relative to the posi-
- tioning point for the widget. For example, if <I>anchor</I> is center
- then the widget is centered on the point; if <I>anchor</I> is n then
- the widget will be displayed such that the top center point of
- the rectangular region occupied by the widget will be at the
- positioning point. This option defaults to center.
-
-
-</PRE>
-<H2>GRAPH COMPONENT BINDINGS</H2><PRE>
- Specific barchart components, such as elements, markers and legend
- entries, can have a command trigger when event occurs in them, much
- like canvas items in Tk's canvas widget. Not all event sequences are
- valid. The only binding events that may be specified are those related
- to the mouse and keyboard (such as <B>Enter</B>, <B>Leave</B>, <B>ButtonPress</B>, <B>Motion</B>,
- and <B>KeyPress</B>).
-
- Only one element or marker can be picked during an event. This means,
- that if the mouse is directly over both an element and a marker, only
- the uppermost component is selected. This isn't true for legend
- entries. Both a legend entry and an element (or marker) binding com-
- mands will be invoked if both items are picked.
-
- It is possible for multiple bindings to match a particular event. This
- could occur, for example, if one binding is associated with the element
- name and another is associated with one of the element's tags (see the
- <B>-bindtags</B> option). When this occurs, all of the matching bindings are
- invoked. A binding associated with the element name is invoked first,
- followed by one binding for each of the element's bindtags. If there
- are multiple matching bindings for a single tag, then only the most
- specific binding is invoked. A continue command in a binding script
- terminates that script, and a break command terminates that script and
- skips any remaining scripts for the event, just as for the bind com-
- mand.
-
- The <B>-bindtags</B> option for these components controls addition tag names
- which can be matched. Implicitly elements and markers always have tags
- matching their names. Setting the value of the <B>-bindtags</B> option
- doesn't change this.
-
-
-</PRE>
-<H2>C LANGUAGE API</H2><PRE>
- You can manipulate data elements from the C language. There may be
- situations where it is too expensive to translate the data values from
- ASCII strings. Or you might want to read data in a special file for-
- mat.
-
- Data can manipulated from the C language using BLT vectors. You spec-
- ify the X-Y data coordinates of an element as vectors and manipulate
- the vector from C. The barchart will be redrawn automatically after
- the vectors are updated.
-
- From Tcl, create the vectors and configure the element to use them.
- vector X Y .g element configure line1 -xdata X -ydata Y To set data
- points from C, you pass the values as arrays of doubles using the
- <B>Blt_ResetVector</B> call. The vector is reset with the new data and at the
- next idle point (when Tk re-enters its event loop), the graph will be
- redrawn automatically. #include &lt;tcl.h&gt; #include &lt;blt.h&gt;
-
- register int i; Blt_Vector *xVec, *yVec; double x[50], y[50];
-
- /* Get the BLT vectors "X" and "Y" (created above from Tcl) */ if
- There may be cases where the bar chart needs to be drawn and updated as
- quickly as possible. If drawing speed becomes a big problem, here are
- a few tips to speed up displays.
-
- <B>o</B> Try to minimize the number of data points. The more data points
- looked at, the more work the bar chart must do.
-
- <B>o</B> If your data is generated as floating point values, the time required
- to convert the data values to and from ASCII strings can be signifi-
- cant, especially when there any many data points. You can avoid the
- redundant string-to-decimal conversions using the C API to BLT vec-
- tors.
-
- <B>o</B> Don't stipple or dash the element. Solid bars are much faster.
-
- <B>o</B> If you update data elements frequently, try turning off the widget's
- <B>-bufferelements</B> option. When the bar chart is first displayed, it
- draws data elements into an internal pixmap. The pixmap acts as a
- cache, so that when the bar chart needs to be redrawn again, and the
- data elements or coordinate axes haven't changed, the pixmap is sim-
- ply copied to the screen. This is especially useful when you are
- using markers to highlight points and regions on the bar chart. But
- if the bar chart is updated frequently, changing either the element
- data or coordinate axes, the buffering becomes redundant.
-
-
-</PRE>
-<H2>LIMITATIONS</H2><PRE>
- Auto-scale routines do not use requested min/max limits as boundaries
- when the axis is logarithmically scaled.
-
- The PostScript output generated for polygons with more than 1500 points
- may exceed the limits of some printers (See PostScript Language Refer-
- ence Manual, page 568). The work-around is to break the polygon into
- separate pieces.
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- bar chart, widget
-
-
-
-BLT BLT_VERSION barchart(n)
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/tkblt/doc/barchart.n b/tkblt/doc/barchart.n
deleted file mode 100644
index 7a9dac8..0000000
--- a/tkblt/doc/barchart.n
+++ /dev/null
@@ -1,2239 +0,0 @@
-'\"
-'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-'\" This code has been modified under the terms listed below and is made
-'\" available under the same terms.
-'\"
-'\" Copyright 1991-1998 by Bell Labs Innovations for Lucent Technologies.
-'\"
-'\" Permission to use, copy, modify, and distribute this software and its
-'\" documentation for any purpose and without fee is hereby granted, provided
-'\" that the above copyright notice appear in all copies and that both that the
-'\" copyright notice and warranty disclaimer appear in supporting documentation,
-'\" and that the names of Lucent Technologies any of their entities not be used
-'\" in advertising or publicity pertaining to distribution of the software
-'\" without specific, written prior permission.
-'\"
-'\" Lucent Technologies disclaims all warranties with regard to this software,
-'\" including all implied warranties of merchantability and fitness. In no event
-'\" shall Lucent Technologies be liable for any special, indirect or
-'\" consequential damages or any damages whatsoever resulting from loss of use,
-'\" data or profits, whether in an action of contract, negligence or other
-'\" tortuous action, arising out of or in connection with the use or performance
-'\" of this software.
-'\"
-'\" Barchart widget created by Sani Nassif and George Howlett.
-'\"
-.TH barchart n BLT_VERSION BLT "BLT Built-In Commands"
-.BS
-'\" Note: do not modify the .SH NAME line immediately below!
-.SH NAME
-barchart \- Bar chart for plotting X-Y coordinate data.
-.SH SYNOPSIS
-\fBbarchart\fI \fIpathName \fR?\fIoption value\fR?...
-.BE
-.SH DESCRIPTION
-The \fBbarchart\fR command creates a bar chart for plotting
-two-dimensional data (X-Y coordinates). A bar chart is a graphic means
-of comparing numbers by displaying bars of lengths proportional to the
-y-coordinates of the points they represented. The bar chart has many
-configurable components: coordinate axes, elements, legend, grid
-lines, cross hairs, etc. They allow you to customize the look and
-feel of the graph.
-.SH INTRODUCTION
-The \fBbarchart\fR command creates a new window for plotting
-two-dimensional data (X-Y coordinates), using bars of
-various lengths to represent the data points. The bars are drawn in a
-rectangular area displayed in the center of the new window. This is the
-\fIplotting area\fR. The coordinate axes are drawn in
-the margins surrounding the plotting area. By default, the legend is
-drawn in the right margin. The title is displayed in top margin.
-.PP
-A \fBbarchart\fR widget has several configurable components:
-coordinate axes, data elements, legend, grid, cross hairs, pens,
-postscript, and annotation markers. Each component can be queried or
-modified.
-.TP 1i
-\f(CWaxis\fR
-
-Up to four coordinate axes (two X\-coordinate and two Y\-coordinate
-axes) can be displayed, but you can create and use any number of
-axes. Axes control what region of data is displayed and how the data
-is scaled. Each axis consists of the axis line, title, major and minor
-ticks, and tick labels. Tick labels display the value at each major
-tick.
-.TP 1i
-\f(CWcrosshairs\fR
-Cross hairs are used to position the mouse pointer relative to the X
-and Y coordinate axes. Two perpendicular lines, intersecting at the
-current location of the mouse, extend across the plotting area to the
-coordinate axes.
-.TP 1i
-\f(CWelement\fR
-An element represents a set of data to be plotted. It contains an x
-and y vector of values representing the data points. Each
-data point is displayed as a bar where the length of the bar is
-proportional to the ordinate (Y-coordinate) of the data point.
-The appearance of the bar, such as its color, stipple, or relief
-is configurable.
-.sp
-A special case exists when two or more data points have the same
-abscissa (X-coordinate). By default, the bars are overlayed, one on
-top of the other. The bars are drawn in the order of the element
-display list. But you can also configure the bars to be displayed in
-two other ways. They may be displayed as a stack, where each bar
-(with the same abscissa) is stacked on the previous. Or they can be
-drawn side-by-side as thin bars. The width of each bar is a function
-of the number of data points with the same abscissa.
-.TP 1i
-\f(CWgrid\fR
-Extends the major and minor ticks of the X\-axis and/or Y\-axis across the
-plotting area.
-.TP 1i
-\f(CWlegend\fR
-The legend displays the name and symbol of each data element.
-The legend can be drawn in any margin or in the plotting area.
-.TP 1i
-\f(CWmarker\fR
-Markers are used annotate or highlight areas of the graph. For
-example, you could use a text marker to label a particular data
-point. Markers come in various forms: text strings, bitmaps, connected
-line segments, images, polygons, or embedded widgets.
-.TP 1i
-\f(CWpen\fR
-Pens define attributes for elements. Data elements use pens to
-specify how they should be drawn. A data element may use many pens at
-once. Here the particular pen used for a data point is determined
-from each element's weight vector (see the element's \fB\-weight\fR
-and \fB\-style\fR options).
-.TP 1i
-\f(CWpostscript\fR
-The widget can generate encapsulated PostScript output. This component
-has several options to configure how the PostScript is generated.
-.SH SYNTAX
-.DS
-\fBbarchart \fIpathName \fR?\fIoption value\fR?...
-.DE
-The \fBbarchart\fR command creates a new window \fIpathName\fR and makes
-it into a \fBbarchart\fR widget. At the time this command is invoked, there
-must not exist a window named \fIpathName\fR, but \fIpathName\fR's
-parent must exist. Additional options may be specified on the
-command line or in the option database to configure aspects of the
-graph such as its colors and font. See the \fBconfigure\fR operation
-below for the exact details about what \fIoption\fR and \fIvalue\fR
-pairs are valid.
-.PP
-If successful, \fBbarchart\fR returns the path name of the widget. It
-also creates a new Tcl command by the same name. You can use this
-command to invoke various operations that query or modify the graph.
-The general form is:
-.DS
-\fIpathName \fIoperation\fR \fR?\fIarg\fR?...
-.DE
-Both \fIoperation\fR and its arguments determine the exact behavior of
-the command. The operations available for the graph are described in
-the
-.SB "BARCHART OPERATIONS"
-section.
-.PP
-The command can also be used to access components of the graph.
-.DS
-\fIpathName component operation\fR ?\fIarg\fR?...
-.DE
-The operation, now located after the name of the component, is the
-function to be performed on that component. Each component has its own
-set of operations that manipulate that component. They will be
-described below in their own sections.
-.SH EXAMPLE
-The \fBbarchart\fR command creates a new bar chart.
-.CS
-# Create a new bar chart. Plotting area is black.
-barchart .b -plotbackground black
-.CE
-A new Tcl command \f(CW.b\fR is created. This command can be used
-to query and modify the bar chart. For
-example, to change the title of the graph to "My Plot", you use the
-new command and the \fBconfigure\fR operation.
-.CS
-# Change the title.
-\&.b configure -title "My Plot"
-.CE
-To add data elements, you use the command and the \fBelement\fR component.
-.CS
-# Create a new element named "e1"
-\&.b element create e1 \\
- -xdata { 1 2 3 4 5 6 7 8 9 10 } \\
- -ydata { 26.18 50.46 72.85 93.31 111.86 128.47 143.14
- 155.85 166.60 175.38 }
-.CE
-The element's X-Y coordinates are specified using lists of
-numbers. Alternately, BLT vectors could be used to hold the X-Y
-coordinates.
-.CS
-# Create two vectors and add them to the barchart.
-vector xVector yVector
-xVector set { 1 2 3 4 5 6 7 8 9 10 }
-yVector set { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85
- 166.60 175.38 }
-\&n.b element create e1 -xdata xVector -ydata yVector
-.CE
-The advantage of using vectors is that when you modify one, the graph
-is automatically redrawn to reflect the new values.
-.CS
-# Change the y coordinate of the first point.
-set yVector(0) 25.18
-.CE
-An element named \f(CWe1\fR is now created in \f(CW.b\fR. It
-is automatically added to the display list of elements. You can
-use this list to control in what order elements are displayed.
-To query or reset the element display list, you use the element's
-\fBshow\fR operation.
-.CS
-# Get the current display list
-set elemList [.b element show]
-# Remove the first element so it won't be displayed.
-\&.b element show [lrange $elemList 0 end]
-.CE
-The element will be displayed by as many bars as there are data points
-(in this case there are ten). The bars will be drawn centered at the
-x-coordinate of the data point. All the bars will have the same
-attributes (colors, stipple, etc). The width of each bar is by
-default one unit. You can change this with using the \fB\-barwidth\fR
-option.
-.CS
-# Change the scale of the x-coordinate data
-xVector set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 }
-# Make sure we change the bar width too.
-\&.b configure -barwidth 0.2
-.CE
-The height of each bar is proportional to the ordinate (Y-coordinate)
-of the data point.
-.PP
-If two or more data points have the same abscissa (X-coordinate
-value), the bars representing those data points may be drawn in
-various ways.
-The default is to overlay the bars, one on top of the other.
-The ordering is determined from the of element display list. If
-the stacked mode is selected (using the \fB\-barmode\fR configuration
-option), the bars are stacked, each bar above the previous.
-.CS
-# Display the elements as stacked.
-\&.b configure -barmode stacked
-.CE
-If the aligned mode is selected, the bars having the same
-x-coordinates are displayed side by side. The width of each bar is a
-fraction of its normal width, based upon the number of bars with the
-same x-coordinate.
-.CS
-# Display the elements side-by-side.
-\&.b configure -barmode aligned
-.CE
-By default, the element's label in the legend will be also
-\f(CWe1\fR. You can change the label, or specify no legend entry,
-again using the element's \fBconfigure\fR operation.
-.CS
-# Don't display "e1" in the legend.
-\&.b element configure e1 -label ""
-.CE
-You can configure more than just the element's label. An element has
-many attributes such as stipple, foreground and background colors,
-relief, etc.
-.CS
-\&.b element configure e1 -fg red -bg pink \\
- -stipple gray50
-.CE
-Four coordinate axes are automatically created: \f(CWx\fR, \f(CWx2\fR,
-\f(CWy\fR, and \f(CWy2\fR. And by default, elements are mapped onto the
-axes \f(CWx\fR and \f(CWy\fR. This can be changed with the \fB\-mapx\fR
-and \fB\-mapy\fR options.
-.CS
-# Map "e1" on the alternate y axis "y2".
-\&.b element configure e1 -mapy y2
-.CE
-Axes can be configured in many ways too. For example, you change the
-scale of the Y\-axis from linear to log using the \fBaxis\fR component.
-.CS
-# Y-axis is log scale.
-\&.b axis configure y -logscale yes
-.CE
-One important way axes are used is to zoom in on a particular data
-region. Zooming is done by simply specifying new axis limits using
-the \fB\-min\fR and \fB\-max\fR configuration options.
-.CS
-\&.b axis configure x \-min 1.0 \-max 1.5
-\&.b axis configure y \-min 12.0 \-max 55.15
-.CE
-To zoom interactively, you link the\fBaxis configure\fR operations with
-some user interaction (such as pressing the mouse button), using the
-\fBbind\fR command. To convert between screen and graph coordinates,
-use the \fBinvtransform\fR operation.
-.CS
-# Click the button to set a new minimum
-bind .b <ButtonPress-1> {
- %W axis configure x \-min [%W axis invtransform x %x]
- %W axis configure x \-min [%W axis invtransform x %y]
-}
-.CE
-By default, the limits of the axis are determined from data values.
-To reset back to the default limits, set the \fB\-min\fR and
-\fB\-max\fR options to the empty value.
-.CS
-# Reset the axes to autoscale again.
-\&.b axis configure x \-min {} \-max {}
-\&.b axis configure y \-min {} \-max {}
-.CE
-By default, the legend is drawn in the right margin. You can
-change this or any legend configuration options using the
-\fBlegend\fR component.
-.CS
-# Configure the legend font, color, and relief
-\&.b legend configure -position left -relief raised \\
- -font fixed -fg blue
-.CE
-To prevent the legend from being displayed, turn on the \fB\-hide\fR
-option.
-.CS
-# Don't display the legend.
-\&.b legend configure \-hide yes\fR
-.CE
-The \fBbarchart\fR has simple drawing procedures called markers. They can be
-used to highlight or annotate data in the graph. The types of markers
-available are bitmaps, polygons, lines, or windows. Markers can be
-used, for example, to mark or brush points. For example there may be
-a line marker which indicates some low-water value. Markers are created
-using the \fBmarker\fR operation.
-.CS
-# Create a line represent the low water mark at 10.0
-\&.b marker create line -name "low_water" \\
- -coords { -Inf 10.0 Inf 10.0 } \\
- -dashes { 2 4 2 } -fg red -bg blue
-.CE
-This creates a line marker named \f(CWlow_water\fR. It will display a
-horizontal line stretching across the plotting area at the
-y-coordinate 10.0. The coordinates "-Inf" and "Inf" indicate the
-relative minimum and maximum of the axis (in this case the x-axis). By
-default, markers are drawn last, on top of the bars. You can change this
-with the \fB\-under\fR option.
-.CS
-# Draw the marker before elements are drawn.
-\&.b marker configure low_water -under yes
-.CE
-You can add cross hairs or grid lines using the \fBcrosshairs\fR and
-\fBgrid\fR components.
-.CS
-# Display both cross hairs and grid lines.
-\&.b crosshairs configure -hide no -color red
-\&.b grid configure -hide no -dashes { 2 2 }
-.CE
-Finally, to get hardcopy of the graph, use the \fBpostscript\fR
-component.
-.CS
-# Print the bar chart into file "file.ps"
-\&.b postscript output file.ps -maxpect yes -decorations no
-.CE
-This generates a file \f(CWfile.ps\fR containing the encapsulated
-PostScript of the graph. The option \fB\-maxpect\fR says to scale the
-plot to the size of the page. Turning off the \fB\-decorations\fR
-option denotes that no borders or color backgrounds should be
-drawn (i.e. the background of the margins, legend, and plotting
-area will be white).
-.SH SYNTAX
-.DS
-\fBbarchart \fIpathName \fR?\fIoption value\fR?...
-.DE
-The \fBbarchart\fR command creates a new window \fIpathName\fR and makes
-it into a barchart widget. At the time this command is invoked, there
-must not exist a window named \fIpathName\fR, but \fIpathName\fR's
-parent must exist. Additional options may may be specified on the
-command line or in the option database to configure aspects of the
-bar chart such as its colors and font. See the \fBconfigure\fR operation
-below for the exact details as to what \fIoption\fR and \fIvalue\fR
-pairs are valid.
-.PP
-If successful, \fBbarchart\fR returns \fIpathName\fR. It also creates a
-new Tcl command \fIpathName\fR. This command may be used to invoke
-various operations to query or modify the bar chart. It has the general
-form:
-.DS
-\fIpathName \fIoperation\fR \fR?\fIarg\fR?...
-.DE
-Both \fIoperation\fR and its arguments determine the exact behavior of
-the command. The operations available for the bar chart are described in
-the following section.
-.SH "BARCHART OPERATIONS"
-.TP
-\fIpathName \fBbar \fIelemName \fR?\fIoption value\fR?...
-Creates a new barchart element \fIelemName\fR. It's an
-error if an element \fIelemName\fR already exists.
-See the manual for \fBbarchart\fR for details about
-what \fIoption\fR and \fIvalue\fR pairs are valid.
-.TP
-\fIpathName \fBcget\fR \fIoption\fR
-Returns the current value of the configuration option given by
-\fIoption\fR. \fIOption\fR may be any option described
-below for the \fBconfigure\fR operation.
-.TP
-\fIpathName \fBconfigure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options of the graph. If
-\fIoption\fR isn't specified, a list describing the current
-options for \fIpathName\fR is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is returned.
-If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then
-for each pair, the option \fIoption\fR is set to \fIvalue\fR.
-The following options are valid.
-.RS
-.TP
-\fB\-background \fIcolor\fR
-Sets the background color. This includes the margins and
-legend, but not the plotting area.
-.TP
-\fB\-barmode \fImode\fR
-Indicates how related bar elements will be drawn. Related elements
-have data points with the same abscissas (X-coordinates). \fIMode\fR
-indicates how those segments should be drawn. \fIMode\fR can be
-\f(CWinfront\fR, \f(CWaligned\fR, \f(CWoverlap\fR, or \f(CWstacked\fR.
-The default mode is \f(CWinfront\fR.
-.RS
-.TP 1i
-\f(CWinfront\fR
-Each successive segment is drawn in front of the previous.
-.TP 1i
-\f(CWstacked\fR
-Each successive segment is stacked vertically on top of the previous.
-.TP 1i
-\f(CWaligned\fR
-Segments is displayed aligned from right-to-left.
-.TP 1i
-\f(CWoverlap\fR
-Like \f(CWaligned\fR but segments slightly overlap each other.
-.RE
-.TP
-\fB\-barwidth \fIvalue\fR
-Specifies the width of the bars. This value can be overrided by the
-individual elements using their \fB\-barwidth\fR configuration option.
-\fIValue\fR is the width in terms of graph-coordinates. The
-default width is \f(CW1.0\fR.
-.TP
-\fB\-borderwidth \fIpixels\fR
-Sets the width of the 3\-D border around the outside edge of the widget. The
-\fB\-relief\fR option determines if the border is to be drawn. The
-default is \f(CW2\fR.
-.TP
-\fB\-bottommargin \fIpixels\fR
-Specifies the size of the margin below the X\-coordinate axis. If
-\fIpixels\fR is \f(CW0\fR, the size of the margin is selected automatically.
-The default is \f(CW0\fR.
-.TP
-\fB\-bufferelements \fIboolean\fR
-Indicates whether an internal pixmap to buffer the display of data
-elements should be used. If \fIboolean\fR is true, data elements are
-drawn to an internal pixmap. This option is especially useful when
-the graph is redrawn frequently while the remains data unchanged (for
-example, moving a marker across the plot). See the
-.SB "SPEED TIPS"
-section.
-The default is \f(CW1\fR.
-.TP
-\fB\-cursor \fIcursor\fR
-Specifies the widget's cursor. The default cursor is \f(CWcrosshair\fR.
-.TP
-\fB\-font \fIfontName\fR
-Specifies the font of the graph title. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-18-180-*\fR.
-.TP
-\fB\-halo \fIpixels\fR
-Specifies a maximum distance to consider when searching for the
-closest data point (see the element's \fBclosest\fR operation below).
-Data points further than \fIpixels\fR away are ignored. The default is
-\f(CW0.5i\fR.
-.TP
-\fB\-height \fIpixels\fR
-Specifies the requested height of widget. The default is
-\f(CW4i\fR.
-.TP
-\fB\-invertxy \fIboolean\fR
-Indicates whether the placement X\-axis and Y\-axis should be inverted. If
-\fIboolean\fR is true, the X and Y axes are swapped. The default is
-\f(CW0\fR.
-.TP
-\fB\-justify \fIjustify\fR
-Specifies how the title should be justified. This matters only when
-the title contains more than one line of text. \fIJustify\fR must be
-\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is
-\f(CWcenter\fR.
-.TP
-\fB\-leftmargin \fIpixels\fR
-Sets the size of the margin from the left edge of the window to
-the Y\-coordinate axis. If \fIpixels\fR is \f(CW0\fR, the size is
-calculated automatically. The default is \f(CW0\fR.
-.TP
-\fB\-plotbackground \fIcolor\fR
-Specifies the background color of the plotting area. The default is
-\f(CWwhite\fR.
-.TP
-\fB\-plotborderwidth \fIpixels\fR
-Sets the width of the 3-D border around the plotting area. The
-\fB\-plotrelief\fR option determines if a border is drawn. The
-default is \f(CW2\fR.
-.TP
-\fB\-plotpadx \fIpad\fR
-Sets the amount of padding to be added to the left and right sides of
-the plotting area. \fIPad\fR can be a list of one or two screen
-distances. If \fIpad\fR has two elements, the left side of the
-plotting area entry is padded by the first distance and the right side
-by the second. If \fIpad\fR is just one distance, both the left and
-right sides are padded evenly. The default is \f(CW8\fR.
-.TP
-\fB\-plotpady \fIpad\fR
-Sets the amount of padding to be added to the top and bottom of the
-plotting area. \fIPad\fR can be a list of one or two screen
-distances. If \fIpad\fR has two elements, the top of the plotting
-area is padded by the first distance and the bottom by the second. If
-\fIpad\fR is just one distance, both the top and bottom are padded
-evenly. The default is \f(CW8\fR.
-.TP
-\fB\-plotrelief \fIrelief\fR
-Specifies the 3-D effect for the plotting area. \fIRelief\fR
-specifies how the interior of the plotting area should appear relative
-to rest of the graph; for example, \f(CWraised\fR means the plot should
-appear to protrude from the graph, relative to the surface of the
-graph. The default is \f(CWsunken\fR.
-.TP
-\fB\-relief \fIrelief\fR
-Specifies the 3-D effect for the barchart widget. \fIRelief\fR
-specifies how the graph should appear relative to widget it is packed
-into; for example, \f(CWraised\fR means the graph should
-appear to protrude. The default is \f(CWflat\fR.
-.TP
-\fB\-rightmargin \fIpixels\fR
-Sets the size of margin from the plotting area to the right edge of
-the window. By default, the legend is drawn in this margin. If
-\fIpixels\fR is than 1, the margin size is selected automatically.
-.TP
-\fB\-takefocus\fR \fIfocus\fR
-Provides information used when moving the focus from window to window
-via keyboard traversal (e.g., Tab and Shift-Tab). If \fIfocus\fR is
-\f(CW0\fR, this means that this window should be skipped entirely during
-keyboard traversal. \f(CW1\fR means that the this window should always
-receive the input focus. An empty value means that the traversal
-scripts make the decision whether to focus on the window.
-The default is \f(CW""\fR.
-.TP
-\fB\-tile \fIimage\fR
-Specifies a tiled background for the widget. If \fIimage\fR isn't
-\f(CW""\fR, the background is tiled using \fIimage\fR.
-Otherwise, the normal background color is drawn (see the
-\fB\-background\fR option). \fIImage\fR must be an image created
-using the Tk \fBimage\fR command. The default is \f(CW""\fR.
-.TP
-\fB\-title \fItext\fR
-Sets the title to \fItext\fR. If \fItext\fR is \f(CW""\fR,
-no title will be displayed.
-.TP
-\fB\-topmargin \fIpixels\fR
-Specifies the size of the margin above the x2 axis. If \fIpixels\fR
-is \f(CW0\fR, the margin size is calculated automatically.
-.TP
-\fB\-width \fIpixels\fR
-Specifies the requested width of the widget. The default is
-\f(CW5i\fR.
-.RE
-.TP
-\fIpathName \fBcrosshairs \fIoperation \fR?\fIarg\fR?
-See the
-.SB "CROSSHAIRS COMPONENT"
-section.
-.TP
-\fIpathName \fBelement \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "ELEMENT COMPONENTS"
-section.
-.TP
-\fIpathName \fBextents \fIitem\fR
-Returns the size of a particular item in the graph. \fIItem\fR must
-be either \f(CWleftmargin\fR, \f(CWrightmargin\fR, \f(CWtopmargin\fR,
-\f(CWbottommargin\fR, \f(CWplotwidth\fR, or \f(CWplotheight\fR.
-.TP
-\fIpathName \fBgrid \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "GRID COMPONENT"
-section.
-.TP
-\fIpathName \fBinvtransform \fIwinX winY\fR
-Performs an inverse coordinate transformation, mapping window
-coordinates back to graph-coordinates, using the standard X\-axis and Y\-axis.
-Returns a list of containing the X-Y graph-coordinates.
-.TP
-\fIpathName \fBinside \fIx y\fR
-Returns \f(CW1\fR is the designated screen-coordinate (\fIx\fR and \fIy\fR)
-is inside the plotting area and \f(CW0\fR otherwise.
-.TP
-\fIpathName \fBlegend \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "LEGEND COMPONENT"
-section.
-.TP
-\fIpathName \fBline\fB operation arg\fR...
-The operation is the same as \fBelement\fR.
-.TP
-\fIpathName \fBmarker \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "MARKER COMPONENTS"
-section.
-.TP
-\fIpathName\fR \fBmetafile\fR ?\fIfileName\fR?
-\fIThis operation is for Window platforms only\fR.
-Creates a Windows enhanced metafile of the barchart.
-If present, \fIfileName\fR is the file name of the new metafile.
-Otherwise, the metafile is automatically added to the clipboard.
-.TP
-\fIpathName \fBpostscript \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "POSTSCRIPT COMPONENT"
-section.
-.TP
-\fIpathName \fBsnap \fIphotoName\fR
-Takes a snapshot of the graph and stores the contents in the photo
-image \fIphotoName\fR. \fIPhotoName\fR is the name of a Tk photo
-image that must already exist.
-.TP
-\fIpathName \fBtransform \fIx y\fR
-Performs a coordinate transformation, mapping graph-coordinates to
-window coordinates, using the standard X\-axis and Y\-axis.
-Returns a list containing the X\-Y screen-coordinates.
-.TP
-\fIpathName \fBxaxis \fIoperation\fR ?\fIarg\fR?...
-.TP
-\fIpathName \fBx2axis \fIoperation\fR ?\fIarg\fR?...
-.TP
-\fIpathName \fByaxis \fIoperation\fR ?\fIarg\fR?...
-.TP
-\fIpathName \fBy2axis \fIoperation\fR ?\fIarg\fR?...
-See the
-.SB "AXIS COMPONENTS"
-section.
-.SH "BARCHART COMPONENTS"
-A graph is composed of several components: coordinate axes, data
-elements, legend, grid, cross hairs, postscript, and annotation
-markers. Instead of one big set of configuration options and
-operations, the graph is partitioned, where each component has its own
-configuration options and operations that specifically control that
-aspect or part of the graph.
-.SS "AXIS COMPONENTS"
-Four coordinate axes are automatically created: two X\-coordinate axes
-(\f(CWx\fR and \f(CWx2\fR) and two Y\-coordinate axes (\f(CWy\fR, and
-\f(CWy2\fR). By default, the axis \f(CWx\fR is located in the bottom
-margin, \f(CWy\fR in the left margin, \f(CWx2\fR in the top margin, and
-\f(CWy2\fR in the right margin.
-.PP
-An axis consists of the axis line, title, major and minor ticks, and
-tick labels. Major ticks are drawn at uniform intervals along the
-axis. Each tick is labeled with its coordinate value. Minor ticks
-are drawn at uniform intervals within major ticks.
-.PP
-The range of the axis controls what region of data is plotted.
-Data points outside the minimum and maximum limits of the axis are
-not plotted. By default, the minimum and maximum limits are
-determined from the data, but you can reset either limit.
-.PP
-You can create and use several axes. To create an axis, invoke
-the axis component and its create operation.
-.CS
-# Create a new axis called "temperature"
-\&.b axis create temperature
-.CE
-You map data elements to an axis using the element's \-mapy and \-mapx
-configuration options. They specify the coordinate axes an element
-is mapped onto.
-.CS
-# Now map the temperature data to this axis.
-\&.b element create "temp" \-xdata $x \-ydata $tempData \\
- \-mapy temperature
-.CE
-While you can have many axes, only four axes can be displayed
-simultaneously. They are drawn in each of the margins surrounding
-the plotting area. The axes \f(CWx\fR and \f(CWy\fR are drawn in the
-bottom and left margins. The axes \f(CWx2\fR and \f(CWy2\fR are drawn in
-top and right margins. Only \f(CWx\fR and \f(CWy\fR are shown by
-default. Note that the axes can have different scales.
-.PP
-To display a different axis, you invoke one of the following
-components: \fBxaxis\fR, \fByaxis\fR, \fBx2axis\fR, and \fBy2axis\fR.
-The \fBuse\fR operation designates the axis to be drawn in the
-corresponding margin: \fBxaxis\fR in the bottom, \fByaxis\fR in the left,
-\fBx2axis\fR in the top, and \fBy2axis\fR in the right.
-.CS
-# Display the axis temperature in the left margin.
-\&.b yaxis use temperature
-.CE
-.PP
-You can configure axes in many ways. The axis scale can be linear or
-logarithmic. The values along the axis can either monotonically
-increase or decrease. If you need custom tick labels, you can specify
-a Tcl procedure to format the label any way you wish. You can
-control how ticks are drawn, by changing the major tick interval
-or the number of minor ticks. You can define non-uniform tick intervals,
-such as for time-series plots.
-.PP
-.TP
-\fIpathName \fBaxis \fBcget \fIaxisName \fIoption\fR
-Returns the current value of the option given by \fIoption\fR for
-\fIaxisName\fR. \fIOption\fR may be any option described below
-for the axis \fBconfigure\fR operation.
-.TP
-\fIpathName \fBaxis \fBconfigure \fIaxisName \fR?\fIaxisName\fR?... ?\fIoption value\fR?...
-Queries or modifies the configuration options of \fIaxisName\fR.
-Several axes can be changed. If \fIoption\fR isn't specified, a list
-describing all the current options for \fIaxisName\fR is returned. If
-\fIoption\fR is specified, but not \fIvalue\fR, then a list describing
-\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR
-pairs are specified, then for each pair, the axis option \fIoption\fR
-is set to \fIvalue\fR. The following options are valid for axes.
-.RS
-.TP
-\fB\-autorange \fIrange\fR
-Sets the range of values for the axis to \fIrange\fR. The axis limits
-are automatically reset to display the most recent data points in this range.
-If \fIrange\fR is 0.0, the range is
-determined from the limits of the data. If \fB\-min\fR or \fB-max\fR
-are specified, they override this option. The default is \f(CW0.0\fR.
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the axis and tick labels.
-The default is \f(CWblack\fR.
-.TP
-\fB\-command \fIprefix\fR
-Specifies a Tcl command to be invoked when formatting the axis tick
-labels. \fIPrefix\fR is a string containing the name of a Tcl proc and
-any extra arguments for the procedure. This command is invoked for each
-major tick on the axis. Two additional arguments are passed to the
-procedure: the pathname of the widget and the current the numeric
-value of the tick. The procedure returns the formatted tick label. If
-\f(CW""\fR is returned, no label will appear next to the tick. You can
-get the standard tick labels again by setting \fIprefix\fR to
-\f(CW""\fR. The default is \f(CW""\fR.
-.sp 1
-Please note that this procedure is invoked while the bar chart is redrawn.
-You may query the widget's configuration options. But do not reset
-options, because this can have unexpected results.
-.TP
-\fB\-descending \fIboolean\fR
-Indicates whether the values along the axis are monotonically increasing or
-decreasing. If \fIboolean\fR is true, the axis values will be
-decreasing. The default is \f(CW0\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the axis is displayed.
-.TP
-\fB\-justify \fIjustify\fR
-Specifies how the axis title should be justified. This matters only
-when the axis title contains more than one line of text. \fIJustify\fR
-must be \f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is
-\f(CWcenter\fR.
-.TP
-\fB\-limits \fIformatStr\fR
-Specifies a printf-like description to format the minimum and maximum
-limits of the axis. The limits are displayed at the top/bottom or
-left/right sides of the plotting area. \fIFormatStr\fR is a list of
-one or two format descriptions. If one description is supplied, both
-the minimum and maximum limits are formatted in the same way. If two,
-the first designates the format for the minimum limit, the second for
-the maximum. If \f(CW""\fR is given as either description, then
-the that limit will not be displayed. The default is \f(CW""\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the axis and tick lines. The default is \f(CW1\fR
-pixel.
-.TP
-\fB\-logscale \fIboolean\fR
-Indicates whether the scale of the axis is logarithmic or linear. If
-\fIboolean\fR is true, the axis is logarithmic. The default scale is
-linear.
-.TP
-\fB\-loose \fIboolean\fR
-Indicates whether the limits of the axis should fit the data points tightly,
-at the outermost data points, or loosely, at the outer tick intervals.
-This is relevant only when the axis limit is automatically calculated.
-If \fIboolean\fR is true, the axis range is "loose".
-The default is \f(CW0\fR.
-.TP
-\fB\-majorticks \fImajorList\fR
-Specifies where to display major axis ticks. You can use this option
-to display ticks at non-uniform intervals. \fIMajorList\fR is a list
-of axis coordinates designating the location of major ticks. No
-minor ticks are drawn. If \fImajorList\fR is \f(CW""\fR,
-major ticks will be automatically computed. The default is \f(CW""\fR.
-.TP
-\fB\-max \fIvalue\fR
-Sets the maximum limit of \fIaxisName\fR. Any data point greater
-than \fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR,
-the maximum limit is calculated using the largest data value.
-The default is \f(CW""\fR.
-.TP
-\fB\-min \fIvalue\fR
-Sets the minimum limit of \fIaxisName\fR. Any data point less than
-\fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR,
-the minimum limit is calculated using the smallest data value.
-The default is \f(CW""\fR.
-.TP
-\fB\-minorticks \fIminorList\fR
-Specifies where to display minor axis ticks. You can use this option
-to display minor ticks at non-uniform intervals. \fIMinorList\fR is a
-list of real values, ranging from 0.0 to 1.0, designating the placement of
-a minor tick. No minor ticks are drawn if the \fB\-majortick\fR
-option is also set. If \fIminorList\fR is \f(CW""\fR, minor ticks will
-be automatically computed. The default is \f(CW""\fR.
-.TP
-\fB\-rotate \fItheta\fR
-Specifies the how many degrees to rotate the axis tick labels.
-\fITheta\fR is a real value representing the number of degrees
-to rotate the tick labels. The default is \f(CW0.0\fR degrees.
-.TP
-\fB\-shiftby \fIvalue\fR
-Specifies how much to automatically shift the range of the axis.
-When the new data exceeds the current axis maximum, the maximum
-is increased in increments of \fIvalue\fR. You can use this
-option to prevent the axis limits from being recomputed
-at each new time point. If \fIvalue\fR is 0.0, then no automatic
-shifting is down. The default is \f(CW0.0\fR.
-.TP
-\fB\-showticks \fIboolean\fR
-Indicates whether axis ticks should be drawn. If \fIboolean\fR is
-true, ticks are drawn. If false, only the
-axis line is drawn. The default is \f(CW1\fR.
-.TP
-\fB\-stepsize \fIvalue\fR
-Specifies the interval between major axis ticks. If \fIvalue\fR isn't
-a valid interval (must be less than the axis range),
-the request is ignored and the step size is automatically calculated.
-.TP
-\fB\-subdivisions \fInumber\fR
-Indicates how many minor axis ticks are
-to be drawn. For example, if \fInumber\fR is two, only one minor
-tick is drawn. If \fInumber\fR is one, no minor ticks are
-displayed. The default is \f(CW2\fR.
-.TP
-\fB\-tickfont \fIfontName\fR
-Specifies the font for axis tick labels. The default is
-\f(CW*-Courier-Bold-R-Normal-*-100-*\fR.
-.TP
-\fB\-ticklength \fIpixels\fR
-Sets the length of major and minor ticks (minor ticks are half the
-length of major ticks). If \fIpixels\fR is less than zero, the axis
-will be inverted with ticks drawn pointing towards the plot. The
-default is \f(CW0.1i\fR.
-.TP
-\fB\-title \fItext\fR
-Sets the title of the axis. If \fItext\fR is
-\f(CW""\fR, no axis title will be displayed.
-.TP
-\fB\-titlecolor \fIcolor\fR
-Sets the color of the axis title. The default is \f(CWblack\fR.
-.TP
-\fB\-titlefont \fIfontName\fR
-Specifies the font for axis title. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-14-140-*\fR.
-.PP
-Axis configuration options may be also be set by the \fBoption\fR
-command. The resource class is \f(CWAxis\fR. The resource names
-are the names of the axes (such as \f(CWx\fR or \f(CWx2\fR).
-.CS
-option add *Barchart.Axis.Color blue
-option add *Barchart.x.LogScale true
-option add *Barchart.x2.LogScale false
-.CE
-.RE
-.TP
-\fIpathName \fBaxis \fBcreate \fIaxisName \fR?\fIoption value\fR?...
-Creates a new axis by the name \fIaxisName\fR. No axis by the same
-name can already exist. \fIOption\fR and \fIvalue\fR are described
-in above in the axis \fBconfigure\fR operation.
-.TP
-\fIpathName \fBaxis \fBdelete \fR?\fIaxisName\fR?...
-Deletes the named axes. An axis is not really
-deleted until it is not longer in use, so it's safe to delete
-axes mapped to elements.
-.TP
-\fIpathName \fBaxis invtransform \fIaxisName value\fR
-Performs the inverse transformation, changing the screen-coordinate
-\fIvalue\fR to a graph-coordinate, mapping the value mapped to
-\fIaxisName\fR. Returns the graph-coordinate.
-.TP
-\fIpathName \fBaxis limits \fIaxisName\fR
-Returns a list of the minimum and maximum limits for \fIaxisName\fR. The order
-of the list is \f(CWmin max\fR.
-.TP
-\fIpathName \fBaxis names \fR?\fIpattern\fR?...
-Returns a list of axes matching zero or more patterns. If no
-\fIpattern\fR argument is give, the names of all axes are returned.
-.TP
-\fIpathName \fBaxis transform \fIaxisName value\fR
-Transforms the coordinate \fIvalue\fR to a screen-coordinate by mapping
-the it to \fIaxisName\fR. Returns the transformed screen-coordinate.
-.PP
-Only four axes can be displayed simultaneously. By default, they are
-\f(CWx\fR, \f(CWy\fR, \f(CWx2\fR, and \f(CWy2\fR. You can swap in a different
-axis with \fBuse\fR operation of the special axis components:
-\fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR.
-.CS
-\&.g create axis temp
-\&.g create axis time
-\&...
-\&.g xaxis use temp
-\&.g yaxis use time
-.CE
-Only the axes specified for use are displayed on the screen.
-.PP
-The \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR
-components operate on an axis location rather than a specific axis
-like the more general \fBaxis\fR component does. The \fBxaxis\fR
-component manages the X-axis located in the bottom margin (whatever
-axis that happens to be). Likewise, \fByaxis\fR uses the Y-axis in
-the left margin, \fBx2axis\fR the top X-axis, and \fBy2axis\fR the
-right Y-axis.
-.PP
-They implicitly control the axis that is currently using to that
-location. By default, \fBxaxis\fR uses the \f(CWx\fR axis, \fByaxis\fR
-uses \f(CWy\fR, \fBx2axis\fR uses \f(CWx2\fR, and \fBy2axis\fR uses
-\f(CWy2\fR. These components can be more convenient to use than always
-determining what axes are current being displayed by the graph.
-.PP
-The following operations are available for axes. They mirror exactly
-the operations of the \fBaxis\fR component. The \fIaxis\fR argument
-must be \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, or \fBy2axis\fR.
-.TP
-\fIpathName \fIaxis \fBcget \fIoption\fR
-.TP
-\fIpathName \fIaxis \fBconfigure \fR?\fIoption value\fR?...
-.TP
-\fIpathName \fIaxis\fB invtransform \fIvalue\fR
-.TP
-\fIpathName \fIaxis \fBlimits\fR
-.TP
-\fIpathName \fIaxis\fB transform \fIvalue\fR
-.TP
-\fIpathName \fIaxis\fB use \fR?\fIaxisName\fR?
-Designates the axis \fIaxisName\fR is to be displayed at this
-location. \fIAxisName\fR can not be already in use at another location.
-This command returns the name of the axis currently using this location.
-.SS "CROSSHAIRS COMPONENT"
-Cross hairs consist of two intersecting lines (one vertical and one horizontal)
-drawn completely across the plotting area. They are used to position
-the mouse in relation to the coordinate axes. Cross hairs differ from line
-markers in that they are implemented using XOR drawing primitives.
-This means that they can be quickly drawn and erased without redrawing
-the entire widget.
-.PP
-The following operations are available for cross hairs:
-.TP
-\fIpathName \fBcrosshairs cget \fIoption\fR
-Returns the current value of the cross hairs configuration option
-given by \fIoption\fR. \fIOption\fR may be any option
-described below for the cross hairs \fBconfigure\fR operation.
-.TP
-\fIpathName \fBcrosshairs configure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options of the cross hairs. If
-\fIoption\fR isn't specified, a list describing all the current
-options for the cross hairs is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is returned.
-If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then
-for each pair, the cross hairs option \fIoption\fR is set to
-\fIvalue\fR.
-The following options are available for cross hairs.
-.RS
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the cross hairs. The default is \f(CWblack\fR.
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the cross hairs. \fIDashList\fR is a list of up
-to 11 numbers that alternately represent the lengths of the dashes
-and gaps on the cross hair lines. Each number must be between 1 and
-255. If \fIdashList\fR is \f(CW""\fR, the cross hairs will be solid
-lines.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether cross hairs are drawn. If \fIboolean\fR is true,
-cross hairs are not drawn. The default is \f(CWyes\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Set the width of the cross hair lines. The default is \f(CW1\fR.
-.TP
-\fB\-position \fIpos\fR
-Specifies the screen position where the cross hairs intersect.
-\fIPos\fR must be in the form "\fI@x,y\fR", where \fIx\fR and \fIy\fR
-are the window coordinates of the intersection.
-.PP
-Cross hairs configuration options may be also be set by the
-\fBoption\fR command. The resource name and class are
-\f(CWcrosshairs\fR and \f(CWCrosshairs\fR respectively.
-.CS
-option add *Barchart.Crosshairs.LineWidth 2
-option add *Barchart.Crosshairs.Color red
-.CE
-.RE
-.TP
-\fIpathName \fBcrosshairs off\fR
-Turns off the cross hairs.
-.TP
-\fIpathName \fBcrosshairs on\fR
-Turns on the display of the cross hairs.
-.TP
-\fIpathName \fBcrosshairs toggle\fR
-Toggles the current state of the cross hairs, alternately mapping and
-unmapping the cross hairs.
-.SH "ELEMENTS"
-A data element represents a set of data. It contains x and y vectors
-which are the coordinates of the data points. Elements are displayed
-as bars where the length of the bar is proportional to the ordinate of
-the data point. Elements also control the appearance of the data,
-such as the color, stipple, relief, etc.
-.PP
-When new data elements are created, they are automatically added to a
-list of displayed elements. The display list controls what elements
-are drawn and in what order.
-.PP
-The following operations are available for elements.
-.TP
-\fIpathName \fBelement activate \fIelemName \fR?\fIindex\fR?...
-Specifies the data points of element \fIelemName\fR to be drawn
-using active foreground and background colors. \fIElemName\fR is the
-name of the element and \fIindex\fR is a number representing the index
-of the data point. If no indices are present then all data points
-become active.
-.TP
-\fIpathName \fBelement bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for an element with this
-tag, \fIcommand\fR will be invoked. The syntax is similar to the
-\fBbind\fR command except that it operates on graph elements, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBelement cget \fIelemName \fIoption\fR
-Returns the current value of the element configuration option given by
-\fIoption\fR. \fIOption\fR may be any of the options described below
-for the element \fBconfigure\fR operation.
-.TP
-\fIpathName \fBelement closest \fIx y\fR ?\fIoption value\fR?... ?\fIelemName\fR?...
-Finds the data point representing the bar closest to the window
-coordinates \fIx\fR and \fIy\fR in the element \fIelemName\fR.
-\fIElemName\fR is the name of an element, which must be currently displayed.
-If no elements are specified, then all displayed elements are searched. It
-returns a key-value list containing the name of the closest element,
-the index of its closest point, and the graph-coordinates of the
-point. If no data point within the threshold distance can be found,
-\f(CW""\fR is returned. The following \fIoption\fR-\fIvalue\fR pairs
-are available.
-.RS
-.TP
-\fB\-halo \fIpixels\fR
-Specifies a threshold distance where selected data points are ignored.
-\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR.
-If this option isn't specified, then it defaults to the value of the
-\fBbarchart\fR's \fB\-halo\fR option.
-.RE
-.TP
-\fIpathName \fBelement configure \fIelemName \fR?\fIelemName\fR... ?\fIoption value\fR?...
-Queries or modifies the configuration options for elements. Several
-elements can be modified at the same time. If \fIoption\fR isn't
-specified, a list describing all the current options for
-\fIelemName\fR is returned. If \fIoption\fR is specified, but not
-\fIvalue\fR, then a list describing the option \fIoption\fR is
-returned. If one or more \fIoption\fR and \fIvalue\fR pairs are
-specified, then for each pair, the element option \fIoption\fR is set
-to \fIvalue\fR. The following options are valid for elements.
-.RS
-.TP
-\fB\-activepen \fIpenName\fR
-Specifies pen to use to draw active element. If \fIpenName\fR is
-\f(CW""\fR, no active elements will be drawn. The default is
-\f(CWactiveLine\fR.
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for the element. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events for elements. Each tag in the list matching the current event
-sequence will have its Tcl command executed. Implicitly the name of
-the element is always the first tag in the list. The default value is
-\f(CWall\fR.
-.TP
-\fB\-background \fIcolor\fR
-Sets the the color of the border around each bar. The default is
-\f(CWwhite\fR.
-.TP
-\fB\-barwidth \fIvalue\fR
-Specifies the width the bars drawn for the element. \fIValue\fR is
-the width in X-coordinates. If this option isn't
-specified, the width of each bar is the value of the widget's
-\fB\-barwidth\fR option.
-.TP
-\fB\-baseline \fIvalue\fR
-Specifies the baseline of the bar segments. This affects how bars are
-drawn since bars are drawn from their respective y-coordinate the
-baseline. By default the baseline is \f(CW0.0\fR.
-.TP
-\fB\-borderwidth \fIpixels\fR
-Sets the border width of the 3-D border drawn around the outside of
-each bar. The \fB\-relief\fR option determines if such a border is
-drawn. \fIPixels\fR must be a valid screen distance like \f(CW2\fR or
-\f(CW0.25i\fR. The default is \f(CW2\fR.
-.TP
-\fB\-data \fIcoordList\fR
-Specifies the X\-Y coordinates of the data. \fICoordList\fR is a
-list of numeric expressions representing the X\-Y coordinate pairs
-of each data point.
-.TP
-\fB\-foreground \fIcolor\fR
-Sets the color of the interior of the bars.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the element is displayed. The default is \f(CWno\fR.
-.TP
-\fB\-label \fItext\fR
-Sets the element's label in the legend. If \fItext\fR
-is \f(CW""\fR, the element will have no entry in the legend.
-The default label is the element's name.
-.TP
-\fB\-mapx \fIxAxis\fR
-Selects the X\-axis to map the element's X\-coordinates onto.
-\fIXAxis\fR must be the name of an axis. The default is \f(CWx\fR.
-.TP
-\fB\-mapy \fIyAxis\fR
-Selects the Y\-axis to map the element's Y\-coordinates onto.
-\fIYAxis\fR must be the name of an axis. The default is \f(CWy\fR.
-.TP
-\fB\-relief \fIstring\fR
-Specifies the 3-D effect desired for bars. \fIRelief\fR indicates how
-the interior of the bar should appear relative to the surface of the
-chart; for example, \f(CWraised\fR means the bar should appear to
-protrude from the surface of the plotting area. The default is
-\f(CWraised\fR.
-.TP
-\fB\-stipple \fIbitmap\fR
-Specifies a stipple pattern with which to draw the bars. If
-\fIbitmap\fR is \f(CW""\fR, then the bar is drawn in a solid fashion.
-.TP
-\fB\-xdata \fIxVector\fR
-Specifies the x-coordinate vector of the data.
-\fIXVector\fR is the name of a BLT vector or a
-list of numeric expressions.
-.TP
-\fB\-ydata \fIyVector\fR
-Specifies the y-coordinate vector of the data.
-\fIYVector\fR is the name of a BLT vector or a list of
-numeric expressions.
-.PP
-Element configuration options may also be set by the
-\fBoption\fR command. The resource names in the option database
-are prefixed by \f(CWelem\fR.
-.CS
-option add *Barchart.Element.background blue
-.CE
-.RE
-.TP
-\fIpathName \fBelement create \fIelemName\fR ?\fIoption value\fR?...
-Creates a new element \fIelemName\fR. Element
-names must be unique, so an element \fIelemName\fR may not already
-exist. If additional arguments are present, they specify any of the
-element options valid for element \fBconfigure\fR operation.
-.TP
-\fIpathName \fBelement deactivate \fIpattern\fR...
-Deactivates all the elements matching \fIpattern\fR for the graph.
-Elements whose names match any of the patterns given are redrawn
-using their normal colors.
-.TP
-\fIpathName \fBelement delete\fR ?\fIpattern\fR?...
-Deletes all the elements matching \fIpattern\fR for the graph.
-Elements whose names match any of the patterns given are deleted.
-The graph will be redrawn without the deleted elements.
-.TP
-\fIpathName \fBelement exists \fIelemName\fR
-Returns \f(CW1\fR if an element \fIelemName\fR currently exists and
-\f(CW0\fR otherwise.
-.TP
-\fIpathName \fBelement names \fR?\fIpattern\fR?...
-Returns the elements matching one or more pattern. If no
-\fIpattern\fR is given, the names of all elements is returned.
-.TP
-\fIpathName \fBelement show\fR ?\fInameList\fR?
-Queries or modifies the element display list. The element display
-list designates the elements drawn and in what
-order. \fINameList\fR is a list of elements to be displayed in the
-order they are named. If there is no \fInameList\fR argument,
-the current display list is returned.
-.TP
-\fIpathName \fBelement type\fR \fIelemName\fR
-Returns the type of \fIelemName\fR.
-If the element is a bar element, the commands returns the string
-\f(CW"bar"\fR, otherwise it returns \f(CW"line"\fR.
-.CE
-.SS "GRID COMPONENT"
-Grid lines extend from the major and minor ticks of each axis
-horizontally or vertically across the plotting area. The following
-operations are available for grid lines.
-.TP
-\fIpathName \fBgrid cget \fIoption\fR
-Returns the current value of the grid line configuration option given by
-\fIoption\fR. \fIOption\fR may be any option described below
-for the grid \fBconfigure\fR operation.
-.TP
-\fIpathName \fBgrid configure\fR ?\fIoption value\fR?...
-Queries or modifies the configuration options for grid lines. If
-\fIoption\fR isn't specified, a list describing all the current
-grid options for \fIpathName\fR is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is
-returned. If one or more \fIoption\fR and \fIvalue\fR pairs are
-specified, then for each pair, the grid line option \fIoption\fR is set to
-\fIvalue\fR. The following options are valid for grid lines.
-.RS
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the grid lines. The default is \f(CWblack\fR.
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the grid lines. \fIDashList\fR is a list of up
-to 11 numbers that alternately represent the lengths of the dashes
-and gaps on the grid lines. Each number must be between 1 and 255.
-If \fIdashList\fR is \f(CW""\fR, the grid will be solid lines.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the grid should be drawn. If \fIboolean\fR
-is true, grid lines are not shown. The default is \f(CWyes\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of grid lines. The default width is \f(CW1\fR.
-.TP
-\fB\-mapx \fIxAxis\fR
-Specifies the X\-axis to display grid lines. \fIXAxis\fR
-must be the name of an axis or \f(CW""\fR for no grid lines.
-The default is \f(CW""\fR.
-.TP
-\fB\-mapy \fIyAxis\fR
-Specifies the Y\-axis to display grid lines. \fIYAxis\fR
-must be the name of an axis or \f(CW""\fR for no grid lines.
-The default is \f(CWy\fR.
-.TP
-\fB\-minor \fIboolean\fR
-Indicates whether the grid lines should be drawn for minor ticks.
-If \fIboolean\fR is true, the lines will appear at
-minor tick intervals. The default is \f(CW1\fR.
-.PP
-Grid configuration options may also be set by the
-\fBoption\fR command. The resource name and class are \f(CWgrid\fR and
-\f(CWGrid\fR respectively.
-.CS
-option add *Barchart.grid.LineWidth 2
-option add *Barchart.Grid.Color black
-.CE
-.RE
-.TP
-\fIpathName \fBgrid off\fR
-Turns off the display the grid lines.
-.TP
-\fIpathName \fBgrid on\fR
-Turns on the display the grid lines.
-.TP
-\fIpathName \fBgrid toggle\fR
-Toggles the display of the grid.
-.SS "LEGEND COMPONENT"
-The legend displays a list of the data elements. Each entry consists
-of the element's symbol and label. The legend can appear in any
-margin (the default location is in the right margin). It
-can also be positioned anywhere within the plotting area.
-.PP
-The following operations are valid for the legend.
-.TP
-\fIpathName \fBlegend activate \fIpattern\fR...
-Selects legend entries to be drawn using the active legend colors and relief.
-All entries whose element names match \fIpattern\fR are selected. To
-be selected, the element name must match only one \fIpattern\fR.
-.TP
-\fIpathName \fBlegend bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for a legend entry with this
-tag, \fIcommand\fR will be invoked. Implicitly the element names
-in the entry are tags. The syntax is similar to the
-\fBbind\fR command except that it operates on legend entries, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBlegend cget \fIoption\fR
-Returns the current value of a legend configuration option.
-\fIOption\fR may be any option described below in the
-legend \fBconfigure\fR operation.
-.TP
-\fIpathName \fBlegend configure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options for the legend. If
-\fIoption\fR isn't specified, a list describing the current
-legend options for \fIpathName\fR is returned. If \fIoption\fR is
-specified, but not \fIvalue\fR, then a list describing \fIoption\fR is
-returned. If one or more \fIoption\fR and \fIvalue\fR pairs are
-specified, then for each pair, the legend option \fIoption\fR is set
-to \fIvalue\fR. The following options are valid for the legend.
-.RS
-.TP
-\fB\-activebackground \fIcolor\fR
-Sets the background color for active legend entries. All legend
-entries marked active (see the legend \fBactivate\fR operation) are
-drawn using this background color.
-.TP
-\fB\-activeborderwidth \fIpixels\fR
-Sets the width of the 3-D border around the outside edge of the active legend
-entries. The default is \f(CW2\fR.
-.TP
-\fB\-activeforeground \fIcolor\fR
-Sets the foreground color for active legend entries. All legend
-entries marked as active (see the legend \fBactivate\fR operation) are
-drawn using this foreground color.
-.TP
-\fB\-activerelief \fIrelief\fR
-Specifies the 3-D effect desired for active legend entries.
-\fIRelief\fR denotes how the interior of the entry should appear
-relative to the legend; for example, \f(CWraised\fR means the entry
-should appear to protrude from the legend, relative to the surface of
-the legend. The default is \f(CWflat\fR.
-.TP
-\fB\-anchor \fIanchor\fR
-Tells how to position the legend relative to the positioning point for
-the legend. This is dependent on the value of the \fB\-position\fR
-option. The default is \f(CWcenter\fR.
-.RS
-.TP 1.25i
-\f(CWleft\fR or \f(CWright\fR
-The anchor describes how to position the legend vertically.
-.TP
-\f(CWtop\fR or \f(CWbottom\fR
-The anchor describes how to position the legend horizontally.
-.TP
-\f(CW@x,y\fR
-The anchor specifies how to position the legend relative to the
-positioning point. For example, if \fIanchor\fR is \f(CWcenter\fR then
-the legend is centered on the point; if \fIanchor\fR is \f(CWn\fR then
-the legend will be drawn such that the top center point of the
-rectangular region occupied by the legend will be at the positioning
-point.
-.TP
-\f(CWplotarea\fR
-The anchor specifies how to position the legend relative to the
-plotting area. For example, if \fIanchor\fR is \f(CWcenter\fR then the
-legend is centered in the plotting area; if \fIanchor\fR is \f(CWne\fR
-then the legend will be drawn such that occupies the upper right
-corner of the plotting area.
-.RE
-.TP
-\fB\-background \fIcolor\fR
-Sets the background color of the legend. If \fIcolor\fR is \f(CW""\fR,
-the legend background with be transparent.
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for legend entries. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events for legend entries. Each tag in the list matching the current
-event sequence will have its Tcl command executed. The default value
-is \f(CWall\fR.
-.TP
-\fB\-borderwidth \fIpixels\fR
-Sets the width of the 3-D border around the outside edge of the legend (if
-such border is being drawn; the \fBrelief\fR option determines this).
-The default is \f(CW2\fR pixels.
-.TP
-\fB\-font \fIfontName\fR
-\fIFontName\fR specifies a font to use when drawing the labels of each
-element into the legend. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-12-120-*\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Sets the foreground color of the text drawn for the element's label.
-The default is \f(CWblack\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the legend should be displayed. If \fIboolean\fR is
-true, the legend will not be draw. The default is \f(CWno\fR.
-.TP
-\fB\-ipadx \fIpad\fR
-Sets the amount of internal padding to be added to the width of each
-legend entry. \fIPad\fR can be a list of one or two screen distances. If
-\fIpad\fR has two elements, the left side of the legend entry is
-padded by the first distance and the right side by the second. If
-\fIpad\fR is just one distance, both the left and right sides are padded
-evenly. The default is \f(CW2\fR.
-.TP
-\fB\-ipady \fIpad\fR
-Sets an amount of internal padding to be added to the height of each
-legend entry. \fIPad\fR can be a list of one or two screen distances. If
-\fIpad\fR has two elements, the top of the entry is padded by the
-first distance and the bottom by the second. If \fIpad\fR is just
-one distance, both the top and bottom of the entry are padded evenly.
-The default is \f(CW2\fR.
-.TP
-\fB\-padx \fIpad\fR
-Sets the padding to the left and right exteriors of the legend.
-\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR
-has two elements, the left side of the legend is padded by the first
-distance and the right side by the second. If \fIpad\fR has just one
-distance, both the left and right sides are padded evenly. The
-default is \f(CW4\fR.
-.TP
-\fB\-pady \fIpad\fR
-Sets the padding above and below the legend. \fIPad\fR can be a list
-of one or two screen distances. If \fIpad\fR has two elements, the area above
-the legend is padded by the first distance and the area below by the
-second. If \fIpad\fR is just one distance, both the top and
-bottom areas are padded evenly. The default is \f(CW0\fR.
-.TP
-\fB\-position \fIpos\fR
-Specifies where the legend is drawn. The
-\fB\-anchor\fR option also affects where the legend is positioned. If
-\fIpos\fR is \f(CWleft\fR, \f(CWleft\fR, \f(CWtop\fR, or \f(CWbottom\fR, the
-legend is drawn in the specified margin. If \fIpos\fR is
-\f(CWplotarea\fR, then the legend is drawn inside the plotting area at a
-particular anchor. If \fIpos\fR is in the form "\fI@x,y\fR", where
-\fIx\fR and \fIy\fR are the window coordinates, the legend is drawn in
-the plotting area at the specified coordinates. The default is
-\f(CWright\fR.
-.TP
-\fB\-raised \fIboolean\fR
-Indicates whether the legend is above or below the data elements. This
-matters only if the legend is in the plotting area. If \fIboolean\fR
-is true, the legend will be drawn on top of any elements that may
-overlap it. The default is \f(CWno\fR.
-.TP
-\fB\-relief \fIrelief\fR
-Specifies the 3-D effect for the border around the legend.
-\fIRelief\fR specifies how the interior of the legend should appear
-relative to the bar chart; for example, \f(CWraised\fR means the legend
-should appear to protrude from the bar chart, relative to the surface of
-the bar chart. The default is \f(CWsunken\fR.
-.PP
-Legend configuration options may also be set by the \fBoption\fR
-command. The resource name and class are \f(CWlegend\fR and
-\f(CWLegend\fR respectively.
-.CS
-option add *Barchart.legend.Foreground blue
-option add *Barchart.Legend.Relief raised
-.CE
-.RE
-.TP
-\fIpathName \fBlegend deactivate \fIpattern\fR...
-Selects legend entries to be drawn using the normal legend colors and
-relief. All entries whose element names match \fIpattern\fR are
-selected. To be selected, the element name must match only one
-\fIpattern\fR.
-.TP
-\fIpathName \fBlegend get \fIpos\fR
-Returns the name of the element whose entry is at the screen position
-\fIpos\fR in the legend. \fIPos\fR must be in the form "\fI@x,y\fR",
-where \fIx\fR and \fIy\fR are window coordinates. If the given
-coordinates do not lie over a legend entry, \f(CW""\fR is returned.
-.SS "PEN COMPONENTS"
-Pens define attributes for elements.
-Pens mirror the configuration options of data elements that pertain to
-how symbols and lines are drawn. Data elements use pens to determine
-how they are drawn. A data element may use several pens at once. In
-this case, the pen used for a particular data point is determined from
-each element's weight vector (see the element's \fB\-weight\fR and
-\fB\-style\fR options).
-.PP
-One pen, called \f(CWactiveBar\fR, is automatically created.
-It's used as the default active pen for elements. So you can change
-the active attributes for all elements by simply reconfiguring this
-pen.
-.CS
-\&.g pen configure "activeBar" -fg green -bg green4
-.CE
-You can create and use several pens. To create a pen, invoke
-the pen component and its create operation.
-.CS
-\&.g pen create myPen
-.CE
-You map pens to a data element using either the element's
-\fB\-pen\fR or \fB\-activepen\fR options.
-.CS
-\&.g element create "e1" -xdata $x -ydata $tempData \\
- -pen myPen
-.CE
-An element can use several pens at once. This is done by specifying
-the name of the pen in the element's style list (see the
-\fB\-styles\fR option).
-.CS
-\&.g element configure "e1" -styles { myPen 2.0 3.0 }
-.CE
-This says that any data point with a weight between 2.0 and 3.0
-is to be drawn using the pen \f(CWmyPen\fR. All other points
-are drawn with the element's default attributes.
-.PP
-The following operations are available for pen components.
-.PP
-.TP
-\fIpathName \fBpen \fBcget \fIpenName \fIoption\fR
-Returns the current value of the option given by \fIoption\fR for
-\fIpenName\fR. \fIOption\fR may be any option described below
-for the pen \fBconfigure\fR operation.
-.TP
-\fIpathName \fBpen \fBconfigure \fIpenName \fR?\fIpenName\fR... ?\fIoption value\fR?...
-Queries or modifies the configuration options of
-\fIpenName\fR. Several pens can be modified at once. If \fIoption\fR
-isn't specified, a list describing the current options for
-\fIpenName\fR is returned. If \fIoption\fR is specified, but not
-\fIvalue\fR, then a list describing \fIoption\fR is returned. If one
-or more \fIoption\fR and \fIvalue\fR pairs are specified, then for
-each pair, the pen option \fIoption\fR is set to \fIvalue\fR. The
-following options are valid for pens.
-.RS
-.TP
-\fB\-background \fIcolor\fR
-Sets the the color of the border around each bar. The default is
-\f(CWwhite\fR.
-.TP
-\fB\-borderwidth \fIpixels\fR
-Sets the border width of the 3-D border drawn around the outside of
-each bar. The \fB\-relief\fR option determines if such a border is
-drawn. \fIPixels\fR must be a valid screen distance like \f(CW2\fR or
-\f(CW0.25i\fR. The default is \f(CW2\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Sets the color of the interior of the bars.
-.TP
-\fB\-relief \fIstring\fR
-Specifies the 3-D effect desired for bars. \fIRelief\fR indicates how
-the interior of the bar should appear relative to the surface of the
-chart; for example, \f(CWraised\fR means the bar should appear to
-protrude from the bar chart, relative to the surface of the plotting
-area. The default is \f(CWraised\fR.
-.TP
-\fB\-stipple \fIbitmap\fR
-Specifies a stipple pattern with which to draw the bars. If
-\fIbitmap\fR is \f(CW""\fR, then the bar is drawn in a solid fashion.
-.TP
-\fB\-type \fIelemType\fR
-Specifies the type of element the pen is to be used with.
-This option should only be employed when creating the pen. This
-is for those that wish to mix different types of elements (bars and
-lines) on the same graph. The default type is "bar".
-.PP
-Pen configuration options may be also be set by the \fBoption\fR
-command. The resource class is \f(CWPen\fR. The resource names
-are the names of the pens.
-.CS
-option add *Barchart.Pen.Foreground blue
-option add *Barchart.activeBar.foreground green
-.CE
-.RE
-.TP
-\fIpathName \fBpen \fBcreate \fIpenName \fR?\fIoption value\fR?...
-Creates a new pen by the name \fIpenName\fR. No pen by the same
-name can already exist. \fIOption\fR and \fIvalue\fR are described
-in above in the pen \fBconfigure\fR operation.
-.TP
-\fIpathName \fBpen \fBdelete \fR?\fIpenName\fR?...
-Deletes the named pens. A pen is not really
-deleted until it is not longer in use, so it's safe to delete
-pens mapped to elements.
-.TP
-\fIpathName \fBpen names \fR?\fIpattern\fR?...
-Returns a list of pens matching zero or more patterns. If no
-\fIpattern\fR argument is give, the names of all pens are returned.
-.SS "POSTSCRIPT COMPONENT"
-The barchart can generate encapsulated PostScript output. There
-are several configuration options you can specify to control how the
-plot will be generated. You can change the page dimensions and
-borders. The plot itself can be scaled, centered, or rotated to
-landscape. The PostScript output can be written directly to a file or
-returned through the interpreter.
-.PP
-The following postscript operations are available.
-.TP
-\fIpathName \fBpostscript cget \fIoption\fR
-Returns the current value of the postscript option given by
-\fIoption\fR. \fIOption\fR may be any option described
-below for the postscript \fBconfigure\fR operation.
-.TP
-\fIpathName \fBpostscript configure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options for PostScript
-generation. If \fIoption\fR isn't specified, a list describing
-the current postscript options for \fIpathName\fR is returned. If
-\fIoption\fR is specified, but not \fIvalue\fR, then a list describing
-\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR
-pairs are specified, then for each pair, the postscript option
-\fIoption\fR is set to \fIvalue\fR. The following postscript options
-are available.
-.RS
-.TP
-\fB\-center \fIboolean\fR
-Indicates whether the plot should be centered on the PostScript page. If
-\fIboolean\fR is false, the plot will be placed in the upper left
-corner of the page. The default is \f(CW1\fR.
-.TP
-\fB\-colormap \fIvarName\fR
-\fIVarName\fR must be the name of a global array variable that
-specifies a color mapping from the X color name to PostScript. Each
-element of \fIvarName\fR must consist of PostScript code to set a
-particular color value (e.g. ``\f(CW1.0 1.0 0.0 setrgbcolor\fR''). When
-generating color information in PostScript, the array variable \fIvarName\fR
-is checked if an element of the name as the color exists. If so, it uses
-its value as the PostScript
-command to set the color. If this option hasn't been specified, or if
-there isn't an entry in \fIvarName\fR for a given color, then it uses
-the red, green, and blue intensities from the X color.
-.TP
-\fB\-colormode \fImode\fR
-Specifies how to output color information. \fIMode\fR must be either
-\f(CWcolor\fR (for full color output), \f(CWgray\fR (convert all colors to
-their gray-scale equivalents) or \f(CWmono\fR (convert foreground colors
-to black and background colors to white). The default mode is
-\f(CWcolor\fR.
-.TP
-\fB\-fontmap \fIvarName\fR
-\fIVarName\fR must be the name of a global array variable that
-specifies a font mapping from the X font name to PostScript. Each
-element of \fIvarName\fR must consist of a Tcl list with one or two
-elements; the name and point size of a PostScript font.
-When outputting PostScript commands for a particular font, the array
-variable \fIvarName\fR is checked to see if an element by the
-specified font exists. If there is such an element, then the font
-information contained in that element is used in the PostScript
-output. (If the point size is omitted from the list, the point size
-of the X font is used). Otherwise the X font is examined in an
-attempt to guess what PostScript font to use. This works only for
-fonts whose foundry property is \fIAdobe\fR (such as Times, Helvetica,
-Courier, etc.). If all of this fails then the font defaults to
-\f(CWHelvetica-Bold\fR.
-.TP
-\fB\-decorations \fIboolean\fR
-Indicates whether PostScript commands to generate color backgrounds and 3-D
-borders will be output. If \fIboolean\fR is false, the graph will
-background will be white and no 3-D borders will be generated. The
-default is \f(CW1\fR.
-.TP
-\fB\-height \fIpixels\fR
-Sets the height of the plot. This lets you print the bar chart with a
-height different from the one drawn on the screen. If
-\fIpixels\fR is 0, the height is the same as the widget's height.
-The default is \f(CW0\fR.
-.TP
-\fB\-landscape \fIboolean\fR
-If \fIboolean\fR is true, this specifies the printed area is to be
-rotated 90 degrees. In non-rotated output the X\-axis of the printed
-area runs along the short dimension of the page (``portrait''
-orientation); in rotated output the X\-axis runs along the long
-dimension of the page (``landscape'' orientation). Defaults to
-\f(CW0\fR.
-.TP
-\fB\-maxpect \fIboolean\fR
-Indicates to scale the plot so that it fills the PostScript page.
-The aspect ratio of the barchart is still retained. The default is
-\f(CW0\fR.
-.TP
-\fB\-padx \fIpad\fR
-Sets the horizontal padding for the left and right page borders. The
-borders are exterior to the plot. \fIPad\fR can be a list of one or
-two screen distances. If \fIpad\fR has two elements, the left border is padded
-by the first distance and the right border by the second. If
-\fIpad\fR has just one distance, both the left and right borders are
-padded evenly. The default is \f(CW1i\fR.
-.TP
-\fB\-pady \fIpad\fR
-Sets the vertical padding for the top and bottom page borders. The
-borders are exterior to the plot. \fIPad\fR can be a list of one or
-two screen distances. If \fIpad\fR has two elements, the top border is padded
-by the first distance and the bottom border by the second. If
-\fIpad\fR has just one distance, both the top and bottom borders are
-padded evenly. The default is \f(CW1i\fR.
-.TP
-\fB\-paperheight \fIpixels\fR
-Sets the height of the postscript page. This can be used to select
-between different page sizes (letter, A4, etc). The default height is
-\f(CW11.0i\fR.
-.TP
-\fB\-paperwidth \fIpixels\fR
-Sets the width of the postscript page. This can be used to select
-between different page sizes (letter, A4, etc). The default width is
-\f(CW8.5i\fR.
-.TP
-\fB\-width \fIpixels\fR
-Sets the width of the plot. This lets you generate a plot
-of a width different from that of the widget. If \fIpixels\fR
-is 0, the width is the same as the widget's width. The default is
-\f(CW0\fR.
-.PP
-Postscript configuration options may be also be set by the
-\fBoption\fR command. The resource name and class are
-\f(CWpostscript\fR and \f(CWPostscript\fR respectively.
-.CS
-option add *Barchart.postscript.Decorations false
-option add *Barchart.Postscript.Landscape true
-.CE
-.RE
-.TP
-\fIpathName \fBpostscript output \fR?\fIfileName\fR? ?\fIoption value\fR?...
-Outputs a file of encapsulated PostScript. If a
-\fIfileName\fR argument isn't present, the command returns the
-PostScript. If any \fIoption-value\fR pairs are present, they set
-configuration options controlling how the PostScript is generated.
-\fIOption\fR and \fIvalue\fR can be anything accepted by the
-postscript \fBconfigure\fR operation above.
-.SS "MARKER COMPONENTS"
-Markers are simple drawing procedures used to annotate or highlight
-areas of the graph. Markers have various types: text strings,
-bitmaps, images, connected lines, windows, or polygons. They can be
-associated with a particular element, so that when the element is
-hidden or un-hidden, so is the marker. By default, markers are the
-last items drawn, so that data elements will appear in
-behind them. You can change this by configuring the \fB\-under\fR
-option.
-.PP
-Markers, in contrast to elements, don't affect the scaling of the
-coordinate axes. They can also have \fIelastic\fR coordinates
-(specified by \f(CW-Inf\fR and \f(CWInf\fR respectively) that translate
-into the minimum or maximum limit of the axis. For example, you can
-place a marker so it always remains in the lower left corner of the
-plotting area, by using the coordinates \f(CW-Inf\fR,\f(CW-Inf\fR.
-.PP
-The following operations are available for markers.
-.TP
-\fIpathName \fBmarker after \fImarkerId\fR ?\fIafterId\fR?
-Changes the order of the markers, drawing the first
-marker after the second. If no second \fIafterId\fR argument is
-specified, the marker is placed at the end of the display list. This
-command can be used to control how markers are displayed since markers
-are drawn in the order of this display list.
-.TP
-\fIpathName \fBmarker before \fImarkerId\fR ?\fIbeforeId\fR?
-Changes the order of the markers, drawing the first
-marker before the second. If no second \fIbeforeId\fR argument is
-specified, the marker is placed at the beginning of the display list.
-This command can be used to control how markers are displayed since
-markers are drawn in the order of this display list.
-.TP
-\fIpathName \fBmarker bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for a marker with this
-tag, \fIcommand\fR will be invoked. The syntax is similar to the
-\fBbind\fR command except that it operates on graph markers, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBmarker cget \fIoption\fR
-Returns the current value of the marker configuration option given by
-\fIoption\fR. \fIOption\fR may be any option described
-below in the \fBconfigure\fR operation.
-.TP
-\fIpathName \fBmarker configure \fImarkerId\fR ?\fIoption value\fR?...
-Queries or modifies the configuration options for markers. If
-\fIoption\fR isn't specified, a list describing the current
-options for \fImarkerId\fR is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is returned.
-If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then
-for each pair, the marker option \fIoption\fR is set to \fIvalue\fR.
-.sp
-The following options are valid for all markers.
-Each type of marker also has its own type-specific options.
-They are described in the sections below.
-.RS
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for the marker. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events for markers are handled. Each tag in the list matching the
-current event sequence will have its Tcl command executed. Implicitly
-the name of the marker is always the first tag in the list.
-The default value is \f(CWall\fR.
-.TP
-\fB\-coords \fIcoordList\fR
-Specifies the coordinates of the marker. \fICoordList\fR is
-a list of graph-coordinates. The number of coordinates required
-is dependent on the type of marker. Text, image, and window markers
-need only two coordinates (an X\-Y coordinate). Bitmap markers
-can take either two or four coordinates (if four, they represent the
-corners of the bitmap). Line markers
-need at least four coordinates, polygons at least six.
-If \fIcoordList\fR is \f(CW""\fR, the marker will not be displayed.
-The default is \f(CW""\fR.
-.TP
-\fB\-element \fIelemName\fR
-Links the marker with the element \fIelemName\fR. The marker is
-drawn only if the element is also currently displayed (see the
-element's \fBshow\fR operation). If \fIelemName\fR is \f(CW""\fR, the
-marker is always drawn. The default is \f(CW""\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the marker is drawn. If \fIboolean\fR is true,
-the marker is not drawn. The default is \f(CWno\fR.
-.TP
-\fB\-mapx \fIxAxis\fR
-Specifies the X\-axis to map the marker's X\-coordinates onto.
-\fIXAxis\fR must the name of an axis. The default is \f(CWx\fR.
-.TP
-\fB\-mapy \fIyAxis\fR
-Specifies the Y\-axis to map the marker's Y\-coordinates onto.
-\fIYAxis\fR must the name of an axis. The default is \f(CWy\fR.
-.TP
-\fB\-name \fImarkerId\fR
-Changes the identifier for the marker. The identifier \fImarkerId\fR
-can not already be used by another marker. If this option
-isn't specified, the marker's name is uniquely generated.
-.TP
-\fB\-under \fIboolean\fR
-Indicates whether the marker is drawn below/above data
-elements. If \fIboolean\fR is true, the marker is be drawn
-underneath the data elements. Otherwise, the marker is
-drawn on top of the element. The default is \f(CW0\fR.
-.TP
-\fB\-xoffset \fIpixels\fR
-Specifies a screen distance to offset the marker horizontally.
-\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR.
-The default is \f(CW0\fR.
-.TP
-\fB\-yoffset \fIpixels\fR
-Specifies a screen distance to offset the markers vertically.
-\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR.
-The default is \f(CW0\fR.
-.PP
-Marker configuration options may also be set by the \fBoption\fR command.
-The resource class is either \f(CWBitmapMarker\fR, \f(CWImageMarker\fR,
-\f(CWLineMarker\fR, \f(CWPolygonMarker\fR, \f(CWTextMarker\fR, or \f(CWWindowMarker\fR,
-depending on the type of marker. The resource name is the name of the
-marker.
-.CS
-option add *Barchart.TextMarker.Foreground white
-option add *Barchart.BitmapMarker.Foreground white
-option add *Barchart.m1.Background blue
-.CE
-.RE
-.TP
-\fIpathName \fBmarker create \fItype\fR ?\fIoption value\fR?...
-Creates a marker of the selected type. \fIType\fR may be either
-\f(CWtext\fR, \f(CWline\fR, \f(CWbitmap\fR, \f(CWimage\fR, \f(CWpolygon\fR, or
-\f(CWwindow\fR. This command returns the marker identifier,
-used as the \fImarkerId\fR argument in the other marker-related
-commands. If the \fB\-name\fR option is used, this overrides the
-normal marker identifier. If the name provided is already used for
-another marker, the new marker will replace the old.
-.TP
-\fIpathName \fBmarker delete\fR ?\fIname\fR?...
-Removes one of more markers. The graph will automatically be redrawn
-without the marker.\fR.
-.TP
-\fIpathName \fBmarker exists \fImarkerId\fR
-Returns \f(CW1\fR if the marker \fImarkerId\fR exists and \f(CW0\fR
-otherwise.
-.TP
-\fIpathName \fBmarker names\fR ?\fIpattern\fR?
-Returns the names of all the markers that currently exist. If
-\fIpattern\fR is supplied, only those markers whose names match it
-will be returned.
-.TP
-\fIpathName \fBmarker type \fImarkerId\fR
-Returns the type of the marker given by \fImarkerId\fR, such as
-\f(CWline\fR or \f(CWtext\fR. If \fImarkerId\fR is not a valid a marker
-identifier, \f(CW""\fR is returned.
-.SS "BITMAP MARKERS"
-A bitmap marker displays a bitmap. The size of the
-bitmap is controlled by the number of coordinates specified. If two
-coordinates, they specify the position of the top-left corner of the
-bitmap. The bitmap retains its normal width and height. If four
-coordinates, the first and second pairs of coordinates represent the
-corners of the bitmap. The bitmap will be stretched or reduced as
-necessary to fit into the bounding rectangle.
-.PP
-Bitmap markers are created with the marker's \fBcreate\fR operation in
-the form:
-.DS
-\fIpathName \fBmarker create bitmap \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR pairs, each
-sets a configuration options for the marker. These
-same \fIoption\fR\-\fIvalue\fR pairs may be used with the marker's
-\fBconfigure\fR operation.
-.PP
-The following options are specific to bitmap markers:
-.TP
-\fB\-background \fIcolor\fR
-Same as the \fB\-fill\fR option.
-.TP
-\fB\-bitmap \fIbitmap\fR
-Specifies the bitmap to be displayed. If \fIbitmap\fR is \f(CW""\fR,
-the marker will not be displayed. The default is \f(CW""\fR.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the background color of the bitmap. If \fIcolor\fR is the empty
-string, no background will be transparent. The default background color is
-\f(CW""\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Same as the \fB\-outline\fR option.
-.TP
-\fB\-mask \fImask\fR
-Specifies a mask for the bitmap to be displayed. This mask is a bitmap
-itself, denoting the pixels that are transparent. If \fImask\fR is
-\f(CW""\fR, all pixels of the bitmap will be drawn. The default is
-\f(CW""\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the foreground color of the bitmap. The default value is \f(CWblack\fR.
-.TP
-\fB\-rotate \fItheta\fR
-Sets the rotation of the bitmap. \fITheta\fR is a real number
-representing the angle of rotation in degrees. The marker is first
-rotated and then placed according to its anchor position. The default
-rotation is \f(CW0.0\fR.
-.SS "IMAGE MARKERS"
-A image marker displays an image. Image markers are
-created with the marker's \fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create image \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be
-used with the marker's \fBconfigure\fR operation.
-.PP
-The following options are specific to image markers:
-.TP
-\fB\-anchor \fIanchor\fR
-\fIAnchor\fR tells how to position the image relative to the
-positioning point for the image. For example, if \fIanchor\fR
-is \f(CWcenter\fR then the image is centered on the point; if
-\fIanchor\fR is \f(CWn\fR then the image will be drawn such that
-the top center point of the rectangular region occupied by the
-image will be at the positioning point.
-This option defaults to \f(CWcenter\fR.
-.TP
-\fB\-image \fIimage\fR
-Specifies the image to be drawn.
-If \fIimage\fR is \f(CW""\fR, the marker will not be
-drawn. The default is \f(CW""\fR.
-.SS "LINE MARKERS"
-A line marker displays one or more connected line segments.
-Line markers are created with marker's \fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create line \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR-\fIvalue\fR pairs may be
-used with the marker's \fBconfigure\fR operation.
-.PP
-The following options are specific to line markers:
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the line. \fIDashList\fR is a list of up to 11
-numbers that alternately represent the lengths of the dashes and gaps
-on the line. Each number must be between 1 and 255. If
-\fIdashList\fR is \f(CW""\fR, the marker line will be solid.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the background color of the line. This color is used with
-striped lines (see the \fB\-dashes\fR option). If \fIcolor\fR is
-the empty string, no background color is drawn (the line will be
-dashed, not striped). The default background color is \f(CW""\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the lines.
-The default width is \f(CW0\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the foreground color of the line. The default value is \f(CWblack\fR.
-.TP
-\fB\-stipple \fIbitmap\fR
-Specifies a stipple pattern used to draw the line, rather than
-a solid line.
-\fIBitmap\fR specifies a bitmap to use as the stipple
-pattern. If \fIbitmap\fR is \f(CW""\fR, then the
-line is drawn in a solid fashion. The default is \f(CW""\fR.
-.SS "POLYGON MARKERS"
-A polygon marker displays a closed region described as two or more
-connected line segments. It is assumed the first and
-last points are connected. Polygon markers are created using the
-marker \fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create polygon \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be
-used with the \fBmarker configure\fR command to change the marker's
-configuration.
-The following options are supported for polygon markers:
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the outline of the polygon. \fIDashList\fR is a
-list of up to 11 numbers that alternately represent the lengths of
-the dashes and gaps on the outline. Each number must be between 1 and
-255. If \fIdashList\fR is \f(CW""\fR, the outline will be a solid line.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the fill color of the polygon. If \fIcolor\fR is \f(CW""\fR, then
-the interior of the polygon is transparent.
-The default is \f(CWwhite\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the outline of the polygon. If \fIpixels\fR is zero,
-no outline is drawn. The default is \f(CW0\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the color of the outline of the polygon. If the polygon is
-stippled (see the \fB\-stipple\fR option), then this represents the
-foreground color of the stipple. The default is \f(CWblack\fR.
-.TP
-\fB\-stipple \fIbitmap\fR
-Specifies that the polygon should be drawn with a stippled pattern
-rather than a solid color. \fIBitmap\fR specifies a bitmap to use as
-the stipple pattern. If \fIbitmap\fR is \f(CW""\fR, then the polygon is
-filled with a solid color (if the \fB\-fill\fR option is set). The
-default is \f(CW""\fR.
-.SS "TEXT MARKERS"
-A text marker displays a string of characters on one or more lines of
-text. Embedded newlines cause line breaks. They may be used to
-annotate regions of the graph. Text markers are created with the
-\fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create text \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR pairs,
-each sets a configuration option for the text marker.
-These same \fIoption\fR\-\fIvalue\fR pairs may be used with the
-marker's \fBconfigure\fR operation.
-.PP
-The following options are specific to text markers:
-.TP
-\fB\-anchor \fIanchor\fR
-\fIAnchor\fR tells how to position the text relative to the
-positioning point for the text. For example, if \fIanchor\fR is
-\f(CWcenter\fR then the text is centered on the point; if
-\fIanchor\fR is \f(CWn\fR then the text will be drawn such that the
-top center point of the rectangular region occupied by the text will
-be at the positioning point. This default is \f(CWcenter\fR.
-.TP
-\fB\-background \fIcolor\fR
-Same as the \fB\-fill\fR option.
-.TP
-\fB\-font \fIfontName\fR
-Specifies the font of the text. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-120-*\fR.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the background color of the text. If \fIcolor\fR is the empty
-string, no background will be transparent. The default background color is
-\f(CW""\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Same as the \fB\-outline\fR option.
-.TP
-\fB\-justify \fIjustify\fR
-Specifies how the text should be justified. This matters only when
-the marker contains more than one line of text. \fIJustify\fR must be
-\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is
-\f(CWcenter\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the color of the text. The default value is \f(CWblack\fR.
-.TP
-\fB\-padx \fIpad\fR
-Sets the padding to the left and right exteriors of the text.
-\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR
-has two elements, the left side of the text is padded by the first
-distance and the right side by the second. If \fIpad\fR has just one
-distance, both the left and right sides are padded evenly. The
-default is \f(CW4\fR.
-.TP
-\fB\-pady \fIpad\fR
-Sets the padding above and below the text. \fIPad\fR can be a list of
-one or two screen distances. If \fIpad\fR has two elements, the area above the
-text is padded by the first distance and the area below by the second.
-If \fIpad\fR is just one distance, both the top and bottom areas
-are padded evenly. The default is \f(CW4\fR.
-.TP
-\fB\-rotate \fItheta\fR
-Specifies the number of degrees to rotate the text. \fITheta\fR is a
-real number representing the angle of rotation. The marker is first
-rotated along its center and is then drawn according to its anchor
-position. The default is \f(CW0.0\fR.
-.TP
-\fB\-text \fItext\fR
-Specifies the text of the marker. The exact way the text is
-displayed may be affected by other options such as \fB\-anchor\fR or
-\fB\-rotate\fR.
-.SS "WINDOW MARKERS"
-A window marker displays a widget at a given position.
-Window markers are created with the marker's \fBcreate\fR operation in
-the form:
-.DS
-\fIpathName \fBmarker create window \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be
-used with the marker's \fBconfigure\fR command.
-.PP
-The following options are specific to window markers:
-.TP
-\fB\-anchor \fIanchor\fR
-\fIAnchor\fR tells how to position the widget relative to the
-positioning point for the widget. For example, if \fIanchor\fR is
-\f(CWcenter\fR then the widget is centered on the point; if \fIanchor\fR
-is \f(CWn\fR then the widget will be displayed such that the top center
-point of the rectangular region occupied by the widget will be at the
-positioning point. This option defaults to \f(CWcenter\fR.
-.TP
-\fB\-height \fIpixels\fR
-Specifies the height to assign to the marker's window. If this option
-isn't specified, or if it is specified as \f(CW""\fR, then the window is
-given whatever height the widget requests internally.
-.TP
-\fB\-width \fIpixels\fR
-Specifies the width to assign to the marker's window. If this option
-isn't specified, or if it is specified as \f(CW""\fR, then the window is
-given whatever width the widget requests internally.
-.TP
-\fB\-window \fIpathName\fR
-Specifies the widget to be managed by the barchart. \fIPathName\fR must
-be a child of the \fBbarchart\fR widget.
-.SH "GRAPH COMPONENT BINDINGS"
-Specific barchart components, such as elements, markers and legend
-entries, can have a command trigger when event occurs in them, much
-like canvas items in Tk's canvas widget. Not all event sequences are
-valid. The only binding events that may be specified are those
-related to the mouse and keyboard (such as \fBEnter\fR, \fBLeave\fR,
-\fBButtonPress\fR, \fBMotion\fR, and \fBKeyPress\fR).
-.PP
-Only one element or marker can be picked during an event. This means,
-that if the mouse is directly over both an element and a marker, only
-the uppermost component is selected. This isn't true for legend entries.
-Both a legend entry and an element (or marker) binding commands
-will be invoked if both items are picked.
-.PP
-It is possible for multiple bindings to match a particular event.
-This could occur, for example, if one binding is associated with the
-element name and another is associated with one of the element's tags
-(see the \fB\-bindtags\fR option). When this occurs, all of the
-matching bindings are invoked. A binding associated with the element
-name is invoked first, followed by one binding for each of the element's
-bindtags. If there are multiple matching bindings for a single tag,
-then only the most specific binding is invoked. A continue command
-in a binding script terminates that script, and a break command
-terminates that script and skips any remaining scripts for the event,
-just as for the bind command.
-.PP
-The \fB\-bindtags\fR option for these components controls addition
-tag names which can be matched. Implicitly elements and markers
-always have tags matching their names. Setting the value of
-the \fB\-bindtags\fR option doesn't change this.
-.SH "C LANGUAGE API"
-You can manipulate data elements from the C language. There
-may be situations where it is too expensive to translate the data
-values from ASCII strings. Or you might want to read data in a
-special file format.
-.PP
-Data can manipulated from the C language using BLT vectors.
-You specify the X-Y data coordinates of an element as vectors and
-manipulate the vector from C. The barchart will be redrawn automatically
-after the vectors are updated.
-.PP
-From Tcl, create the vectors and configure the element to use them.
-.CS
-vector X Y
-\&.g element configure line1 -xdata X -ydata Y
-.CE
-To set data points from C, you pass the values as arrays of doubles
-using the \fBBlt_ResetVector\fR call. The vector is reset with the
-new data and at the next idle point (when Tk re-enters its event
-loop), the graph will be redrawn automatically.
-.CS
-#include <tcl.h>
-#include <blt.h>
-
-register int i;
-Blt_Vector *xVec, *yVec;
-double x[50], y[50];
-
-/* Get the BLT vectors "X" and "Y" (created above from Tcl) */
-if ((Blt_GetVector(interp, "X", 50, &xVec) != TCL_OK) ||
- (Blt_GetVector(interp, "Y", 50, &yVec) != TCL_OK)) {
- return TCL_ERROR;
-}
-
-for (i = 0; i < 50; i++) {
- x[i] = i * 0.02;
- y[i] = sin(x[i]);
-}
-
-/* Put the data into BLT vectors */
-if ((Blt_ResetVector(xVec, x, 50, 50, TCL_VOLATILE) != TCL_OK) ||
- (Blt_ResetVector(yVec, y, 50, 50, TCL_VOLATILE) != TCL_OK)) {
- return TCL_ERROR;
-}
-.CE
-See the \fBvector\fR manual page for more details.
-.SH SPEED TIPS
-There may be cases where the bar chart needs to be drawn and updated as
-quickly as possible. If drawing speed becomes a big
-problem, here are a few tips to speed up displays.
-.TP 2
-\(bu
-Try to minimize the number of data points. The more data points
-looked at, the more work the bar chart must do.
-.TP 2
-\(bu
-If your data is generated as floating point values, the time required
-to convert the data values to and from ASCII strings can be
-significant, especially when there any many data points. You can
-avoid the redundant string-to-decimal conversions using the C API to
-BLT vectors.
-.TP 2
-\(bu
-Don't stipple or dash the element. Solid bars are much faster.
-.TP 2
-\(bu
-If you update data elements frequently, try turning off the
-widget's \fB\-bufferelements\fR option. When the bar chart is first
-displayed, it draws data elements into an internal pixmap. The pixmap
-acts as a cache, so that when the bar chart needs to be redrawn again, and
-the data elements or coordinate axes haven't changed, the pixmap is
-simply copied to the screen. This is especially useful when you are
-using markers to highlight points and regions on the bar chart. But if
-the bar chart is updated frequently, changing either the element data or
-coordinate axes, the buffering becomes redundant.
-.SH LIMITATIONS
-Auto-scale routines do not use requested min/max limits
-as boundaries when the axis is logarithmically scaled.
-.PP
-The PostScript output generated for polygons with more than 1500
-points may exceed the limits of some printers (See PostScript Language
-Reference Manual, page 568). The work-around is to break the polygon
-into separate pieces.
-.SH KEYWORDS
-bar chart, widget
diff --git a/tkblt/doc/graph.html b/tkblt/doc/graph.html
deleted file mode 100644
index 70f1e6f..0000000
--- a/tkblt/doc/graph.html
+++ /dev/null
@@ -1,1759 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>graph</B> <I>pathName</I> ?<I>option</I> <I>value</I>?...
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>graph</B> command creates a graph for plotting two-dimensional data
- (X-Y coordinates). It has many configurable components: coordinate
- axes, elements, legend, grid lines, cross hairs, etc. They allow you
- to customize the look and feel of the graph.
-
-
-</PRE>
-<H2>INTRODUCTION</H2><PRE>
- The <B>graph</B> command creates a new window for plotting two-dimensional
- data (X-Y coordinates). Data points are plotted in a rectangular area
- displayed in the center of the new window. This is the <I>plotting</I> <I>area</I>.
- The coordinate axes are drawn in the margins around the plotting area.
- By default, the legend is displayed in the right margin. The title is
- displayed in top margin.
-
- The <B>graph</B> widget is composed of several components: coordinate axes,
- data elements, legend, grid, cross hairs, pens, postscript, and annota-
- tion markers.
-
- axis The graph has four standard axes (x, x2, y, and y2), but you
- can create and display any number of axes. Axes control what
- region of data is displayed and how the data is scaled. Each
- axis consists of the axis line, title, major and minor ticks,
- and tick labels. Tick labels display the value at each major
- tick.
-
- crosshairs
- Cross hairs are used to position the mouse pointer relative
- to the X and Y coordinate axes. Two perpendicular lines,
- intersecting at the current location of the mouse, extend
- across the plotting area to the coordinate axes.
-
- element An element represents a set of data points. Elements can be
- plotted with a symbol at each data point and lines connecting
- the points. The appearance of the element, such as its sym-
- bol, line width, and color is configurable.
-
- grid Extends the major and minor ticks of the X-axis and/or Y-axis
- across the plotting area.
-
- legend The legend displays the name and symbol of each data element.
- The legend can be drawn in any margin or in the plotting
- area.
-
- marker Markers are used annotate or highlight areas of the graph.
- For example, you could use a polygon marker to fill an area
- under a curve, or a text marker to label a particular data
- point. Markers come in various forms: text strings, bitmaps,
- connected line segments, images, polygons, or embedded wid-
- gets.
-
- <B>graph</B> <I>pathName</I> ?<I>option</I> <I>value</I>?... The <B>graph</B> command creates a new win-
- dow <I>pathName</I> and makes it into a <B>graph</B> widget. At the time this com-
- mand is invoked, there must not exist a window named <I>pathName</I>, but
- <I>pathName</I>'s parent must exist. Additional options may be specified on
- the command line or in the option database to configure aspects of the
- graph such as its colors and font. See the <B>configure</B> operation below
- for the exact details about what <I>option</I> and <I>value</I> pairs are valid.
-
- If successful, <B>graph</B> returns the path name of the widget. It also cre-
- ates a new Tcl command by the same name. You can use this command to
- invoke various operations that query or modify the graph. The general
- form is: <I>pathName</I> <I>operation</I> ?<I>arg</I>?... Both <I>operation</I> and its arguments
- determine the exact behavior of the command. The operations available
- for the graph are described in the <B>GRAPH</B> <B>OPERATIONS</B> section.
-
- The command can also be used to access components of the graph. <I>path-</I>
- <I>Name</I> <I>component</I> <I>operation</I> ?<I>arg</I>?... The operation, now located after the
- name of the component, is the function to be performed on that compo-
- nent. Each component has its own set of operations that manipulate that
- component. They will be described below in their own sections.
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- The <B>graph</B> command creates a new graph. # Create a new graph. Plotting
- area is black. graph .g -plotbackground black A new Tcl command .g is
- also created. This command can be used to query and modify the graph.
- For example, to change the title of the graph to "My Plot", you use the
- new command and the graph's <B>configure</B> operation. # Change the title.
- .g configure -title "My Plot" A graph has several components. To access
- a particular component you use the component's name. For example, to
- add data elements, you use the new command and the <B>element</B> component.
- # Create a new element named "line1" .g element create line1 \
- -xdata { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } \ -ydata {
- 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85 166.60
- 175.38 } The element's X-Y coordinates are specified using lists of
- numbers. Alternately, BLT vectors could be used to hold the X-Y coor-
- dinates. # Create two vectors and add them to the graph. vector xVec
- yVec xVec set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } yVec set {
- 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85 166.60 175.38
- } .g element create line1 -xdata xVec -ydata yVec The advantage of
- using vectors is that when you modify one, the graph is automatically
- redrawn to reflect the new values. # Change the y coordinate of the
- first point. set <B>yVector(0)</B> 25.18 An element named e1 is now created
- in .b. It is automatically added to the display list of elements. You
- can use this list to control in what order elements are displayed. To
- query or reset the element display list, you use the element's <B>show</B>
- operation. # Get the current display list set elemList [.b element
- show] # Remove the first element so it won't be displayed. .b element
- show [lrange $elemList 0 end] The element will be displayed by as many
- bars as there are data points (in this case there are ten). The bars
- will be drawn centered at the x-coordinate of the data point. All the
- bars will have the same attributes (colors, stipple, etc). The width
- of each bar is by default one unit. You can change this with using the
- example, you change the scale of the Y-axis from linear to log using
- the <B>axis</B> component. # Y-axis is log scale. .g axis configure y
- -logscale yes One important way axes are used is to zoom in on a par-
- ticular data region. Zooming is done by simply specifying new axis
- limits using the <B>-min</B> and <B>-max</B> configuration options. .g axis config-
- ure x -min 1.0 -max 1.5 .g axis configure y -min 12.0 -max 55.15 To
- zoom interactively, you link the <B>axis</B> <B>configure</B> operations with some
- user interaction (such as pressing the mouse button), using the <B>bind</B>
- command. To convert between screen and graph coordinates, use the
- <B>invtransform</B> operation. # Click the button to set a new minimum bind
- .g &lt;ButtonPress-1&gt; {
- %W axis configure x -min [%W axis invtransform x %x]
- %W axis configure x -min [%W axis invtransform x %y] } By default,
- the limits of the axis are determined from data values. To reset back
- to the default limits, set the <B>-min</B> and <B>-max</B> options to the empty
- value. # Reset the axes to autoscale again. .g axis configure x -min
- {} -max {} .g axis configure y -min {} -max {} By default, the legend
- is drawn in the right margin. You can change this or any legend con-
- figuration options using the <B>legend</B> component. # Configure the legend
- font, color, and relief .g legend configure -position left -relief
- raised \ -font fixed -fg blue To prevent the legend from being
- displayed, turn on the <B>-hide</B> option. # Don't display the legend. .g
- legend configure -hide yes The <B>graph</B> widget has simple drawing proce-
- dures called markers. They can be used to highlight or annotate data
- in the graph. The types of markers available are bitmaps, images, poly-
- gons, lines, or windows. Markers can be used, for example, to mark or
- brush points. In this example, is a text marker that labels the data
- first point. Markers are created using the <B>marker</B> component. # Create
- a label for the first data point of "line1". .g marker create text
- -name first_marker -coords { 0.2 26.18 } \ -text "start" -anchor
- se -xoffset -10 -yoffset -10 This creates a text marker named
- first_marker. It will display the text "start" near the coordinates of
- the first data point. The <B>-anchor</B>, <B>-xoffset</B>, and <B>-yoffset</B> options are
- used to display the marker above and to the left of the data point, so
- that the data point isn't covered by the marker. By default, markers
- are drawn last, on top of data. You can change this with the <B>-under</B>
- option. # Draw the label before elements are drawn. .g marker config-
- ure first_marker -under yes You can add cross hairs or grid lines using
- the <B>crosshairs</B> and <B>grid</B> components. # Display both cross hairs and
- grid lines. .g crosshairs configure -hide no -color red .g grid con-
- figure -hide no -dashes { 2 2 } # Set up a binding to reposition the
- crosshairs. bind .g &lt;Motion&gt; {
- .g crosshairs configure -position @%x,%y } The crosshairs are repo-
- sitioned as the mouse pointer is moved in the graph. The pointer X-Y
- coordinates define the center of the crosshairs.
-
- Finally, to get hardcopy of the graph, use the <B>postscript</B> component. #
- Print the graph into file "file.ps" .g postscript output file.ps -max-
- pect yes -decorations no This generates a file file.ps containing the
- encapsulated PostScript of the graph. The option <B>-maxpect</B> says to
- scale the plot to the size of the page. Turning off the <B>-decorations</B>
- option denotes that no borders or color backgrounds should be drawn
- <I>option</I>. <I>Option</I> may be any option described below for the <B>con-</B>
- <B>figure</B> operation.
-
- <I>pathName</I> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options of the graph. If
- <I>option</I> isn't specified, a list describing the current options
- for <I>pathName</I> is returned. If <I>option</I> is specified, but not
- <I>value</I>, then a list describing <I>option</I> is returned. If one or
- more <I>option</I> and <I>value</I> pairs are specified, then for each pair,
- the option <I>option</I> is set to <I>value</I>. The following options are
- valid.
-
- <B>-aspect</B> <I>width/height</I>
- Force a fixed aspect ratio of <I>width/height</I>, a floating
- point number.
-
- <B>-background</B> <I>color</I>
- Sets the background color. This includes the margins and
- legend, but not the plotting area.
-
- <B>-borderwidth</B> <I>pixels</I>
- Sets the width of the 3-D border around the outside edge
- of the widget. The <B>-relief</B> option determines if the bor-
- der is to be drawn. The default is 2.
-
- <B>-bottommargin</B> <I>pixels</I>
- If non-zero, overrides the computed size of the margin
- extending below the X-coordinate axis. If <I>pixels</I> is 0,
- the automatically computed size is used. The default is
- 0.
-
- <B>-bufferelements</B> <I>boolean</I>
- Indicates whether an internal pixmap to buffer the dis-
- play of data elements should be used. If <I>boolean</I> is
- true, data elements are drawn to an internal pixmap.
- This option is especially useful when the graph is
- redrawn frequently while the remains data unchanged (for
- example, moving a marker across the plot). See the <B>SPEED</B>
- <B>TIPS</B> section. The default is 1.
-
- <B>-cursor</B> <I>cursor</I>
- Specifies the widget's cursor. The default cursor is
- crosshair.
-
- <B>-font</B> <I>fontName</I>
- Specifies the font of the graph title. The default is
- *-Helvetica-Bold-R-Normal-*-18-180-*.
-
- <B>-halo</B> <I>pixels</I>
- Specifies a maximum distance to consider when searching
- for the closest data point (see the element's <B>closest</B>
- operation below). Data points further than <I>pixels</I> away
- text. <I>Justify</I> must be left, right, or center. The
- default is center.
-
- <B>-leftmargin</B> <I>pixels</I>
- If non-zero, overrides the computed size of the margin
- extending from the left edge of the window to the Y-coor-
- dinate axis. If <I>pixels</I> is 0, the automatically computed
- size is used. The default is 0.
-
- <B>-plotbackground</B> <I>color</I>
- Specifies the background color of the plotting area. The
- default is white.
-
- <B>-plotborderwidth</B> <I>pixels</I>
- Sets the width of the 3-D border around the plotting
- area. The <B>-plotrelief</B> option determines if a border is
- drawn. The default is 2.
-
- <B>-plotpadx</B> <I>pad</I>
- Sets the amount of padding to be added to the left and
- right sides of the plotting area. <I>Pad</I> can be a list of
- one or two screen distances. If <I>pad</I> has two elements,
- the left side of the plotting area entry is padded by the
- first distance and the right side by the second. If <I>pad</I>
- is just one distance, both the left and right sides are
- padded evenly. The default is 8.
-
- <B>-plotpady</B> <I>pad</I>
- Sets the amount of padding to be added to the top and
- bottom of the plotting area. <I>Pad</I> can be a list of one or
- two screen distances. If <I>pad</I> has two elements, the top
- of the plotting area is padded by the first distance and
- the bottom by the second. If <I>pad</I> is just one distance,
- both the top and bottom are padded evenly. The default
- is 8.
-
- <B>-plotrelief</B> <I>relief</I>
- Specifies the 3-D effect for the plotting area. <I>Relief</I>
- specifies how the interior of the plotting area should
- appear relative to rest of the graph; for example, raised
- means the plot should appear to protrude from the graph,
- relative to the surface of the graph. The default is
- sunken.
-
- <B>-relief</B> <I>relief</I>
- Specifies the 3-D effect for the graph widget. <I>Relief</I>
- specifies how the graph should appear relative to widget
- it is packed into; for example, raised means the graph
- should appear to protrude. The default is flat.
-
- <B>-rightmargin</B> <I>pixels</I>
- If non-zero, overrides the computed size of the margin
-
- <B>-tile</B> <I>image</I>
- Specifies a tiled background for the widget. If <I>image</I>
- isn't "", the background is tiled using <I>image</I>. Other-
- wise, the normal background color is drawn (see the
- <B>-background</B> option). <I>Image</I> must be an image created
- using the Tk <B>image</B> command. The default is "".
-
- <B>-title</B> <I>text</I>
- Sets the title to <I>text</I>. If <I>text</I> is "", no title will be
- displayed.
-
- <B>-topmargin</B> <I>pixels</I>
- If non-zero, overrides the computed size of the margin
- above the x2 axis. If <I>pixels</I> is 0, the automatically
- computed size is used. The default is 0.
-
- <B>-width</B> <I>pixels</I>
- Specifies the requested width of the widget. The default
- is 5i.
-
- <I>pathName</I> <B>crosshairs</B> <I>operation</I> ?<I>arg</I>?
- See the <B>CROSSHAIRS</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>element</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>ELEMENT</B> <B>COMPONENTS</B> section.
-
- <I>pathName</I> <B>extents</B> <I>item</I>
- Returns the size of a particular item in the graph. <I>Item</I> must
- be either leftmargin, rightmargin, topmargin, bottommargin,
- plotwidth, or plotheight.
-
- <I>pathName</I> <B>grid</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>GRID</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>invtransform</B> <I>winX</I> <I>winY</I>
- Performs an inverse coordinate transformation, mapping window
- coordinates back to graph coordinates, using the standard X-axis
- and Y-axis. Returns a list of containing the X-Y graph coordi-
- nates.
-
- <I>pathName</I> <B>inside</B> <I>x</I> <I>y</I>
- Returns 1 is the designated screen coordinate (<I>x</I> and <I>y</I>) is
- inside the plotting area and 0 otherwise.
-
- <I>pathName</I> <B>legend</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>LEGEND</B> <B>COMPONENT</B> section.
-
- <I>pathName</I> <B>line</B> <B>operation</B> <B>arg</B>...
- The operation is the same as <B>element</B>.
-
- <I>pathName</I> <B>marker</B> <I>operation</I> ?<I>arg</I>?...
- photo Saves a Tk photo image. <I>OutputName</I> represents
- the name of a Tk photo image that must already
- have been created.
-
- wmf Saves an Aldus Placeable Metafile. <I>OutputName</I>
- represents the filename where the metafile is
- written. If <I>outputName</I> is CLIPBOARD, then out-
- put is written directly to the Windows clip-
- board. This format is available only under
- Microsoft Windows.
-
- emf Saves an Enhanced Metafile. <I>OutputName</I> repre-
- sents the filename where the metafile is writ-
- ten. If <I>outputName</I> is CLIPBOARD, then output
- is written directly to the Windows clipboard.
- This format is available only under Microsoft
- Windows.
-
- <B>-height</B> <I>size</I>
- Specifies the height of the graph. <I>Size</I> is a screen
- distance. The graph will be redrawn using this dimen-
- sion, rather than its current window height.
-
- <B>-width</B> <I>size</I>
- Specifies the width of the graph. <I>Size</I> is a screen
- distance. The graph will be redrawn using this dimen-
- sion, rather than its current window width.
-
- <I>pathName</I> <B>transform</B> <I>x</I> <I>y</I>
- Performs a coordinate transformation, mapping graph coordinates
- to window coordinates, using the standard X-axis and Y-axis.
- Returns a list containing the X-Y screen coordinates.
-
- <I>pathName</I> <B>xaxis</B> <I>operation</I> ?<I>arg</I>?...
-
- <I>pathName</I> <B>x2axis</B> <I>operation</I> ?<I>arg</I>?...
-
- <I>pathName</I> <B>yaxis</B> <I>operation</I> ?<I>arg</I>?...
-
- <I>pathName</I> <B>y2axis</B> <I>operation</I> ?<I>arg</I>?...
- See the <B>AXIS</B> <B>COMPONENTS</B> section.
-
-
-</PRE>
-<H2>GRAPH COMPONENTS</H2><PRE>
- A graph is composed of several components: coordinate axes, data ele-
- ments, legend, grid, cross hairs, postscript, and annotation markers.
- Instead of one big set of configuration options and operations, the
- graph is partitioned, where each component has its own configuration
- options and operations that specifically control that aspect or part of
- the graph.
-
- <B>AXIS</B> <B>COMPONENTS</B>
- Four coordinate axes are automatically created: two X-coordinate axes
- You can have several axes. To create an axis, invoke the axis component
- and its create operation. # Create a new axis called "tempAxis" .g
- axis create tempAxis You map data elements to an axis using the ele-
- ment's -mapy and -mapx configuration options. They specify the coordi-
- nate axes an element is mapped onto. # Now map the tempAxis data to
- this axis. .g element create "e1" -xdata $x -ydata $y -mapy tempAxis
- Any number of axes can be displayed simultaneously. They are drawn in
- the margins surrounding the plotting area. The default axes x and y
- are drawn in the bottom and left margins. The axes x2 and y2 are drawn
- in top and right margins. By default, only x and y are shown. Note
- that the axes can have different scales.
-
- To display a different axis or more than one axis, you invoke one of
- the following components: <B>xaxis</B>, <B>yaxis</B>, <B>x2axis</B>, and <B>y2axis</B>. Each com-
- ponent has a <B>use</B> operation that designates the axis (or axes) to be
- drawn in that corresponding margin: <B>xaxis</B> in the bottom, <B>yaxis</B> in the
- left, <B>x2axis</B> in the top, and <B>y2axis</B> in the right. # Display the axis
- tempAxis in the left margin. .g yaxis use tempAxis The <B>use</B> operation
- takes a list of axis names as its last argument. This is the list of
- axes to be drawn in this margin.
-
- You can configure axes in many ways. The axis scale can be linear or
- logarithmic. The values along the axis can either monotonically
- increase or decrease. If you need custom tick labels, you can specify
- a Tcl procedure to format the label any way you wish. You can control
- how ticks are drawn, by changing the major tick interval or the number
- of minor ticks. You can define non-uniform tick intervals, such as for
- time-series plots.
-
-
- <I>pathName</I> <B>axis</B> <B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?
- Associates <I>command</I> with <I>tagName</I> such that whenever the event
- sequence given by <I>sequence</I> occurs for an axis with this tag,
- <I>command</I> will be invoked. The syntax is similar to the <B>bind</B> com-
- mand except that it operates on graph axes, rather than widgets.
- See the <B>bind</B> manual entry for complete details on <I>sequence</I> and
- the substitutions performed on <I>command</I> before invoking it.
-
- If all arguments are specified then a new binding is created,
- replacing any existing binding for the same <I>sequence</I> and <I>tag-</I>
- <I>Name</I>. If the first character of <I>command</I> is + then <I>command</I> aug-
- ments an existing binding rather than replacing it. If no <I>com-</I>
- <I>mand</I> argument is provided then the command currently associated
- with <I>tagName</I> and <I>sequence</I> (it's an error occurs if there's no
- such binding) is returned. If both <I>command</I> and <I>sequence</I> are
- missing then a list of all the event sequences for which bind-
- ings have been defined for <I>tagName</I>.
-
- <I>pathName</I> <B>axis</B> <B>cget</B> <I>axisName</I> <I>option</I>
- Returns the current value of the option given by <I>option</I> for
- <I>axisName</I>. <I>Option</I> may be any option described below for the axis
- <B>configure</B> operation.
- the list matching the current event sequence will have
- its Tcl command executed. Implicitly the name of the
- element is always the first tag in the list. The default
- value is all.
-
- <B>-color</B> <I>color</I>
- Sets the color of the axis and tick labels. The default
- is black.
-
- <B>-descending</B> <I>boolean</I>
- Indicates whether the values along the axis are monotoni-
- cally increasing or decreasing. If <I>boolean</I> is true, the
- axis values will be decreasing. The default is 0.
-
- <B>-hide</B> <I>boolean</I>
- Indicates if the axis is displayed. If <I>boolean</I> is false
- the axis will be displayed. Any element mapped to the
- axis is displayed regardless. The default value is 0.
-
- <B>-justify</B> <I>justify</I>
- Specifies how the axis title should be justified. This
- matters only when the axis title contains more than one
- line of text. <I>Justify</I> must be left, right, or center.
- The default is center.
-
- <B>-limits</B> <I>formatStr</I>
- Specifies a printf-like description to format the minimum
- and maximum limits of the axis. The limits are displayed
- at the top/bottom or left/right sides of the plotting
- area. <I>FormatStr</I> is a list of one or two format descrip-
- tions. If one description is supplied, both the minimum
- and maximum limits are formatted in the same way. If
- two, the first designates the format for the minimum
- limit, the second for the maximum. If "" is given as
- either description, then the that limit will not be dis-
- loosely, at the outer tick intervals. If the axis limit
- is set with the -min or -max option, the axes are dis-
- played tightly. If <I>boolean</I> is true, the axis range is
- "loose". The default is 0.
-
- <B>-majorticks</B> <I>majorList</I>
- Specifies where to display major axis ticks. You can use
- this option to display ticks at non-uniform intervals.
- <I>MajorList</I> is a list of axis coordinates designating the
- location of major ticks. No minor ticks are drawn. If
- <I>majorList</I> is "", major ticks will be automatically com-
- puted. The default is "".
-
- <B>-max</B> <I>value</I>
- Sets the maximum limit of <I>axisName</I>. Any data point
- greater than <I>value</I> is not displayed. If <I>value</I> is "", the
- maximum limit is calculated using the largest data value.
- The default is "".
-
- <B>-min</B> <I>value</I>
- Sets the minimum limit of <I>axisName</I>. Any data point less
- than <I>value</I> is not displayed. If <I>value</I> is "", the minimum
- limit is calculated using the smallest data value. The
- default is "".
-
- <B>-minorticks</B> <I>minorList</I>
- Specifies where to display minor axis ticks. You can use
- this option to display minor ticks at non-uniform inter-
- vals. <I>MinorList</I> is a list of real values, ranging from
- 0.0 to 1.0, designating the placement of a minor tick.
- No minor ticks are drawn if the <B>-majortick</B> option is also
- set. If <I>minorList</I> is "", minor ticks will be automati-
- cally computed. The default is "".
-
- <B>-rotate</B> <I>theta</I>
- Specifies the how many degrees to rotate the axis tick
- labels. <I>Theta</I> is a real value representing the number of
- degrees to rotate the tick labels. The default is 0.0
- degrees.
-
- <B>-scrollcommand</B> <I>command</I>
- Specify the prefix for a command used to communicate with
- scrollbars for this axis, such as <I>.sbar</I> <I>set</I>.
-
- <B>-scrollmax</B> <I>value</I>
- Sets the maximum limit of the axis scroll region. If
- <I>value</I> is "", the maximum limit is calculated using the
- largest data value. The default is "".
-
- <B>-scrollmin</B> <I>value</I>
- Sets the minimum limit of axis scroll region. If <I>value</I>
- is "", the minimum limit is calculated using the smallest
- Indicates how many minor axis ticks are to be drawn. For
- example, if <I>number</I> is two, only one minor tick is drawn.
- If <I>number</I> is one, no minor ticks are displayed. The
- default is 2.
-
- <B>-tickfont</B> <I>fontName</I>
- Specifies the font for axis tick labels. The default is
- *-Courier-Bold-R-Normal-*-100-*.
-
- <B>-tickformat</B> <I>formatStr</I>
- Specifies a printf-like description to format teh axis
- tick labels. You can get the standard tick labels again by
- setting <I>formatStr</I> to "". The default is "".
-
- <B>-tickformatcommand</B>, <B>-command</B> <I>prefix</I>
- Specifies a Tcl command to be invoked when formatting the
- axis tick labels. <I>Prefix</I> is a string containing the name
- of a Tcl proc and any extra arguments for the procedure.
- This command is invoked for each major tick on the axis.
- Two additional arguments are passed to the procedure: the
- pathname of the widget and the current the numeric value
- of the tick. The procedure returns the formatted tick
- label. If "" is returned, no label will appear next to
- the tick. You can get the standard tick labels again by
- setting <I>prefix</I> to "". The default is "".
-
- The numeric value for the tick might change when using the
- <B>-logscale</B> and <B>-tickformat</B> options.
-
- Please note that this procedure is invoked while the
- graph is redrawn. You may query configuration options.
- But do not them, because this can have unexpected
- results.
-
- <B>-ticklength</B> <I>pixels</I>
- Sets the length of major and minor ticks (minor ticks are
- half the length of major ticks). If <I>pixels</I> is less than
- zero, the axis will be inverted with ticks drawn pointing
- towards the plot. The default is 0.1i.
-
- <B>-title</B> <I>text</I>
- Sets the title of the axis. If <I>text</I> is "", no axis title
- will be displayed.
-
- <B>-titlealternate</B> <I>boolean</I>
- Indicates to display the axis title in its alternate
- location. Normally the axis title is centered along the
- axis. This option places the axis either to the right
- (horizontal axes) or above (vertical axes) the axis. The
- default is 0.
-
- <B>-titlecolor</B> <I>color</I>
- Sets the color of the axis title. The default is black.
-
- <B>-titlefont</B> <I>fontName</I>
- Specifies the font for axis title. The default is *-Hel-
- vetica-Bold-R-Normal-*-14-140-*.
-
- Axis configuration options may be also be set by the <B>option</B> com-
- mand. The resource class is Axis. The resource names are the
- names of the axes (such as x or x2). option add
- *Graph.Axis.Color blue option add *Graph.x.LogScale true
- option add *Graph.x2.LogScale false
-
- <I>pathName</I> <B>axis</B> <B>create</B> <I>axisName</I> ?<I>option</I> <I>value</I>?...
- Creates a new axis by the name <I>axisName</I>. No axis by the same
- name can already exist. <I>Option</I> and <I>value</I> are described in above
- in the axis <B>configure</B> operation.
-
- <I>pathName</I> <B>axis</B> <B>delete</B> ?<I>axisName</I>?...
- Deletes the named axes. An axis is not really deleted until it
- is not longer in use, so it's safe to delete axes mapped to ele-
- ments.
-
- <I>pathName</I> <B>axis</B> <B>invtransform</B> <I>axisName</I> <I>value</I>
- Performs the inverse transformation, changing the screen coordi-
- nate <I>value</I> to a graph coordinate, mapping the value mapped to
-
- <I>pathName</I> <B>axis</B> <B>view</B> <I>axisName</I>
- Change the viewable area of this axis. Use as an argument to a
- scrollbar's "<I>-command</I>".
-
- The default axes are x, y, x2, and y2. But you can display more than
- four axes simultaneously. You can also swap in a different axis with
- <B>use</B> operation of the special axis components: <B>xaxis</B>, <B>x2axis</B>, <B>yaxis</B>, and
- <B>y2axis</B>. .g create axis temp .g create axis time ... .g xaxis use temp
- .g yaxis use time Only the axes specified for use are displayed on the
- screen.
-
- The <B>xaxis</B>, <B>x2axis</B>, <B>yaxis</B>, and <B>y2axis</B> components operate on an axis
- location rather than a specific axis like the more general <B>axis</B> compo-
- nent does. They implicitly control the axis that is currently using to
- that location. By default, <B>xaxis</B> uses the x axis, <B>yaxis</B> uses y, <B>x2axis</B>
- uses x2, and <B>y2axis</B> uses y2. When more than one axis is displayed in a
- margin, it represents the first axis displayed.
-
- The following operations are available for axes. They mirror exactly
- the operations of the <B>axis</B> component. The <I>axis</I> argument must be <B>xaxis</B>,
- <B>x2axis</B>, <B>yaxis</B>, or <B>y2axis</B>. This feature is deprecated since more than
- one axis can now be used a margin. You should only use the <B>xaxis</B>,
- <B>x2axis</B>, <B>yaxis</B>, and <B>y2axis</B> components with the <B>use</B> operation. For all
- other operations, use the general <B>axis</B> component instead.
-
- <I>pathName</I> <I>axis</I> <B>cget</B> <I>option</I>
-
- <I>pathName</I> <I>axis</I> <B>configure</B> ?<I>option</I> <I>value</I>?...
-
- <I>pathName</I> <I>axis</I> <B>invtransform</B> <I>value</I>
-
- <I>pathName</I> <I>axis</I> <B>limits</B>
-
- <I>pathName</I> <I>axis</I> <B>transform</B> <I>value</I>
-
- <I>pathName</I> <I>axis</I> <B>use</B> ?<I>axisName</I>?
- Designates the axis <I>axisName</I> is to be displayed at this loca-
- tion. <I>AxisName</I> can not be already in use at another location.
- This command returns the name of the axis currently using this
- location.
-
- <B>CROSSHAIRS</B> <B>COMPONENT</B>
- Cross hairs consist of two intersecting lines (one vertical and one
- horizontal) drawn completely across the plotting area. They are used
- to position the mouse in relation to the coordinate axes. Cross hairs
- differ from line markers in that they are implemented using XOR drawing
- primitives. This means that they can be quickly drawn and erased with-
- out redrawing the entire graph.
-
- The following operations are available for cross hairs:
-
- <B>-color</B> <I>color</I>
- Sets the color of the cross hairs. The default is black.
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of the cross hairs. <I>DashList</I> is a
- list of up to 11 numbers that alternately represent the
- lengths of the dashes and gaps on the cross hair lines.
- Each number must be between 1 and 255. If <I>dashList</I> is
- "", the cross hairs will be solid lines.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether cross hairs are drawn. If <I>boolean</I> is
- true, cross hairs are not drawn. The default is yes.
-
- <B>-linewidth</B> <I>pixels</I>
- Set the width of the cross hair lines. The default is 1.
-
- <B>-position</B> <I>pos</I>
- Specifies the screen position where the cross hairs
- intersect. <I>Pos</I> must be in the form "<I>@x,y</I>", where <I>x</I> and <I>y</I>
- are the window coordinates of the intersection.
-
- Cross hairs configuration options may be also be set by the
- <B>option</B> command. The resource name and class are crosshairs and
- Crosshairs respectively. option add *Graph.Crosshairs.LineWidth
- 2 option add *Graph.Crosshairs.Color red
-
- <I>pathName</I> <B>crosshairs</B> <B>off</B>
- Turns off the cross hairs.
-
- <I>pathName</I> <B>crosshairs</B> <B>on</B>
- Turns on the display of the cross hairs.
-
- <I>pathName</I> <B>crosshairs</B> <B>toggle</B>
- Toggles the current state of the cross hairs, alternately map-
- ping and unmapping the cross hairs.
-
- <B>ELEMENT</B> <B>COMPONENTS</B>
- A data element represents a set of data. It contains x and y vectors
- containing the coordinates of the data points. Elements can be dis-
- played with a symbol at each data point and lines connecting the
- points. Elements also control the appearance of the data, such as the
- symbol type, line width, color etc.
-
- When new data elements are created, they are automatically added to a
- list of displayed elements. The display list controls what elements
- are drawn and in what order.
-
- The following operations are available for elements.
-
- <I>pathName</I> <B>element</B> <B>activate</B> <I>elemName</I> ?<I>index</I>?...
- Specifies the data points of element <I>elemName</I> to be drawn using
- replacing any existing binding for the same <I>sequence</I> and <I>tag-</I>
- <I>Name</I>. If the first character of <I>command</I> is + then <I>command</I> aug-
- ments an existing binding rather than replacing it. If no <I>com-</I>
- <I>mand</I> argument is provided then the command currently associated
- with <I>tagName</I> and <I>sequence</I> (it's an error occurs if there's no
- such binding) is returned. If both <I>command</I> and <I>sequence</I> are
- missing then a list of all the event sequences for which bind-
- ings have been defined for <I>tagName</I>.
-
- <I>pathName</I> <B>element</B> <B>cget</B> <I>elemName</I> <I>option</I>
- Returns the current value of the element configuration option
- given by <I>option</I>. <I>Option</I> may be any of the options described
- below for the element <B>configure</B> operation.
-
- <I>pathName</I> <B>element</B> <B>closest</B> <I>x</I> <I>y</I> ?<I>option</I> <I>value</I>?... ?<I>elemName</I>?...
- Searches for the data point closest to the window coordinates <I>x</I>
- and <I>y</I>. By default, all elements are searched. Hidden elements
- (see the <B>-hide</B> option is false) are ignored. You can limit the
- search by specifying only the elements you want to be consid-
- ered. <I>ElemName</I> must be the name of an element that can not be
- hidden. It returns a key-value list containing the name of the
- closest element, the index of the closest data point, and the
- graph-coordinates of the point. Returns "", if no data point
- within the threshold distance can be found. The following
- <I>option</I>-<I>value</I> pairs are available.
-
- <B>-along</B> <I>direction</I>
- Search for the closest element using the following crite-
- ria:
-
- x Find closest element vertically from the given X-
- coordinate.
-
- y Find the closest element horizontally from the
- given Y-coordinate.
-
- both Find the closest element for the given point
- (using both the X and Y coordinates).
-
- <B>-halo</B> <I>pixels</I>
- Specifies a threshold distance where selected data points
- are ignored. <I>Pixels</I> is a valid screen distance, such as
- 2 or 1.2i. If this option isn't specified, then it
- defaults to the value of the graph's <B>-halo</B> option.
-
- <B>-interpolate</B> <I>string</I>
- Indicates whether to consider projections that lie along
- the line segments connecting data points when searching
- for the closest point. The default value is 0. The val-
- ues for <I>string</I> are described below.
-
- no Search only for the closest data point.
-
- <B>-activepen</B> <I>penName</I>
- Specifies pen to use to draw active element. If <I>penName</I>
- is "", no active elements will be drawn. The default is
- activeLine.
-
- <B>-areabackground</B> <I>color</I>
- Specifies the background color of the area under the
- curve. The background area color is drawn only for bit-
- maps (see the <B>-areapattern</B> option). If <I>color</I> is "", the
- background is transparent. The default is black.
-
- <B>-areaforeground</B> <I>color</I>
- Specifies the foreground color of the area under the
- curve. The default is black.
-
- <B>-areapattern</B> <I>pattern</I>
- Specifies how to fill the area under the curve. <I>Pattern</I>
- may be the name of a Tk bitmap, solid, or "". If
- "solid", then the area under the curve is drawn with the
- color designated by the <B>-areaforeground</B> option. If a
- bitmap, then the bitmap is stippled across the area.
- Here the bitmap colors are controlled by the <B>-areafore-</B>
- <B>ground</B> and <B>-areabackground</B> options. If <I>pattern</I> is "", no
- filled area is drawn. The default is "".
-
- <B>-areatile</B> <I>image</I>
- Specifies the name of a Tk image to be used to tile the
- area under the curve. This option supersedes the <B>-areap-</B>
- <B>attern</B> option. <I>Image</I> must be a photo image. If <I>image</I> is
- "", no tiling is performed. The default is "".
-
- <B>-bindtags</B> <I>tagList</I>
- Specifies the binding tags for the element. <I>TagList</I> is a
- list of binding tag names. The tags and their order will
- determine how events are handled for elements. Each tag
- in the list matching the current event sequence will have
- its Tcl command executed. Implicitly the name of the
- element is always the first tag in the list. The default
- value is all.
-
- <B>-color</B> <I>color</I>
- Sets the color of the traces connecting the data points.
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of element line. <I>DashList</I> is a list
- of up to 11 numbers that alternately represent the
- lengths of the dashes and gaps on the element line. Each
- number must be between 1 and 255. If <I>dashList</I> is "", the
- lines will be solid.
-
- <B>-data</B> <I>coordList</I>
- Specifies the X-Y coordinates of the data. <I>CoordList</I> is
- Sets the element's label in the legend. If <I>text</I> is "",
- the element will have no entry in the legend. The
- default label is the element's name.
-
- <B>-linewidth</B> <I>pixels</I>
- Sets the width of the connecting lines between data
- points. If <I>pixels</I> is 0, no connecting lines will be
- drawn between symbols. The default is 0.
-
- <B>-mapx</B> <I>xAxis</I>
- Selects the X-axis to map the element's X-coordinates
- onto. <I>XAxis</I> must be the name of an axis. The default is
- x.
-
- <B>-mapy</B> <I>yAxis</I>
- Selects the Y-axis to map the element's Y-coordinates
- onto. <I>YAxis</I> must be the name of an axis. The default is
- y.
-
- <B>-offdash</B> <I>color</I>
- Sets the color of the stripes when traces are dashed (see
- the <B>-dashes</B> option). If <I>color</I> is "", then the "off" pix-
- els will represent gaps instead of stripes. If <I>color</I> is
- defcolor, then the color will be the same as the <B>-color</B>
- option. The default is defcolor.
-
- <B>-outline</B> <I>color</I>
- Sets the color or the outline around each symbol. If
- <I>color</I> is "", then no outline is drawn. If <I>color</I> is def-
- color, then the color will be the same as the <B>-color</B>
- option. The default is defcolor.
-
- <B>-pen</B> <I>penname</I>
- Set the pen to use for this element.
-
- <B>-outlinewidth</B> <I>pixels</I>
- Sets the width of the outline bordering each symbol. If
- <I>pixels</I> is 0, no outline will be drawn. The default is 1.
-
- <B>-pixels</B> <I>pixels</I>
- Sets the size of symbols. If <I>pixels</I> is 0, no symbols
- will be drawn. The default is 0.125i.
-
- <B>-scalesymbols</B> <I>boolean</I>
- If <I>boolean</I> is true, the size of the symbols drawn for
- <I>elemName</I> will change with scale of the X-axis and Y-axis.
- At the time this option is set, the current ranges of the
- axes are saved as the normalized scales (i.e scale factor
- is 1.0) and the element is drawn at its designated size
- (see the <B>-pixels</B> option). As the scale of the axes
- change, the symbol will be scaled according to the
- smaller of the X-axis and Y-axis scales. If <I>boolean</I> is
- dratic spline is used. The default is <I>linear</I>.
-
- <B>-styles</B> <I>styleList</I>
- Specifies what pen to use based on the range of weights
- given. <I>StyleList</I> is a list of style specifications. Each
- style specification, in turn, is a list consisting of a
- pen name, and optionally a minimum and maximum range.
- Data points whose weight (see the <B>-weight</B> option) falls
- in this range, are drawn with this pen. If no range is
- specified it defaults to the index of the pen in the
- list. Note that this affects only symbol attributes.
- Line attributes, such as line width, dashes, etc. are
- ignored.
-
- <B>-symbol</B> <I>symbol</I>
- Specifies the symbol for data points. <I>Symbol</I> can be
- either square, circle, diamond, plus, cross, splus,
- scross, triangle, "" (where no symbol is drawn), or a
- bitmap. Bitmaps are specified as "<I>source</I> ?<I>mask</I>?", where
- <I>source</I> is the name of the bitmap, and <I>mask</I> is the bit-
- map's optional mask. The default is circle.
-
- <B>-trace</B> <I>direction</I>
- Indicates whether connecting lines between data points
- (whose X-coordinate values are either increasing or
- decreasing) are drawn. <I>Direction</I> must be increasing,
- decreasing, or both. For example, if <I>direction</I> is
- increasing, connecting lines will be drawn only between
- those data points where X-coordinate values are monotoni-
- cally increasing. If <I>direction</I> is both, connecting lines
- will be draw between all data points. The default is
- both.
-
- <B>-weights</B> <I>wVec</I>
- Specifies the weights of the individual data points.
- This, with the list pen styles (see the <B>-styles</B> option),
- controls how data points are drawn. <I>WVec</I> is the name of
- a BLT vector or a list of numeric expressions represent-
- ing the weights for each data point.
-
- <B>-xdata</B> <I>xVec</I>
- Specifies the X-coordinates of the data. <I>XVec</I> is the
- name of a BLT vector or a list of numeric expressions.
-
- <B>-ydata</B> <I>yVec</I>
- Specifies the Y-coordinates of the data. <I>YVec</I> is the
- name of a BLT vector or a list of numeric expressions.
-
- Element configuration options may also be set by the <B>option</B> com-
- mand. The resource class is Element. The resource name is the
- name of the element. option add *Graph.Element.symbol line
- option add *Graph.e1.symbol line
-
- <I>pathName</I> <B>element</B> <B>exists</B> <I>elemName</I>
- Returns 1 if an element <I>elemName</I> currently exists and 0 other-
- wise.
-
- <I>pathName</I> <B>element</B> <B>names</B> ?<I>pattern</I>?...
- Returns the elements matching one or more pattern. If no <I>pat-</I>
- <I>tern</I> is given, the names of all elements is returned.
-
- <I>pathName</I> <B>element</B> <B>show</B> ?<I>nameList</I>?
- Queries or modifies the element display list. The element dis-
- play list designates the elements drawn and in what order.
- <I>NameList</I> is a list of elements to be displayed in the order they
- are named. If there is no <I>nameList</I> argument, the current dis-
- play list is returned.
-
- <I>pathName</I> <B>element</B> <B>type</B> <I>elemName</I>
- Returns the type of <I>elemName</I>. If the element is a bar element,
- the commands returns the string "bar", otherwise it returns
- "line".
-
- <B>GRID</B> <B>COMPONENT</B>
- Grid lines extend from the major and minor ticks of each axis horizon-
- tally or vertically across the plotting area. The following operations
- are available for grid lines.
-
- <I>pathName</I> <B>grid</B> <B>cget</B> <I>option</I>
- Returns the current value of the grid line configuration option
- given by <I>option</I>. <I>Option</I> may be any option described below for
- the grid <B>configure</B> operation.
-
- <I>pathName</I> <B>grid</B> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options for grid lines.
- If <I>option</I> isn't specified, a list describing all the current
- grid options for <I>pathName</I> is returned. If <I>option</I> is specified,
- but not <I>value</I>, then a list describing <I>option</I> is returned. If
- one or more <I>option</I> and <I>value</I> pairs are specified, then for each
- pair, the grid line option <I>option</I> is set to <I>value</I>. The follow-
- ing options are valid for grid lines.
-
- <B>-color</B> <I>color</I>
- Sets the color of the grid lines. The default is black.
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of the grid lines. <I>DashList</I> is a list
- of up to 11 numbers that alternately represent the
- lengths of the dashes and gaps on the grid lines. Each
- number must be between 1 and 255. If <I>dashList</I> is "", the
- grid will be solid lines.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the grid should be drawn. If <I>boolean</I> is
-
- <B>-minor</B> <I>boolean</I>
- Indicates whether the grid lines should be drawn for
- minor ticks. If <I>boolean</I> is true, the lines will appear
- at minor tick intervals. The default is 1.
-
- Grid configuration options may also be set by the <B>option</B> com-
- mand. The resource name and class are grid and Grid respec-
- tively. option add *Graph.grid.LineWidth 2 option add
- *Graph.Grid.Color black
-
- <I>pathName</I> <B>grid</B> <B>off</B>
- Turns off the display the grid lines.
-
- <I>pathName</I> <B>grid</B> <B>on</B>
- Turns on the display the grid lines.
-
- <I>pathName</I> <B>grid</B> <B>toggle</B>
- Toggles the display of the grid.
-
- <B>LEGEND</B> <B>COMPONENT</B>
- The legend displays a list of the data elements. Each entry consists
- of the element's symbol and label. The legend can appear in any margin
- (the default location is in the right margin). It can also be posi-
- tioned anywhere within the plotting area.
-
- The following operations are valid for the legend.
-
- <I>pathName</I> <B>legend</B> <B>activate</B> <I>pattern</I>...
- Selects legend entries to be drawn using the active legend col-
- ors and relief. All entries whose element names match <I>pattern</I>
- are selected. To be selected, the element name must match only
- one <I>pattern</I>.
-
- <I>pathName</I> <B>legend</B> <B>bind</B> <I>tagName</I> ?<I>sequence</I>? ?<I>command</I>?
- Associates <I>command</I> with <I>tagName</I> such that whenever the event
- sequence given by <I>sequence</I> occurs for a legend entry with this
- tag, <I>command</I> will be invoked. Implicitly the element names in
- the entry are tags. The syntax is similar to the <B>bind</B> command
- except that it operates on legend entries, rather than widgets.
- See the <B>bind</B> manual entry for complete details on <I>sequence</I> and
- the substitutions performed on <I>command</I> before invoking it.
-
- If all arguments are specified then a new binding is created,
- replacing any existing binding for the same <I>sequence</I> and <I>tag-</I>
- <I>Name</I>. If the first character of <I>command</I> is + then <I>command</I> aug-
- ments an existing binding rather than replacing it. If no <I>com-</I>
- <I>mand</I> argument is provided then the command currently associated
- with <I>tagName</I> and <I>sequence</I> (it's an error occurs if there's no
- such binding) is returned. If both <I>command</I> and <I>sequence</I> are
- missing then a list of all the event sequences for which bind-
- ings have been defined for <I>tagName</I>.
-
- <B>-activebackground</B> <I>color</I>
- Sets the background color for active legend entries. All
- legend entries marked active (see the legend <B>activate</B>
- operation) are drawn using this background color.
-
- <B>-activeborderwidth</B> <I>pixels</I>
- Sets the width of the 3-D border around the outside edge
- of the active legend entries. The default is 2.
-
- <B>-activeforeground</B> <I>color</I>
- Sets the foreground color for active legend entries. All
- legend entries marked as active (see the legend <B>activate</B>
- operation) are drawn using this foreground color.
-
- <B>-activerelief</B> <I>relief</I>
- Specifies the 3-D effect desired for active legend
- entries. <I>Relief</I> denotes how the interior of the entry
- should appear relative to the legend; for example, raised
- means the entry should appear to protrude from the leg-
- end, relative to the surface of the legend. The default
- is flat.
-
- <B>-anchor</B> <I>anchor</I>
- Tells how to position the legend relative to the posi-
- tioning point for the legend. This is dependent on the
- value of the <B>-position</B> option. The default is center.
-
- left or right
- The anchor describes how to position the leg-
- end vertically.
-
- top or bottom
- The anchor describes how to position the leg-
- end horizontally.
-
- @x,y The anchor specifies how to position the leg-
- end relative to the positioning point. For
- example, if <I>anchor</I> is center then the legend
- is centered on the point; if <I>anchor</I> is n then
- the legend will be drawn such that the top
- center point of the rectangular region occu-
- pied by the legend will be at the positioning
- point.
-
- plotarea The anchor specifies how to position the leg-
- end relative to the plotting area. For exam-
- ple, if <I>anchor</I> is center then the legend is
- centered in the plotting area; if <I>anchor</I> is
- ne then the legend will be drawn such that
- occupies the upper right corner of the plot-
- ting area.
-
- Sets the width of the 3-D border around the outside edge
- of the legend (if such border is being drawn; the <B>relief</B>
- option determines this). The default is 2 pixels.
-
- <B>-font</B> <I>fontName</I>
- <I>FontName</I> specifies a font to use when drawing the labels
- of each element into the legend. The default is *-Hel-
- vetica-Bold-R-Normal-*-12-120-*.
-
- <B>-foreground</B> <I>color</I>
- Sets the foreground color of the text drawn for the ele-
- ment's label. The default is black.
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the legend should be displayed. If
- <I>boolean</I> is true, the legend will not be draw. The
- default is no.
-
- <B>-ipadx</B> <I>pad</I>
- Sets the amount of internal padding to be added to the
- width of each legend entry. <I>Pad</I> can be a list of one or
- two screen distances. If <I>pad</I> has two elements, the left
- side of the legend entry is padded by the first distance
- and the right side by the second. If <I>pad</I> is just one
- distance, both the left and right sides are padded
- evenly. The default is 2.
-
- <B>-ipady</B> <I>pad</I>
- Sets an amount of internal padding to be added to the
- height of each legend entry. <I>Pad</I> can be a list of one or
- two screen distances. If <I>pad</I> has two elements, the top
- of the entry is padded by the first distance and the bot-
- tom by the second. If <I>pad</I> is just one distance, both the
- top and bottom of the entry are padded evenly. The
- default is 2.
-
- <B>-padx</B> <I>pad</I>
- Sets the padding to the left and right exteriors of the
- legend. <I>Pad</I> can be a list of one or two screen dis-
- tances. If <I>pad</I> has two elements, the left side of the
- legend is padded by the first distance and the right side
- by the second. If <I>pad</I> has just one distance, both the
- left and right sides are padded evenly. The default is
- 4.
-
- <B>-pady</B> <I>pad</I>
- Sets the padding above and below the legend. <I>Pad</I> can be
- a list of one or two screen distances. If <I>pad</I> has two
- elements, the area above the legend is padded by the
- first distance and the area below by the second. If <I>pad</I>
- is just one distance, both the top and bottom areas are
- padded evenly. The default is 0.
- plotting area. If <I>boolean</I> is true, the legend will be
- drawn on top of any elements that may overlap it. The
- default is no.
-
- <B>-relief</B> <I>relief</I>
- Specifies the 3-D effect for the border around the leg-
- end. <I>Relief</I> specifies how the interior of the legend
- should appear relative to the graph; for example, raised
- means the legend should appear to protrude from the
- graph, relative to the surface of the graph. The default
- is sunken.
-
- Legend configuration options may also be set by the <B>option</B> com-
- mand. The resource name and class are legend and Legend respec-
- tively. option add *Graph.legend.Foreground blue option add
- *Graph.Legend.Relief raised
-
- <I>pathName</I> <B>legend</B> <B>deactivate</B> <I>pattern</I>...
- Selects legend entries to be drawn using the normal legend col-
- ors and relief. All entries whose element names match <I>pattern</I>
- are selected. To be selected, the element name must match only
- one <I>pattern</I>.
-
- <I>pathName</I> <B>legend</B> <B>get</B> <I>pos</I>
- Returns the name of the element whose entry is at the screen
- position <I>pos</I> in the legend. <I>Pos</I> must be in the form "<I>@x,y</I>",
- where <I>x</I> and <I>y</I> are window coordinates. If the given coordinates
- do not lie over a legend entry, "" is returned.
-
- <B>PEN</B> <B>COMPONENTS</B>
- Pens define attributes (both symbol and line style) for elements. Pens
- mirror the configuration options of data elements that pertain to how
- symbols and lines are drawn. Data elements use pens to determine how
- they are drawn. A data element may use several pens at once. In this
- case, the pen used for a particular data point is determined from each
- element's weight vector (see the element's <B>-weight</B> and <B>-style</B> options).
-
- One pen, called activeLine, is automatically created. It's used as the
- default active pen for elements. So you can change the active
- attributes for all elements by simply reconfiguring this pen. .g pen
- configure "activeLine" -color green You can create and use several
- pens. To create a pen, invoke the pen component and its create opera-
- tion. .g pen create myPen You map pens to a data element using either
- the element's <B>-pen</B> or <B>-activepen</B> options. .g element create "line1"
- -xdata $x -ydata $tempData \
- -pen myPen An element can use several pens at once. This is done by
- specifying the name of the pen in the element's style list (see the
- <B>-styles</B> option). .g element configure "line1" -styles { myPen 2.0 3.0
- } This says that any data point with a weight between 2.0 and 3.0 is to
- be drawn using the pen myPen. All other points are drawn with the ele-
- ment's default attributes.
-
- specified, then for each pair, the pen option <I>option</I> is set to
- <I>value</I>. The following options are valid for pens.
-
- <B>-color</B> <I>color</I>
- Sets the color of the traces connecting the data points.
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of element line. <I>DashList</I> is a list
- of up to 11 numbers that alternately represent the
- lengths of the dashes and gaps on the element line. Each
- number must be between 1 and 255. If <I>dashList</I> is "", the
- lines will be solid.
-
- <B>-fill</B> <I>color</I>
- Sets the interior color of symbols. If <I>color</I> is "", then
- the interior of the symbol is transparent. If <I>color</I> is
- defcolor, then the color will be the same as the <B>-color</B>
- option. The default is defcolor.
-
- <B>-linewidth</B> <I>pixels</I>
- Sets the width of the connecting lines between data
- points. If <I>pixels</I> is 0, no connecting lines will be
- drawn between symbols. The default is 0.
-
- <B>-offdash</B> <I>color</I>
- Sets the color of the stripes when traces are dashed (see
- the <B>-dashes</B> option). If <I>color</I> is "", then the "off" pix-
- els will represent gaps instead of stripes. If <I>color</I> is
- defcolor, then the color will be the same as the <B>-color</B>
- option. The default is defcolor.
-
- <B>-outline</B> <I>color</I>
- Sets the color or the outline around each symbol. If
- <I>color</I> is "", then no outline is drawn. If <I>color</I> is def-
- color, then the color will be the same as the <B>-color</B>
- option. The default is defcolor.
-
- <B>-outlinewidth</B> <I>pixels</I>
- Sets the width of the outline bordering each symbol. If
- <I>pixels</I> is 0, no outline will be drawn. The default is 1.
-
- <B>-pixels</B> <I>pixels</I>
- Sets the size of symbols. If <I>pixels</I> is 0, no symbols
- will be drawn. The default is 0.125i.
-
- <B>-symbol</B> <I>symbol</I>
- Specifies the symbol for data points. <I>Symbol</I> can be
- either square, circle, diamond, plus, cross, splus,
- scross, triangle, "" (where no symbol is drawn), or a
- bitmap. Bitmaps are specified as "<I>source</I> ?<I>mask</I>?", where
- <I>source</I> is the name of the bitmap, and <I>mask</I> is the bit-
- map's optional mask. The default is circle.
-
- Creates a new pen by the name <I>penName</I>. No pen by the same name
- can already exist. <I>Option</I> and <I>value</I> are described in above in
- the pen <B>configure</B> operation.
-
- <I>pathName</I> <B>pen</B> <B>delete</B> ?<I>penName</I>?...
- Deletes the named pens. A pen is not really deleted until it is
- not longer in use, so it's safe to delete pens mapped to ele-
- ments.
-
- <I>pathName</I> <B>pen</B> <B>names</B> ?<I>pattern</I>?...
- Returns a list of pens matching zero or more patterns. If no
- <I>pattern</I> argument is give, the names of all pens are returned.
-
- <B>POSTSCRIPT</B> <B>COMPONENT</B>
- The graph can generate encapsulated PostScript output. There are sev-
- eral configuration options you can specify to control how the plot will
- be generated. You can change the page dimensions and borders. The
- plot itself can be scaled, centered, or rotated to landscape. The
- PostScript output can be written directly to a file or returned through
- the interpreter.
-
- The following postscript operations are available.
-
- <I>pathName</I> <B>postscript</B> <B>cget</B> <I>option</I>
- Returns the current value of the postscript option given by
- <I>option</I>. <I>Option</I> may be any option described below for the post-
- script <B>configure</B> operation.
-
- <I>pathName</I> <B>postscript</B> <B>configure</B> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options for PostScript
- generation. If <I>option</I> isn't specified, a list describing the
- current postscript options for <I>pathName</I> is returned. If <I>option</I>
- is specified, but not <I>value</I>, then a list describing <I>option</I> is
- returned. If one or more <I>option</I> and <I>value</I> pairs are specified,
- then for each pair, the postscript option <I>option</I> is set to
- <I>value</I>. The following postscript options are available.
-
- <B>-center</B> <I>boolean</I>
- Indicates whether the plot should be centered on the
- PostScript page. If <I>boolean</I> is false, the plot will be
- placed in the upper left corner of the page. The default
- is 1.
-
- <B>-colormap</B> <I>varName</I>
- <I>VarName</I> must be the name of a global array variable that
- specifies a color mapping from the X color name to Post-
- Script. Each element of <I>varName</I> must consist of Post-
- Script code to set a particular color value (e.g. ``1.0
- 1.0 0.0 setrgbcolor''). When generating color informa-
- tion in PostScript, the array variable <I>varName</I> is checked
- if an element of the name as the color exists. If so, it
- uses its value as the PostScript command to set the
- Script. Each element of <I>varName</I> must consist of a Tcl
- list with one or two elements; the name and point size of
- a PostScript font. When outputting PostScript commands
- for a particular font, the array variable <I>varName</I> is
- checked to see if an element by the specified font
- exists. If there is such an element, then the font
- information contained in that element is used in the
- PostScript output. (If the point size is omitted from
- the list, the point size of the X font is used). Other-
- wise the X font is examined in an attempt to guess what
- PostScript font to use. This works only for fonts whose
- foundry property is <I>Adobe</I> (such as Times, Helvetica,
- Courier, etc.). If all of this fails then the font
- defaults to Helvetica-Bold.
-
- <B>-decorations</B> <I>boolean</I>
- Indicates whether PostScript commands to generate color
- backgrounds and 3-D borders will be output. If <I>boolean</I>
- is false, the background will be white and no 3-D borders
- will be generated. The default is 1.
-
- <B>-height</B> <I>pixels</I>
- Sets the height of the plot. This lets you print the
- graph with a height different from the one drawn on the
- screen. If <I>pixels</I> is 0, the height is the same as the
- widget's height. The default is 0.
-
- <B>-landscape</B> <I>boolean</I>
- If <I>boolean</I> is true, this specifies the printed area is to
- be rotated 90 degrees. In non-rotated output the X-axis
- of the printed area runs along the short dimension of the
- page (``portrait'' orientation); in rotated output the
- X-axis runs along the long dimension of the page (``land-
- scape'' orientation). Defaults to 0.
-
- <B>-maxpect</B> <I>boolean</I>
- Indicates to scale the plot so that it fills the Post-
- Script page. The aspect ratio of the graph is still
- retained. The default is 0.
-
- <B>-padx</B> <I>pad</I>
- Sets the horizontal padding for the left and right page
- borders. The borders are exterior to the plot. <I>Pad</I> can
- be a list of one or two screen distances. If <I>pad</I> has two
- elements, the left border is padded by the first distance
- and the right border by the second. If <I>pad</I> has just one
- distance, both the left and right borders are padded
- evenly. The default is 1i.
-
- <B>-pady</B> <I>pad</I>
- Sets the vertical padding for the top and bottom page
- borders. The borders are exterior to the plot. <I>Pad</I> can
- The default width is 8.5i.
-
- <B>-width</B> <I>pixels</I>
- Sets the width of the plot. This lets you generate a
- plot of a width different from that of the widget. If
- <I>pixels</I> is 0, the width is the same as the widget's width.
- The default is 0.
-
- Postscript configuration options may be also be set by the
- <B>option</B> command. The resource name and class are postscript and
- Postscript respectively. option add *Graph.postscript.Decora-
- tions false option add *Graph.Postscript.Landscape true
-
- <I>pathName</I> <B>postscript</B> <B>output</B> ?<I>fileName</I>? ?<I>option</I> <I>value</I>?...
- Outputs a file of encapsulated PostScript. If a <I>fileName</I> argu-
- ment isn't present, the command returns the PostScript. If any
- <I>option-value</I> pairs are present, they set configuration options
- controlling how the PostScript is generated. <I>Option</I> and <I>value</I>
- can be anything accepted by the postscript <B>configure</B> operation
- above.
-
- <B>MARKER</B> <B>COMPONENTS</B>
- Markers are simple drawing procedures used to annotate or highlight
- areas of the graph. Markers have various types: text strings, bitmaps,
- images, connected lines, windows, or polygons. They can be associated
- with a particular element, so that when the element is hidden or un-
- hidden, so is the marker. By default, markers are the last items
- drawn, so that data elements will appear in behind them. You can
- change this by configuring the <B>-under</B> option.
-
- Markers, in contrast to elements, don't affect the scaling of the coor-
- dinate axes. They can also have <I>elastic</I> coordinates (specified by -Inf
- and Inf respectively) that translate into the minimum or maximum limit
- of the axis. For example, you can place a marker so it always remains
- in the lower left corner of the plotting area, by using the coordinates
- -Inf,-Inf.
-
- The following operations are available for markers.
-
- <I>pathName</I> <B>marker</B> <B>after</B> <I>markerId</I> ?<I>afterId</I>?
- Changes the order of the markers, drawing the first marker after
- the second. If no second <I>afterId</I> argument is specified, the
- marker is placed at the end of the display list. This command
- can be used to control how markers are displayed since markers
- are drawn in the order of this display list.
-
- <I>pathName</I> <B>marker</B> <B>before</B> <I>markerId</I> ?<I>beforeId</I>?
- Changes the order of the markers, drawing the first marker
- before the second. If no second <I>beforeId</I> argument is specified,
- the marker is placed at the beginning of the display list. This
- command can be used to control how markers are displayed since
- markers are drawn in the order of this display list.
- with <I>tagName</I> and <I>sequence</I> (it's an error occurs if there's no
- such binding) is returned. If both <I>command</I> and <I>sequence</I> are
- missing then a list of all the event sequences for which bind-
- ings have been defined for <I>tagName</I>.
-
- <I>pathName</I> <B>marker</B> <B>cget</B> <I>option</I>
- Returns the current value of the marker configuration option
- given by <I>option</I>. <I>Option</I> may be any option described below in
- the <B>configure</B> operation.
-
- <I>pathName</I> <B>marker</B> <B>configure</B> <I>markerId</I> ?<I>option</I> <I>value</I>?...
- Queries or modifies the configuration options for markers. If
- <I>option</I> isn't specified, a list describing the current options
- for <I>markerId</I> is returned. If <I>option</I> is specified, but not
- <I>value</I>, then a list describing <I>option</I> is returned. If one or
- more <I>option</I> and <I>value</I> pairs are specified, then for each pair,
- the marker option <I>option</I> is set to <I>value</I>.
-
- The following options are valid for all markers. Each type of
- marker also has its own type-specific options. They are
- described in the sections below.
-
- <B>-bindtags</B> <I>tagList</I>
- Specifies the binding tags for the marker. <I>TagList</I> is a
- list of binding tag names. The tags and their order will
- determine how events for markers are handled. Each tag
- in the list matching the current event sequence will have
- its Tcl command executed. Implicitly the name of the
- marker is always the first tag in the list. The default
- value is all.
-
- <B>-coords</B> <I>coordList</I>
- Specifies the coordinates of the marker. <I>CoordList</I> is a
- list of graph coordinates. The number of coordinates
- required is dependent on the type of marker. Text,
- image, and window markers need only two coordinates (an
- X-Y coordinate). Bitmap markers can take either two or
- four coordinates (if four, they represent the corners of
- the bitmap). Line markers need at least four coordinates,
- polygons at least six. If <I>coordList</I> is "", the marker
- will not be displayed. The default is "".
-
- <B>-element</B> <I>elemName</I>
- Links the marker with the element <I>elemName</I>. The marker
- is drawn only if the element is also currently displayed
- (see the element's <B>show</B> operation). If <I>elemName</I> is "",
- the marker is always drawn. The default is "".
-
- <B>-hide</B> <I>boolean</I>
- Indicates whether the marker is drawn. If <I>boolean</I> is
- true, the marker is not drawn. The default is no.
-
- <B>-under</B> <I>boolean</I>
- Indicates whether the marker is drawn below/above data
- elements. If <I>boolean</I> is true, the marker is be drawn
- underneath the data element symbols and lines. Other-
- wise, the marker is drawn on top of the element. The
- default is 0.
-
- <B>-xoffset</B> <I>pixels</I>
- Specifies a screen distance to offset the marker horizon-
- tally. <I>Pixels</I> is a valid screen distance, such as 2 or
- 1.2i. The default is 0.
-
- <B>-yoffset</B> <I>pixels</I>
- Specifies a screen distance to offset the markers verti-
- cally. <I>Pixels</I> is a valid screen distance, such as 2 or
- 1.2i. The default is 0.
-
- Marker configuration options may also be set by the <B>option</B> com-
- mand. The resource class is either BitmapMarker, ImageMarker,
- LineMarker, PolygonMarker, TextMarker, or WindowMarker, depend-
- ing on the type of marker. The resource name is the name of the
- marker. option add *Graph.TextMarker.Foreground white option
- add *Graph.BitmapMarker.Foreground white option add
- *Graph.m1.Background blue
-
- <I>pathName</I> <B>marker</B> <B>create</B> <I>type</I> ?<I>option</I> <I>value</I>?...
- Creates a marker of the selected type. <I>Type</I> may be either text,
- line, bitmap, image, polygon, or window. This command returns
- the marker identifier, used as the <I>markerId</I> argument in the
- other marker-related commands. If the <B>-name</B> option is used,
- this overrides the normal marker identifier. If the name pro-
- vided is already used for another marker, the new marker will
- replace the old.
-
- <I>pathName</I> <B>marker</B> <B>delete</B> ?<I>name</I>?...
- Removes one of more markers. The graph will automatically be
- redrawn without the marker..
-
- <I>pathName</I> <B>marker</B> <B>exists</B> <I>markerId</I>
- Returns 1 if the marker <I>markerId</I> exists and 0 otherwise.
-
- <I>pathName</I> <B>marker</B> <B>names</B> ?<I>pattern</I>?
- Returns the names of all the markers that currently exist. If
- <I>pattern</I> is supplied, only those markers whose names match it
- will be returned.
-
- <I>pathName</I> <B>marker</B> <B>type</B> <I>markerId</I>
- Returns the type of the marker given by <I>markerId</I>, such as line
- or text. If <I>markerId</I> is not a valid a marker identifier, "" is
- returned.
-
- <B>BITMAP</B> <B>MARKERS</B>
- The following options are specific to bitmap markers:
-
- <B>-background</B> <I>color</I>
- Same as the <B>-fill</B> option.
-
- <B>-bitmap</B> <I>bitmap</I>
- Specifies the bitmap to be displayed. If <I>bitmap</I> is "", the
- marker will not be displayed. The default is "".
-
- <B>-fill</B> <I>color</I>
- Sets the background color of the bitmap. If <I>color</I> is the empty
- string, no background will be transparent. The default back-
- ground color is "".
-
- <B>-foreground</B> <I>color</I>
- Same as the <B>-outline</B> option.
-
- <B>-mask</B> <I>mask</I>
- Specifies a mask for the bitmap to be displayed. This mask is a
- bitmap itself, denoting the pixels that are transparent. If
- <I>mask</I> is "", all pixels of the bitmap will be drawn. The default
- is "".
-
- <B>-outline</B> <I>color</I>
- Sets the foreground color of the bitmap. The default value is
- black.
-
- <B>-rotate</B> <I>theta</I>
- Sets the rotation of the bitmap. <I>Theta</I> is a real number repre-
- senting the angle of rotation in degrees. The marker is first
- rotated and then placed according to its anchor position. The
- default rotation is 0.0.
-
- <B>IMAGE</B> <B>MARKERS</B>
- A image marker displays an image. Image markers are created with the
- marker's <B>create</B> operation in the form: <I>pathName</I> <B>marker</B> <B>create</B> <B>image</B>
- ?<I>option</I> <I>value</I>?... There may be many <I>option</I>-<I>value</I> pairs, each sets a
- configuration option for the marker. These same <I>option</I>-<I>value</I> pairs may
- be used with the marker's <B>configure</B> operation.
-
- The following options are specific to image markers:
-
- <B>-anchor</B> <I>anchor</I>
- <I>Anchor</I> tells how to position the image relative to the position-
- ing point for the image. For example, if <I>anchor</I> is center then
- the image is centered on the point; if <I>anchor</I> is n then the
- image will be drawn such that the top center point of the rect-
- angular region occupied by the image will be at the positioning
- point. This option defaults to center.
-
- <B>-image</B> <I>image</I>
- Specifies the image to be drawn. If <I>image</I> is "", the marker
- gaps on the line. Each number must be between 1 and 255. If
- <I>dashList</I> is "", the marker line will be solid.
-
- <B>-fill</B> <I>color</I>
- Sets the background color of the line. This color is used with
- striped lines (see the <B>-fdashes</B> option). If <I>color</I> is the empty
- string, no background color is drawn (the line will be dashed,
- not striped). The default background color is "".
-
- <B>-linewidth</B> <I>pixels</I>
- Sets the width of the lines. The default width is 0.
-
- <B>-outline</B> <I>color</I>
- Sets the foreground color of the line. The default value is
- black.
-
- <B>-stipple</B> <I>bitmap</I>
- Specifies a stipple pattern used to draw the line, rather than a
- solid line. <I>Bitmap</I> specifies a bitmap to use as the stipple
- pattern. If <I>bitmap</I> is "", then the line is drawn in a solid
- fashion. The default is "".
-
- <B>POLYGON</B> <B>MARKERS</B>
- A polygon marker displays a closed region described as two or more con-
- nected line segments. It is assumed the first and last points are con-
- nected. Polygon markers are created using the marker <B>create</B> operation
- in the form: <I>pathName</I> <B>marker</B> <B>create</B> <B>polygon</B> ?<I>option</I> <I>value</I>?... There
- may be many <I>option</I>-<I>value</I> pairs, each sets a configuration option for
- the marker. These same <I>option</I>-<I>value</I> pairs may be used with the <B>marker</B>
- <B>configure</B> command to change the marker's configuration. The following
- options are supported for polygon markers:
-
- <B>-dashes</B> <I>dashList</I>
- Sets the dash style of the outline of the polygon. <I>DashList</I> is a
- list of up to 11 numbers that alternately represent the lengths
- of the dashes and gaps on the outline. Each number must be
- between 1 and 255. If <I>dashList</I> is "", the outline will be a
- solid line.
-
- <B>-fill</B> <I>color</I>
- Sets the fill color of the polygon. If <I>color</I> is "", then the
- interior of the polygon is transparent. The default is white.
-
- <B>-linewidth</B> <I>pixels</I>
- Sets the width of the outline of the polygon. If <I>pixels</I> is zero,
- no outline is drawn. The default is 0.
-
- <B>-outline</B> <I>color</I>
- Sets the color of the outline of the polygon. If the polygon is
- stippled (see the <B>-stipple</B> option), then this represents the
- foreground color of the stipple. The default is black.
-
- the marker's <B>configure</B> operation.
-
- The following options are specific to text markers:
-
- <B>-anchor</B> <I>anchor</I>
- <I>Anchor</I> tells how to position the text relative to the position-
- ing point for the text. For example, if <I>anchor</I> is center then
- the text is centered on the point; if <I>anchor</I> is n then the text
- will be drawn such that the top center point of the rectangular
- region occupied by the text will be at the positioning point.
- This default is center.
-
- <B>-background</B> <I>color</I>
- Same as the <B>-fill</B> option.
-
- <B>-font</B> <I>fontName</I>
- Specifies the font of the text. The default is *-Helvetica-
- Bold-R-Normal-*-120-*.
-
- <B>-fill</B> <I>color</I>
- Sets the background color of the text. If <I>color</I> is the empty
- string, no background will be transparent. The default back-
- ground color is "".
-
- <B>-foreground</B> <I>color</I>
- Same as the <B>-outline</B> option.
-
- <B>-justify</B> <I>justify</I>
- Specifies how the text should be justified. This matters only
- when the marker contains more than one line of text. <I>Justify</I>
- must be left, right, or center. The default is center.
-
- <B>-outline</B> <I>color</I>
- Sets the color of the text. The default value is black.
-
- <B>-padx</B> <I>pad</I>
- Sets the padding to the left and right exteriors of the text.
- <I>Pad</I> can be a list of one or two screen distances. If <I>pad</I> has
- two elements, the left side of the text is padded by the first
- distance and the right side by the second. If <I>pad</I> has just one
- distance, both the left and right sides are padded evenly. The
- default is 4.
-
- <B>-pady</B> <I>pad</I>
- Sets the padding above and below the text. <I>Pad</I> can be a list of
- one or two screen distances. If <I>pad</I> has two elements, the area
- above the text is padded by the first distance and the area
- below by the second. If <I>pad</I> is just one distance, both the top
- and bottom areas are padded evenly. The default is 4.
-
- <B>-rotate</B> <I>theta</I>
- Specifies the number of degrees to rotate the text. <I>Theta</I> is a
-
- <I>option</I>-<I>value</I> pairs may be used with the marker's <B>configure</B> command.
-
- The following options are specific to window markers:
-
- <B>-anchor</B> <I>anchor</I>
- <I>Anchor</I> tells how to position the widget relative to the posi-
- tioning point for the widget. For example, if <I>anchor</I> is center
- then the widget is centered on the point; if <I>anchor</I> is n then
- the widget will be displayed such that the top center point of
- the rectangular region occupied by the widget will be at the
- positioning point. This option defaults to center.
-
- <B>-height</B> <I>pixels</I>
- Specifies the height to assign to the marker's window. If this
- option isn't specified, or if it is specified as "", then the
- window is given whatever height the widget requests internally.
-
- <B>-width</B> <I>pixels</I>
- Specifies the width to assign to the marker's window. If this
- option isn't specified, or if it is specified as "", then the
- window is given whatever width the widget requests internally.
-
- <B>-window</B> <I>pathName</I>
- Specifies the widget to be managed by the graph. <I>PathName</I> must
- be a child of the <B>graph</B> widget.
-
-
-</PRE>
-<H2>GRAPH COMPONENT BINDINGS</H2><PRE>
- Specific graph components, such as elements, markers and legend
- entries, can have a command trigger when event occurs in them, much
- like canvas items in Tk's canvas widget. Not all event sequences are
- valid. The only binding events that may be specified are those related
- to the mouse and keyboard (such as <B>Enter</B>, <B>Leave</B>, <B>ButtonPress</B>, <B>Motion</B>,
- and <B>KeyPress</B>).
-
- Only one element or marker can be picked during an event. This means,
- that if the mouse is directly over both an element and a marker, only
- the uppermost component is selected. This isn't true for legend
- entries. Both a legend entry and an element (or marker) binding com-
- mands will be invoked if both items are picked.
-
- It is possible for multiple bindings to match a particular event. This
- could occur, for example, if one binding is associated with the element
- name and another is associated with one of the element's tags (see the
- <B>-bindtags</B> option). When this occurs, all of the matching bindings are
- invoked. A binding associated with the element name is invoked first,
- followed by one binding for each of the element's bindtags. If there
- are multiple matching bindings for a single tag, then only the most
- specific binding is invoked. A continue command in a binding script
- terminates that script, and a break command terminates that script and
- skips any remaining scripts for the event, just as for the bind com-
- mand.
-
- vectors are updated.
-
- From Tcl, create the vectors and configure the element to use them.
- vector X Y .g element configure line1 -xdata X -ydata Y To set data
- points from C, you pass the values as arrays of doubles using the
- <B>Blt_ResetVector</B> call. The vector is reset with the new data and at the
- next idle point (when Tk re-enters its event loop), the graph will be
- redrawn automatically. #include &lt;tcl.h&gt; #include &lt;blt.h&gt;
-
- register int i; Blt_Vector *xVec, *yVec; double x[50], y[50];
-
- /* Get the BLT vectors "X" and "Y" (created above from Tcl) */ if
- ((Blt_GetVector(interp, "X", &amp;xVec) != TCL_OK) ||
- (Blt_GetVector(interp, "Y", &amp;yVec) != TCL_OK)) {
- return TCL_ERROR; }
-
- for (i = 0; i &lt; 50; i++) {
- x[i] = i * 0.02;
- y[i] = sin(x[i]); }
-
- /* Put the data into BLT vectors */ if ((Blt_ResetVector(xVec, x, 50,
- 50, TCL_VOLATILE) != TCL_OK) ||
- (Blt_ResetVector(yVec, y, 50, 50, TCL_VOLATILE) != TCL_OK)) {
- return TCL_ERROR; } See the <B>vector</B> manual page for more details.
-
-
-</PRE>
-<H2>SPEED TIPS</H2><PRE>
- There may be cases where the graph needs to be drawn and updated as
- quickly as possible. If drawing speed becomes a big problem, here are
- a few tips to speed up displays.
-
- <B>o</B> Try to minimize the number of data points. The more data points the
- looked at, the more work the graph must do.
-
- <B>o</B> If your data is generated as floating point values, the time required
- to convert the data values to and from ASCII strings can be signifi-
- cant, especially when there any many data points. You can avoid the
- redundant string-to-decimal conversions using the C API to BLT vec-
- tors.
-
- <B>o</B> Data elements without symbols are drawn faster than with symbols.
- Set the data element's <B>-symbol</B> option to none. If you need to draw
- symbols, try using the simple symbols such as splus and scross.
-
- <B>o</B> Don't stipple or dash the element. Solid lines are much faster.
-
- <B>o</B> If you update data elements frequently, try turning off the widget's
- <B>-bufferelements</B> option. When the graph is first displayed, it draws
- data elements into an internal pixmap. The pixmap acts as a cache,
- so that when the graph needs to be redrawn again, and the data ele-
- ments or coordinate axes haven't changed, the pixmap is simply copied
- to the screen. This is especially useful when you are using markers
- to highlight points and regions on the graph. But if the graph is
-
-
-
-BLT BLT_VERSION graph(n)
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/tkblt/doc/graph.n b/tkblt/doc/graph.n
deleted file mode 100644
index fbbbb9b..0000000
--- a/tkblt/doc/graph.n
+++ /dev/null
@@ -1,2408 +0,0 @@
-'\"
-'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-'\" This code has been modified under the terms listed below and is made
-'\" available under the same terms.
-'\"
-'\" Copyright 1991-1998 by Bell Labs Innovations for Lucent Technologies.
-'\"
-'\" Permission to use, copy, modify, and distribute this software and its
-'\" documentation for any purpose and without fee is hereby granted, provided
-'\" that the above copyright notice appear in all copies and that both that the
-'\" copyright notice and warranty disclaimer appear in supporting documentation,
-'\" and that the names of Lucent Technologies any of their entities not be used
-'\" in advertising or publicity pertaining to distribution of the software
-'\" without specific, written prior permission.
-'\"
-'\" Lucent Technologies disclaims all warranties with regard to this software,
-'\" including all implied warranties of merchantability and fitness. In no event
-'\" shall Lucent Technologies be liable for any special, indirect or
-'\" consequential damages or any damages whatsoever resulting from loss of use,
-'\" data or profits, whether in an action of contract, negligence or other
-'\" tortuous action, arising out of or in connection with the use or performance
-'\" of this software.
-'\"
-'\" Graph widget created by Sani Nassif and George Howlett.
-'\"
-.TH graph n BLT_VERSION BLT "BLT Built-In Commands"
-.BS
-'\" Note: do not modify the .SH NAME line immediately below!
-.SH NAME
-graph \- 2D graph for plotting X\-Y coordinate data.
-.SH SYNOPSIS
-\fBgraph\fI \fIpathName \fR?\fIoption value\fR?...
-.BE
-.SH DESCRIPTION
-The \fBgraph\fR command creates a graph for plotting
-two-dimensional data (X\-Y coordinates). It has many configurable
-components: coordinate axes, elements, legend, grid lines, cross
-hairs, etc. They allow you to customize the look and feel of the
-graph.
-.SH INTRODUCTION
-The \fBgraph\fR command creates a new window for plotting
-two-dimensional data (X\-Y coordinates). Data points are plotted in a
-rectangular area displayed in the center of the new window. This is the
-\fIplotting area\fR. The coordinate axes are drawn in the
-margins around the plotting area. By default, the legend is displayed
-in the right margin. The title is displayed in top margin.
-.PP
-The \fBgraph\fR widget is composed of several components: coordinate
-axes, data elements, legend, grid, cross hairs, pens, postscript, and
-annotation markers.
-.TP 1i
-\f(CWaxis\fR
-The graph has four standard axes (\f(CWx\fR, \f(CWx2\fR,
-\f(CWy\fR, and \f(CWy2\fR), but you can create and display any number
-of axes. Axes control what region of data is
-displayed and how the data is scaled. Each axis consists of the axis
-line, title, major and minor ticks, and tick labels. Tick labels
-display the value at each major tick.
-.TP 1i
-\f(CWcrosshairs\fR
-Cross hairs are used to position the mouse pointer relative to the X
-and Y coordinate axes. Two perpendicular lines, intersecting at the
-current location of the mouse, extend across the plotting area to the
-coordinate axes.
-.TP 1i
-\f(CWelement\fR
-An element represents a set of data points. Elements can be plotted
-with a symbol at each data point and lines connecting the points.
-The appearance of the element, such as its symbol, line width, and
-color is configurable.
-.TP 1i
-\f(CWgrid\fR
-Extends the major and minor ticks of the X\-axis and/or Y\-axis across the
-plotting area.
-.TP 1i
-\f(CWlegend\fR
-The legend displays the name and symbol of each data element.
-The legend can be drawn in any margin or in the plotting area.
-.TP 1i
-\f(CWmarker\fR
-Markers are used annotate or highlight areas of the graph. For
-example, you could use a polygon marker to fill an area under a
-curve, or a text marker to label a particular data point. Markers
-come in various forms: text strings, bitmaps, connected line
-segments, images, polygons, or embedded widgets.
-.TP 1i
-\f(CWpen\fR
-Pens define attributes (both symbol and line style) for elements.
-Data elements use pens to specify how they should be drawn. A data
-element may use many pens at once. Here, the particular pen
-used for a data point is determined from each element's weight
-vector (see the element's \fB\-weight\fR and \fB\-style\fR options).
-.TP 1i
-\f(CWpostscript\fR
-The widget can generate encapsulated PostScript output. This component
-has several options to configure how the PostScript is generated.
-.SH SYNTAX
-.DS
-\fBgraph \fIpathName \fR?\fIoption value\fR?...
-.DE
-The \fBgraph\fR command creates a new window \fIpathName\fR and makes
-it into a \fBgraph\fR widget. At the time this command is invoked, there
-must not exist a window named \fIpathName\fR, but \fIpathName\fR's
-parent must exist. Additional options may be specified on the
-command line or in the option database to configure aspects of the
-graph such as its colors and font. See the \fBconfigure\fR operation
-below for the exact details about what \fIoption\fR and \fIvalue\fR
-pairs are valid.
-.PP
-If successful, \fBgraph\fR returns the path name of the widget. It
-also creates a new Tcl command by the same name. You can use this
-command to invoke various operations that query or modify the graph.
-The general form is:
-.DS
-\fIpathName \fIoperation\fR \fR?\fIarg\fR?...
-.DE
-Both \fIoperation\fR and its arguments determine the exact behavior of
-the command. The operations available for the graph are described in
-the
-.SB "GRAPH OPERATIONS"
-section.
-.PP
-The command can also be used to access components of the graph.
-.DS
-\fIpathName component operation\fR ?\fIarg\fR?...
-.DE
-The operation, now located after the name of the component, is the
-function to be performed on that component. Each component has its own
-set of operations that manipulate that component. They will be
-described below in their own sections.
-.SH EXAMPLE
-The \fBgraph\fR command creates a new graph.
-.CS
-# Create a new graph. Plotting area is black.
-graph .g \-plotbackground black
-.CE
-A new Tcl command \f(CW.g\fR is also created. This command can be used
-to query and modify the graph. For example, to change the title of
-the graph to "My Plot", you use the new command and the graph's
-\fBconfigure\fR operation.
-.CS
-# Change the title.
-\&.g configure \-title "My Plot"
-.CE
-A graph has several components. To access a particular component you
-use the component's name. For example, to add data elements, you use
-the new command and the \fBelement\fR component.
-.CS
-# Create a new element named "line1"
-\&.g element create line1 \\
- \-xdata { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } \\
- \-ydata { 26.18 50.46 72.85 93.31 111.86 128.47 143.14
- 155.85 166.60 175.38 }
-.CE
-The element's X-Y coordinates are specified using lists of
-numbers. Alternately, BLT vectors could be used to hold the X\-Y
-coordinates.
-.CS
-# Create two vectors and add them to the graph.
-vector xVec yVec
-xVec set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 }
-yVec set { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85
- 166.60 175.38 }
-\&.g element create line1 \-xdata xVec \-ydata yVec
-.CE
-The advantage of using vectors is that when you modify one, the graph
-is automatically redrawn to reflect the new values.
-.CS
-# Change the y coordinate of the first point.
-set yVector(0) 25.18
-.CE
-An element named \f(CWe1\fR is now created in \f(CW.b\fR. It
-is automatically added to the display list of elements. You can
-use this list to control in what order elements are displayed.
-To query or reset the element display list, you use the element's
-\fBshow\fR operation.
-.CS
-# Get the current display list
-set elemList [.b element show]
-# Remove the first element so it won't be displayed.
-\&.b element show [lrange $elemList 0 end]
-.CE
-The element will be displayed by as many bars as there are data points
-(in this case there are ten). The bars will be drawn centered at the
-x-coordinate of the data point. All the bars will have the same
-attributes (colors, stipple, etc). The width of each bar is by
-default one unit. You can change this with using the \fB\-barwidth\fR
-option.
-.CS
-# Change the X\-Y coordinates of the first point.
-set xVec(0) 0.18
-set yVec(0) 25.18
-.CE
-An element named \f(CWline1\fR is now created in \f(CW.g\fR. By
-default, the element's label in the legend will be also \f(CWline1\fR.
-You can change the label, or specify no legend entry, again using the
-element's \fBconfigure\fR operation.
-.CS
-# Don't display "line1" in the legend.
-\&.g element configure line1 \-label ""
-.CE
-You can configure more than just the element's label. An element has
-many attributes such as symbol type and size, dashed or solid lines,
-colors, line width, etc.
-.CS
-\&.g element configure line1 \-symbol square \-color red \\
- \-dashes { 2 4 2 } \-linewidth 2 \-pixels 2c
-.CE
-Four coordinate axes are automatically created: \f(CWx\fR, \f(CWx2\fR,
-\f(CWy\fR, and \f(CWy2\fR. And by default, elements are mapped onto the
-axes \f(CWx\fR and \f(CWy\fR. This can be changed with the \fB\-mapx\fR
-and \fB\-mapy\fR options.
-.CS
-# Map "line1" on the alternate Y\-axis "y2".
-\&.g element configure line1 \-mapy y2
-.CE
-Axes can be configured in many ways too. For example, you change the
-scale of the Y\-axis from linear to log using the \fBaxis\fR component.
-.CS
-# Y\-axis is log scale.
-\&.g axis configure y \-logscale yes
-.CE
-One important way axes are used is to zoom in on a particular data
-region. Zooming is done by simply specifying new axis limits using
-the \fB\-min\fR and \fB\-max\fR configuration options.
-.CS
-\&.g axis configure x \-min 1.0 \-max 1.5
-\&.g axis configure y \-min 12.0 \-max 55.15
-.CE
-To zoom interactively, you link the \fBaxis configure\fR operations with
-some user interaction (such as pressing the mouse button), using the
-\fBbind\fR command. To convert between screen and graph coordinates,
-use the \fBinvtransform\fR operation.
-.CS
-# Click the button to set a new minimum
-bind .g <ButtonPress-1> {
- %W axis configure x \-min [%W axis invtransform x %x]
- %W axis configure x \-min [%W axis invtransform x %y]
-}
-.CE
-By default, the limits of the axis are determined from data values.
-To reset back to the default limits, set the \fB\-min\fR and
-\fB\-max\fR options to the empty value.
-.CS
-# Reset the axes to autoscale again.
-\&.g axis configure x \-min {} \-max {}
-\&.g axis configure y \-min {} \-max {}
-.CE
-By default, the legend is drawn in the right margin. You can
-change this or any legend configuration options using the
-\fBlegend\fR component.
-.CS
-# Configure the legend font, color, and relief
-\&.g legend configure \-position left \-relief raised \\
- \-font fixed \-fg blue
-.CE
-To prevent the legend from being displayed, turn on the \fB\-hide\fR
-option.
-.CS
-# Don't display the legend.
-\&.g legend configure \-hide yes\fR
-.CE
-The \fBgraph\fR widget has simple drawing procedures called markers.
-They can be used to highlight or annotate data in the graph. The types
-of markers available are bitmaps, images, polygons, lines, or windows.
-Markers can be used, for example, to mark or brush points. In this
-example, is a text marker that labels the data first point. Markers
-are created using the \fBmarker\fR component.
-.CS
-# Create a label for the first data point of "line1".
-\&.g marker create text \-name first_marker \-coords { 0.2 26.18 } \\
- \-text "start" \-anchor se \-xoffset -10 \-yoffset -10
-.CE
-This creates a text marker named \f(CWfirst_marker\fR. It will display
-the text "start" near the coordinates of the first data point. The
-\fB\-anchor\fR, \fB\-xoffset\fR, and \fB\-yoffset\fR options are used
-to display the marker above and to the left of the data point, so that
-the data point isn't covered by the marker. By default,
-markers are drawn last, on top of data. You can change this with the
-\fB\-under\fR option.
-.CS
-# Draw the label before elements are drawn.
-\&.g marker configure first_marker \-under yes
-.CE
-You can add cross hairs or grid lines using the \fBcrosshairs\fR and
-\fBgrid\fR components.
-.CS
-# Display both cross hairs and grid lines.
-\&.g crosshairs configure \-hide no \-color red
-\&.g grid configure \-hide no \-dashes { 2 2 }
-# Set up a binding to reposition the crosshairs.
-bind .g <Motion> {
- .g crosshairs configure -position @%x,%y
-}
-.CE
-The crosshairs are repositioned as the mouse pointer is moved
-in the graph. The pointer X-Y coordinates define the center
-of the crosshairs.
-.PP
-Finally, to get hardcopy of the graph, use the \fBpostscript\fR
-component.
-.CS
-# Print the graph into file "file.ps"
-\&.g postscript output file.ps \-maxpect yes \-decorations no
-.CE
-This generates a file \f(CWfile.ps\fR containing the encapsulated
-PostScript of the graph. The option \fB\-maxpect\fR says to scale the
-plot to the size of the page. Turning off the \fB\-decorations\fR
-option denotes that no borders or color backgrounds should be
-drawn (i.e. the background of the margins, legend, and plotting
-area will be white).
-.SH "GRAPH OPERATIONS"
-.TP
-\fIpathName \fBaxis \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "AXIS COMPONENTS"
-section.
-.TP
-\fIpathName \fBbar \fIelemName \fR?\fIoption value\fR?...
-Creates a new barchart element \fIelemName\fR. It's an
-error if an element \fIelemName\fR already exists.
-See the manual for \fBbarchart\fR for details about
-what \fIoption\fR and \fIvalue\fR pairs are valid.
-.TP
-\fIpathName \fBcget\fR \fIoption\fR
-Returns the current value of the configuration option given by
-\fIoption\fR. \fIOption\fR may be any option described
-below for the \fBconfigure\fR operation.
-.TP
-\fIpathName \fBconfigure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options of the graph. If
-\fIoption\fR isn't specified, a list describing the current
-options for \fIpathName\fR is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is returned.
-If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then
-for each pair, the option \fIoption\fR is set to \fIvalue\fR.
-The following options are valid.
-.RS
-.TP
-\fB\-aspect \fIwidth/height\fR
-Force a fixed aspect ratio of \fIwidth/height\fR, a floating point number.
-.TP
-\fB\-background \fIcolor\fR
-Sets the background color. This includes the margins and
-legend, but not the plotting area.
-.TP
-\fB\-borderwidth \fIpixels\fR
-Sets the width of the 3\-D border around the outside edge of the widget. The
-\fB\-relief\fR option determines if the border is to be drawn. The
-default is \f(CW2\fR.
-.TP
-\fB\-bottommargin \fIpixels\fR
-If non-zero, overrides the computed size of the margin extending
-below the X\-coordinate axis.
-If \fIpixels\fR is \f(CW0\fR, the automatically computed size is used.
-The default is \f(CW0\fR.
-.TP
-\fB\-bufferelements \fIboolean\fR
-Indicates whether an internal pixmap to buffer the display of data
-elements should be used. If \fIboolean\fR is true, data elements are
-drawn to an internal pixmap. This option is especially useful when
-the graph is redrawn frequently while the remains data unchanged (for
-example, moving a marker across the plot). See the
-.SB "SPEED TIPS"
-section.
-The default is \f(CW1\fR.
-.TP
-\fB\-cursor \fIcursor\fR
-Specifies the widget's cursor. The default cursor is \f(CWcrosshair\fR.
-.TP
-\fB\-font \fIfontName\fR
-Specifies the font of the graph title. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-18-180-*\fR.
-.TP
-\fB\-halo \fIpixels\fR
-Specifies a maximum distance to consider when searching for the
-closest data point (see the element's \fBclosest\fR operation below).
-Data points further than \fIpixels\fR away are ignored. The default is
-\f(CW0.5i\fR.
-.TP
-\fB\-height \fIpixels\fR
-Specifies the requested height of widget. The default is
-\f(CW4i\fR.
-.TP
-\fB\-invertxy \fIboolean\fR
-Indicates whether the placement X\-axis and Y\-axis should be inverted. If
-\fIboolean\fR is true, the X and Y axes are swapped. The default is
-\f(CW0\fR.
-.TP
-\fB\-justify \fIjustify\fR
-Specifies how the title should be justified. This matters only when
-the title contains more than one line of text. \fIJustify\fR must be
-\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is
-\f(CWcenter\fR.
-.TP
-\fB\-leftmargin \fIpixels\fR
-If non-zero, overrides the computed size of the margin extending
-from the left edge of the window to the Y\-coordinate axis.
-If \fIpixels\fR is \f(CW0\fR, the automatically computed size is used.
-The default is \f(CW0\fR.
-.TP
-\fB\-plotbackground \fIcolor\fR
-Specifies the background color of the plotting area. The default is
-\f(CWwhite\fR.
-.TP
-\fB\-plotborderwidth \fIpixels\fR
-Sets the width of the 3-D border around the plotting area. The
-\fB\-plotrelief\fR option determines if a border is drawn. The
-default is \f(CW2\fR.
-.TP
-\fB\-plotpadx \fIpad\fR
-Sets the amount of padding to be added to the left and right sides of
-the plotting area. \fIPad\fR can be a list of one or two screen
-distances. If \fIpad\fR has two elements, the left side of the
-plotting area entry is padded by the first distance and the right side
-by the second. If \fIpad\fR is just one distance, both the left and
-right sides are padded evenly. The default is \f(CW8\fR.
-.TP
-\fB\-plotpady \fIpad\fR
-Sets the amount of padding to be added to the top and bottom of the
-plotting area. \fIPad\fR can be a list of one or two screen
-distances. If \fIpad\fR has two elements, the top of the plotting
-area is padded by the first distance and the bottom by the second. If
-\fIpad\fR is just one distance, both the top and bottom are padded
-evenly. The default is \f(CW8\fR.
-.TP
-\fB\-plotrelief \fIrelief\fR
-Specifies the 3-D effect for the plotting area. \fIRelief\fR
-specifies how the interior of the plotting area should appear relative
-to rest of the graph; for example, \f(CWraised\fR means the plot should
-appear to protrude from the graph, relative to the surface of the
-graph. The default is \f(CWsunken\fR.
-.TP
-\fB\-relief \fIrelief\fR
-Specifies the 3-D effect for the graph widget. \fIRelief\fR
-specifies how the graph should appear relative to widget it is packed
-into; for example, \f(CWraised\fR means the graph should
-appear to protrude. The default is \f(CWflat\fR.
-.TP
-\fB\-rightmargin \fIpixels\fR
-If non-zero, overrides the computed size of the margin extending
-from the plotting area to the right edge of
-the window. By default, the legend is drawn in this margin.
-If \fIpixels\fR is \f(CW0\fR, the automatically computed size is used.
-The default is \f(CW0\fR.
-.TP
-\fB\-takefocus\fR \fIfocus\fR
-Provides information used when moving the focus from window to window
-via keyboard traversal (e.g., Tab and Shift-Tab). If \fIfocus\fR is
-\f(CW0\fR, this means that this window should be skipped entirely during
-keyboard traversal. \f(CW1\fR means that the this window should always
-receive the input focus. An empty value means that the traversal
-scripts make the decision whether to focus on the window.
-The default is \f(CW""\fR.
-.TP
-\fB\-tile \fIimage\fR
-Specifies a tiled background for the widget. If \fIimage\fR isn't
-\f(CW""\fR, the background is tiled using \fIimage\fR.
-Otherwise, the normal background color is drawn (see the
-\fB\-background\fR option). \fIImage\fR must be an image created
-using the Tk \fBimage\fR command. The default is \f(CW""\fR.
-.TP
-\fB\-title \fItext\fR
-Sets the title to \fItext\fR. If \fItext\fR is \f(CW""\fR,
-no title will be displayed.
-.TP
-\fB\-topmargin \fIpixels\fR
-If non-zero, overrides the computed size of the margin above the x2
-axis. If \fIpixels\fR is \f(CW0\fR, the automatically computed size
-is used. The default is \f(CW0\fR.
-.TP
-\fB\-width \fIpixels\fR
-Specifies the requested width of the widget. The default is
-\f(CW5i\fR.
-.RE
-.TP
-\fIpathName \fBcrosshairs \fIoperation \fR?\fIarg\fR?
-See the
-.SB "CROSSHAIRS COMPONENT"
-section.
-.TP
-\fIpathName \fBelement \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "ELEMENT COMPONENTS"
-section.
-.TP
-\fIpathName \fBextents \fIitem\fR
-Returns the size of a particular item in the graph. \fIItem\fR must
-be either \f(CWleftmargin\fR, \f(CWrightmargin\fR, \f(CWtopmargin\fR,
-\f(CWbottommargin\fR, \f(CWplotwidth\fR, or \f(CWplotheight\fR.
-.TP
-\fIpathName \fBgrid \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "GRID COMPONENT"
-section.
-.TP
-\fIpathName \fBinvtransform \fIwinX winY\fR
-Performs an inverse coordinate transformation, mapping window
-coordinates back to graph coordinates, using the standard X\-axis and Y\-axis.
-Returns a list of containing the X-Y graph coordinates.
-.TP
-\fIpathName \fBinside \fIx y\fR
-Returns \f(CW1\fR is the designated screen coordinate (\fIx\fR and \fIy\fR)
-is inside the plotting area and \f(CW0\fR otherwise.
-.TP
-\fIpathName \fBlegend \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "LEGEND COMPONENT"
-section.
-.TP
-\fIpathName \fBline\fB operation arg\fR...
-The operation is the same as \fBelement\fR.
-.TP
-\fIpathName \fBmarker \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "MARKER COMPONENTS"
-section.
-.TP
-\fIpathName \fBpostscript \fIoperation \fR?\fIarg\fR?...
-See the
-.SB "POSTSCRIPT COMPONENT"
-section.
-.TP
-\fIpathName \fBsnap \fR?\fIswitches\fR? \fIoutputName\fR
-Takes a snapshot of the graph, saving the output in \fIoutputName\fR.
-The following switches are available.
-.RS
-.TP 1i
-\fB\-format\fR \fIformat\fR
-Specifies how the snapshot is output. \fIFormat\fR may be one of
-the following listed below. The default is \f(CWphoto\fR.
-.RS
-.TP
-\f(CWphoto\fR
-Saves a Tk photo image. \fIOutputName\fR represents the name of a
-Tk photo image that must already have been created.
-.TP
-\f(CWwmf\fR
-Saves an Aldus Placeable Metafile. \fIOutputName\fR represents the
-filename where the metafile is written. If \fIoutputName\fR is
-\f(CWCLIPBOARD\fR, then output is written directly to the Windows
-clipboard. This format is available only under Microsoft Windows.
-.TP
-\f(CWemf\fR
-Saves an Enhanced Metafile. \fIOutputName\fR represents the filename
-where the metafile is written. If \fIoutputName\fR is
-\f(CWCLIPBOARD\fR, then output is written directly to the Windows
-clipboard. This format is available only under Microsoft Windows.
-.RE
-.TP 1i
-\fB\-height\fR \fIsize\fR
-Specifies the height of the graph. \fISize\fR is a screen distance.
-The graph will be redrawn using this dimension, rather than its
-current window height.
-.TP 1i
-\fB\-width\fR \fIsize\fR
-Specifies the width of the graph. \fISize\fR is a screen distance.
-The graph will be redrawn using this dimension, rather than its
-current window width.
-.RE
-.TP
-\fIpathName \fBtransform \fIx y\fR
-Performs a coordinate transformation, mapping graph coordinates to
-window coordinates, using the standard X\-axis and Y\-axis.
-Returns a list containing the X\-Y screen coordinates.
-.TP
-\fIpathName \fBxaxis \fIoperation\fR ?\fIarg\fR?...
-.TP
-\fIpathName \fBx2axis \fIoperation\fR ?\fIarg\fR?...
-.TP
-\fIpathName \fByaxis \fIoperation\fR ?\fIarg\fR?...
-.TP
-\fIpathName \fBy2axis \fIoperation\fR ?\fIarg\fR?...
-See the
-.SB "AXIS COMPONENTS"
-section.
-.SH "GRAPH COMPONENTS"
-A graph is composed of several components: coordinate axes, data
-elements, legend, grid, cross hairs, postscript, and annotation
-markers. Instead of one big set of configuration options and
-operations, the graph is partitioned, where each component has its own
-configuration options and operations that specifically control that
-aspect or part of the graph.
-.SS "AXIS COMPONENTS"
-Four coordinate axes are automatically created: two X\-coordinate axes
-(\f(CWx\fR and \f(CWx2\fR) and two Y\-coordinate axes (\f(CWy\fR, and
-\f(CWy2\fR). By default, the axis \f(CWx\fR is located in the bottom
-margin, \f(CWy\fR in the left margin, \f(CWx2\fR in the top margin, and
-\f(CWy2\fR in the right margin.
-.PP
-An axis consists of the axis line, title, major and minor ticks, and
-tick labels. Major ticks are drawn at uniform intervals along the
-axis. Each tick is labeled with its coordinate value. Minor ticks
-are drawn at uniform intervals within major ticks.
-.PP
-The range of the axis controls what region of data is plotted.
-Data points outside the minimum and maximum limits of the axis are
-not plotted. By default, the minimum and maximum limits are
-determined from the data, but you can reset either limit.
-.PP
-You can have several axes. To create an axis, invoke
-the axis component and its create operation.
-.CS
-# Create a new axis called "tempAxis"
-\&.g axis create tempAxis
-.CE
-You map data elements to an axis using the element's \-mapy and \-mapx
-configuration options. They specify the coordinate axes an element
-is mapped onto.
-.CS
-# Now map the tempAxis data to this axis.
-\&.g element create "e1" \-xdata $x \-ydata $y \-mapy tempAxis
-.CE
-Any number of axes can be displayed simultaneously. They are drawn in
-the margins surrounding the plotting area. The default axes \f(CWx\fR
-and \f(CWy\fR are drawn in the bottom and left margins. The axes
-\f(CWx2\fR and \f(CWy2\fR are drawn in top and right margins. By
-default, only \f(CWx\fR and \f(CWy\fR are shown. Note that the axes
-can have different scales.
-.PP
-To display a different axis or more than one axis, you invoke one of
-the following components: \fBxaxis\fR, \fByaxis\fR, \fBx2axis\fR, and
-\fBy2axis\fR. Each component has a \fBuse\fR operation that
-designates the axis (or axes) to be drawn in that corresponding
-margin: \fBxaxis\fR in the bottom, \fByaxis\fR in the left,
-\fBx2axis\fR in the top, and \fBy2axis\fR in the right.
-.CS
-# Display the axis tempAxis in the left margin.
-\&.g yaxis use tempAxis
-.CE
-The \fBuse\fR operation takes a list of axis names as its last
-argument. This is the list of axes to be drawn in this margin.
-.PP
-You can configure axes in many ways. The axis scale can be linear or
-logarithmic. The values along the axis can either monotonically
-increase or decrease. If you need custom tick labels, you can specify
-a Tcl procedure to format the label any way you wish. You can control
-how ticks are drawn, by changing the major tick interval or the number
-of minor ticks. You can define non-uniform tick intervals, such as
-for time-series plots.
-.PP
-.TP
-\fIpathName \fBaxis bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for an axis with this
-tag, \fIcommand\fR will be invoked. The syntax is similar to the
-\fBbind\fR command except that it operates on graph axes, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBaxis \fBcget \fIaxisName \fIoption\fR
-Returns the current value of the option given by \fIoption\fR for
-\fIaxisName\fR. \fIOption\fR may be any option described below
-for the axis \fBconfigure\fR operation.
-.TP
-\fIpathName \fBaxis \fBconfigure \fIaxisName \fR?\fIaxisName\fR?... ?\fIoption value\fR?...
-Queries or modifies the configuration options of \fIaxisName\fR.
-Several axes can be changed. If \fIoption\fR isn't specified, a list
-describing all the current options for \fIaxisName\fR is returned. If
-\fIoption\fR is specified, but not \fIvalue\fR, then a list describing
-\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR
-pairs are specified, then for each pair, the axis option \fIoption\fR
-is set to \fIvalue\fR. The following options are valid for axes.
-.RS
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for the axis. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events for axes are handled. Each tag in the list matching the current event
-sequence will have its Tcl command executed. Implicitly the name of
-the element is always the first tag in the list. The default value is
-\f(CWall\fR.
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the axis and tick labels.
-The default is \f(CWblack\fR.
-.TP
-\fB\-descending \fIboolean\fR
-Indicates whether the values along the axis are monotonically increasing or
-decreasing. If \fIboolean\fR is true, the axis values will be
-decreasing. The default is \f(CW0\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates if the axis is displayed. If \fIboolean\fR is false the axis
-will be displayed. Any element mapped to the axis is displayed regardless.
-The default value is \f(CW0\fR.
-.TP
-\fB\-justify \fIjustify\fR
-Specifies how the axis title should be justified. This matters only
-when the axis title contains more than one line of text. \fIJustify\fR
-must be \f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is
-\f(CWcenter\fR.
-.TP
-\fB\-limits \fIformatStr\fR
-Specifies a printf-like description to format the minimum and maximum
-limits of the axis. The limits are displayed at the top/bottom or
-left/right sides of the plotting area. \fIFormatStr\fR is a list of
-one or two format descriptions. If one description is supplied, both
-the minimum and maximum limits are formatted in the same way. If two,
-the first designates the format for the minimum limit, the second for
-the maximum. If \f(CW""\fR is given as either description, then
-the that limit will not be displayed. The default is \f(CW""\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the axis and tick lines. The default is \f(CW1\fR
-pixel.
-.TP
-\fB\-logscale \fIboolean\fR
-Indicates whether the scale of the axis is logarithmic or linear. If
-\fIboolean\fR is true, the axis is logarithmic. The default scale is
-linear.
-.TP
-\fB\-loose \fIboolean\fR
-Indicates whether the limits of the axis should fit the data points tightly,
-at the outermost data points, or loosely, at the outer tick intervals.
-If the axis limit is set with the -min or -max option, the axes are
-displayed tightly.
-If \fIboolean\fR is true, the axis range is "loose".
-The default is \f(CW0\fR.
-.TP
-\fB\-majorticks \fImajorList\fR
-Specifies where to display major axis ticks. You can use this option
-to display ticks at non-uniform intervals. \fIMajorList\fR is a list
-of axis coordinates designating the location of major ticks. No
-minor ticks are drawn. If \fImajorList\fR is \f(CW""\fR,
-major ticks will be automatically computed. The default is \f(CW""\fR.
-.TP
-\fB\-max \fIvalue\fR
-Sets the maximum limit of \fIaxisName\fR. Any data point greater
-than \fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR,
-the maximum limit is calculated using the largest data value.
-The default is \f(CW""\fR.
-.TP
-\fB\-min \fIvalue\fR
-Sets the minimum limit of \fIaxisName\fR. Any data point less than
-\fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR,
-the minimum limit is calculated using the smallest data value.
-The default is \f(CW""\fR.
-.TP
-\fB\-minorticks \fIminorList\fR
-Specifies where to display minor axis ticks. You can use this option
-to display minor ticks at non-uniform intervals. \fIMinorList\fR is a
-list of real values, ranging from 0.0 to 1.0, designating the placement of
-a minor tick. No minor ticks are drawn if the \fB\-majortick\fR
-option is also set. If \fIminorList\fR is \f(CW""\fR, minor ticks will
-be automatically computed. The default is \f(CW""\fR.
-.TP
-\fB\-rotate \fItheta\fR
-Specifies the how many degrees to rotate the axis tick labels.
-\fITheta\fR is a real value representing the number of degrees
-to rotate the tick labels. The default is \f(CW0.0\fR degrees.
-.TP
-\fB\-scrollcommand \fIcommand\fR
-Specify the prefix for a command used to communicate with scrollbars
-for this axis, such as \fI.sbar set\fP.
-.TP
-\fB\-scrollmax \fIvalue\fR
-Sets the maximum limit of the axis scroll region. If \fIvalue\fR is
-\f(CW""\fR, the maximum limit is calculated using the largest data
-value. The default is \f(CW""\fR.
-.TP
-\fB\-scrollmin \fIvalue\fR
-Sets the minimum limit of axis scroll region. If \fIvalue\fR is
-\f(CW""\fR, the minimum limit is calculated using the smallest data
-value. The default is \f(CW""\fR.
-.TP
-\fB\-showticks \fIboolean\fR
-Indicates whether axis ticks should be drawn. If \fIboolean\fR is
-true, ticks are drawn. If false, only the
-axis line is drawn. The default is \f(CW1\fR.
-.TP
-\fB\-stepsize \fIvalue\fR
-Specifies the interval between major axis ticks. If \fIvalue\fR isn't
-a valid interval (must be less than the axis range),
-the request is ignored and the step size is automatically calculated.
-.TP
-\fB\-subdivisions \fInumber\fR
-Indicates how many minor axis ticks are
-to be drawn. For example, if \fInumber\fR is two, only one minor
-tick is drawn. If \fInumber\fR is one, no minor ticks are
-displayed. The default is \f(CW2\fR.
-.TP
-\fB\-tickfont \fIfontName\fR
-Specifies the font for axis tick labels. The default is
-\f(CW*-Courier-Bold-R-Normal-*-100-*\fR.
-.TP
-\fB\-tickformat\fR \fIformatStr\fR
-Specifies a printf-like description to format teh axis
-tick labels. You can get the standard tick labels again by
-setting \fIformatStr\fR to \f(CW""\fR. The default is \f(CW""\fR.
-.TP
-\fB\-tickformatcommand\fR, \fB\-command \fIprefix\fR
-Specifies a Tcl command to be invoked when formatting the axis tick
-labels. \fIPrefix\fR is a string containing the name of a Tcl proc and
-any extra arguments for the procedure. This command is invoked for each
-major tick on the axis. Two additional arguments are passed to the
-procedure: the pathname of the widget and the current the numeric
-value of the tick. The procedure returns the formatted tick label. If
-\f(CW""\fR is returned, no label will appear next to the tick. You can
-get the standard tick labels again by setting \fIprefix\fR to
-\f(CW""\fR. The default is \f(CW""\fR.
-.sp 1
-The numeric value for the tick might change when using the
-\fB\-logscale\fR and \fB\-tickformat\fR options.
-.sp 1
-Please note that this procedure is invoked while the graph is redrawn.
-You may query configuration options. But do not them, because this
-can have unexpected results.
-.TP
-\fB\-ticklength \fIpixels\fR
-Sets the length of major and minor ticks (minor ticks are half the
-length of major ticks). If \fIpixels\fR is less than zero, the axis
-will be inverted with ticks drawn pointing towards the plot. The
-default is \f(CW0.1i\fR.
-.TP
-\fB\-title \fItext\fR
-Sets the title of the axis. If \fItext\fR is
-\f(CW""\fR, no axis title will be displayed.
-.TP
-\fB\-titlealternate \fIboolean\fR
-Indicates to display the axis title in its alternate location.
-Normally the axis title is centered along the axis. This option
-places the axis either to the right (horizontal axes) or above
-(vertical axes) the axis. The default is \f(CW0\fR.
-.TP
-\fB\-titlecolor \fIcolor\fR
-Sets the color of the axis title. The default is \f(CWblack\fR.
-.TP
-\fB\-titlefont \fIfontName\fR
-Specifies the font for axis title. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-14-140-*\fR.
-.PP
-Axis configuration options may be also be set by the \fBoption\fR
-command. The resource class is \f(CWAxis\fR. The resource names
-are the names of the axes (such as \f(CWx\fR or \f(CWx2\fR).
-.CS
-option add *Graph.Axis.Color blue
-option add *Graph.x.LogScale true
-option add *Graph.x2.LogScale false
-.CE
-.RE
-.TP
-\fIpathName \fBaxis \fBcreate \fIaxisName \fR?\fIoption value\fR?...
-Creates a new axis by the name \fIaxisName\fR. No axis by the same
-name can already exist. \fIOption\fR and \fIvalue\fR are described
-in above in the axis \fBconfigure\fR operation.
-.TP
-\fIpathName \fBaxis \fBdelete \fR?\fIaxisName\fR?...
-Deletes the named axes. An axis is not really
-deleted until it is not longer in use, so it's safe to delete
-axes mapped to elements.
-.TP
-\fIpathName \fBaxis invtransform \fIaxisName value\fR
-Performs the inverse transformation, changing the screen coordinate
-\fIvalue\fR to a graph coordinate, mapping the value mapped to
-\fIaxisName\fR. Returns the graph coordinate.
-.TP
-\fIpathName \fBaxis limits \fIaxisName\fR
-Returns a list of the minimum and maximum limits for \fIaxisName\fR. The order
-of the list is \f(CWmin max\fR.
-.TP
-\fIpathName \fBaxis names \fR?\fIpattern\fR?...
-Returns a list of axes matching zero or more patterns. If no
-\fIpattern\fR argument is give, the names of all axes are returned.
-.TP
-\fIpathName \fBaxis transform \fIaxisName value\fR
-Transforms the coordinate \fIvalue\fR to a screen coordinate by mapping
-the it to \fIaxisName\fR. Returns the transformed screen coordinate.
-.TP
-\fIpathName \fBaxis view \fIaxisName\fR
-Change the viewable area of this axis. Use as an argument to a scrollbar's "\fI\-command\fR".
-.PP
-The default axes are \f(CWx\fR, \f(CWy\fR, \f(CWx2\fR, and \f(CWy2\fR.
-But you can display more than four axes simultaneously. You can also
-swap in a different axis with \fBuse\fR operation of the special axis
-components: \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR.
-.CS
-\&.g create axis temp
-\&.g create axis time
-\&...
-\&.g xaxis use temp
-\&.g yaxis use time
-.CE
-Only the axes specified for use are displayed on the screen.
-.PP
-The \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR
-components operate on an axis location rather than a specific axis
-like the more general \fBaxis\fR component does. They implicitly
-control the axis that is currently using to that location. By
-default, \fBxaxis\fR uses the \f(CWx\fR axis, \fByaxis\fR uses
-\f(CWy\fR, \fBx2axis\fR uses \f(CWx2\fR, and \fBy2axis\fR uses
-\f(CWy2\fR. When more than one axis is displayed in a margin, it
-represents the first axis displayed.
-.PP
-The following operations are available for axes. They mirror exactly
-the operations of the \fBaxis\fR component. The \fIaxis\fR argument
-must be \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, or \fBy2axis\fR. This
-feature is deprecated since more than one axis can now be used a
-margin. You should only use the \fBxaxis\fR, \fBx2axis\fR,
-\fByaxis\fR, and \fBy2axis\fR components with the \fBuse\fR operation.
-For all other operations, use the general \fBaxis\fR component
-instead.
-.TP
-\fIpathName \fIaxis \fBcget \fIoption\fR
-.TP
-\fIpathName \fIaxis \fBconfigure \fR?\fIoption value\fR?...
-.TP
-\fIpathName \fIaxis\fB invtransform \fIvalue\fR
-.TP
-\fIpathName \fIaxis \fBlimits\fR
-.TP
-\fIpathName \fIaxis\fB transform \fIvalue\fR
-.TP
-\fIpathName \fIaxis\fB use \fR?\fIaxisName\fR?
-Designates the axis \fIaxisName\fR is to be displayed at this
-location. \fIAxisName\fR can not be already in use at another location.
-This command returns the name of the axis currently using this location.
-.SS "CROSSHAIRS COMPONENT"
-Cross hairs consist of two intersecting lines (one vertical and one horizontal)
-drawn completely across the plotting area. They are used to position
-the mouse in relation to the coordinate axes. Cross hairs differ from line
-markers in that they are implemented using XOR drawing primitives.
-This means that they can be quickly drawn and erased without redrawing
-the entire graph.
-.PP
-The following operations are available for cross hairs:
-.TP
-\fIpathName \fBcrosshairs cget \fIoption\fR
-Returns the current value of the cross hairs configuration option
-given by \fIoption\fR. \fIOption\fR may be any option
-described below for the cross hairs \fBconfigure\fR operation.
-.TP
-\fIpathName \fBcrosshairs configure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options of the cross hairs. If
-\fIoption\fR isn't specified, a list describing all the current
-options for the cross hairs is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is returned.
-If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then
-for each pair, the cross hairs option \fIoption\fR is set to
-\fIvalue\fR.
-The following options are available for cross hairs.
-.RS
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the cross hairs. The default is \f(CWblack\fR.
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the cross hairs. \fIDashList\fR is a list of up
-to 11 numbers that alternately represent the lengths of the dashes
-and gaps on the cross hair lines. Each number must be between 1 and
-255. If \fIdashList\fR is \f(CW""\fR, the cross hairs will be solid
-lines.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether cross hairs are drawn. If \fIboolean\fR is true,
-cross hairs are not drawn. The default is \f(CWyes\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Set the width of the cross hair lines. The default is \f(CW1\fR.
-.TP
-\fB\-position \fIpos\fR
-Specifies the screen position where the cross hairs intersect.
-\fIPos\fR must be in the form "\fI@x,y\fR", where \fIx\fR and \fIy\fR
-are the window coordinates of the intersection.
-.PP
-Cross hairs configuration options may be also be set by the
-\fBoption\fR command. The resource name and class are
-\f(CWcrosshairs\fR and \f(CWCrosshairs\fR respectively.
-.CS
-option add *Graph.Crosshairs.LineWidth 2
-option add *Graph.Crosshairs.Color red
-.CE
-.RE
-.TP
-\fIpathName \fBcrosshairs off\fR
-Turns off the cross hairs.
-.TP
-\fIpathName \fBcrosshairs on\fR
-Turns on the display of the cross hairs.
-.TP
-\fIpathName \fBcrosshairs toggle\fR
-Toggles the current state of the cross hairs, alternately mapping and
-unmapping the cross hairs.
-.SS "ELEMENT COMPONENTS"
-A data element represents a set of data. It contains x and y vectors
-containing the coordinates of the data points. Elements can be
-displayed with a symbol at each data point and lines connecting the
-points. Elements also control the appearance of the data, such as the
-symbol type, line width, color etc.
-.PP
-When new data elements are created, they are automatically added to a
-list of displayed elements. The display list controls what elements
-are drawn and in what order.
-.PP
-The following operations are available for elements.
-.TP
-\fIpathName \fBelement activate \fIelemName \fR?\fIindex\fR?...
-Specifies the data points of element \fIelemName\fR to be drawn
-using active foreground and background colors. \fIElemName\fR is the
-name of the element and \fIindex\fR is a number representing the index
-of the data point. If no indices are present then all data points
-become active.
-.TP
-\fIpathName \fBelement bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for an element with this
-tag, \fIcommand\fR will be invoked. The syntax is similar to the
-\fBbind\fR command except that it operates on graph elements, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBelement cget \fIelemName \fIoption\fR
-Returns the current value of the element configuration option given by
-\fIoption\fR. \fIOption\fR may be any of the options described below
-for the element \fBconfigure\fR operation.
-.TP
-\fIpathName \fBelement closest \fIx y\fR ?\fIoption value\fR?... ?\fIelemName\fR?...
-Searches for the data point closest to the window coordinates \fIx\fR
-and \fIy\fR. By default, all elements are searched. Hidden elements
-(see the \fB\-hide\fR option is false) are ignored. You can limit the
-search by specifying only the elements you want to be considered.
-\fIElemName\fR must be the name of an element that can not be hidden.
-It returns a key-value list containing the name of the closest element,
-the index of the closest data point, and the graph-coordinates of the point.
-Returns \f(CW""\fR, if no data point within the threshold distance
-can be found. The following
-\fIoption\fR\-\fIvalue\fR pairs are available.
-.RS
-.TP
-\fB\-along \fIdirection\fR
-Search for the closest element using the following criteria:
-.RS
-.TP
-\f(CWx\fR
-Find closest element vertically from the given X-coordinate.
-.TP
-\f(CWy\fR
-Find the closest element horizontally from the given Y-coordinate.
-.TP
-\f(CWboth\fR
-Find the closest element for the given point (using both the X and Y
-coordinates).
-.RE
-.TP
-\fB\-halo \fIpixels\fR
-Specifies a threshold distance where selected data points are ignored.
-\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR.
-If this option isn't specified, then it defaults to the value of the
-graph's \fB\-halo\fR option.
-.TP
-\fB\-interpolate \fIstring\fR
-Indicates whether to consider projections that lie along the line segments
-connecting data points when searching for the closest point.
-The default value is \f(CW0\fR. The values for \fIstring\fR are
-described below.
-.RS
-.TP 1.25i
-\f(CWno\fR
-Search only for the closest data point.
-.TP
-\f(CWyes\fR
-Search includes projections that lie along the
-line segments connecting the data points.
-.RE
-.RE
-.TP
-\fIpathName \fBelement configure \fIelemName \fR?\fIelemName\fR... ?\fIoption value\fR?...
-Queries or modifies the configuration options for elements. Several
-elements can be modified at the same time. If \fIoption\fR isn't
-specified, a list describing all the current options for
-\fIelemName\fR is returned. If \fIoption\fR is specified, but not
-\fIvalue\fR, then a list describing the option \fIoption\fR is
-returned. If one or more \fIoption\fR and \fIvalue\fR pairs are
-specified, then for each pair, the element option \fIoption\fR is set
-to \fIvalue\fR. The following options are valid for elements.
-.RS
-.TP
-\fB\-activepen \fIpenName\fR
-Specifies pen to use to draw active element. If \fIpenName\fR is
-\f(CW""\fR, no active elements will be drawn. The default is
-\f(CWactiveLine\fR.
-.TP
-\fB\-areabackground \fIcolor\fR
-Specifies the background color of the area under the curve. The
-background area color is drawn only for bitmaps (see the
-\fB\-areapattern\fR option). If \fIcolor\fR is \f(CW""\fR, the
-background is transparent. The default is \f(CWblack\fR.
-.TP
-\fB\-areaforeground \fIcolor\fR
-Specifies the foreground color of the area under the curve.
-The default is \f(CWblack\fR.
-.TP
-\fB\-areapattern \fIpattern\fR
-Specifies how to fill the area under the curve. \fIPattern\fR may be
-the name of a Tk bitmap, \f(CWsolid\fR, or \f(CW""\fR. If "solid",
-then the area under the curve is drawn with the color designated by
-the \fB\-areaforeground\fR option. If a bitmap, then the bitmap is
-stippled across the area. Here the bitmap colors are controlled by the
-\fB\-areaforeground\fR and \fB\-areabackground\fR options. If
-\fIpattern\fR is \f(CW""\fR, no filled area is drawn. The default is
-\f(CW""\fR.
-.TP
-\fB\-areatile \fIimage\fR
-Specifies the name of a Tk image to be used to tile the area under the
-curve. This option supersedes the \fB\-areapattern\fR option.
-\fIImage\fR must be a photo image. If \fIimage\fR is \f(CW""\fR, no
-tiling is performed. The default is \f(CW""\fR.
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for the element. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events are handled for elements. Each tag in the list matching the
-current event
-sequence will have its Tcl command executed. Implicitly the name of
-the element is always the first tag in the list. The default value is
-\f(CWall\fR.
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the traces connecting the data points.
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of element line. \fIDashList\fR is a list of up to
-11 numbers that alternately represent the lengths of the dashes and
-gaps on the element line. Each number must be between 1 and 255. If
-\fIdashList\fR is \f(CW""\fR, the lines will be solid.
-.TP
-\fB\-data \fIcoordList\fR
-Specifies the X\-Y coordinates of the data. \fICoordList\fR is a
-list of numeric expressions representing the X\-Y coordinate pairs
-of each data point.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the interior color of symbols. If \fIcolor\fR is \f(CW""\fR, then
-the interior of the symbol is transparent. If \fIcolor\fR is
-\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR
-option. The default is \f(CWdefcolor\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the element is displayed.
-The default is \f(CWno\fR.
-.TP
-\fB\-label \fItext\fR
-Sets the element's label in the legend. If \fItext\fR
-is \f(CW""\fR, the element will have no entry in the legend.
-The default label is the element's name.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the connecting lines between data points. If
-\fIpixels\fR is \f(CW0\fR, no connecting lines will be drawn between
-symbols. The default is \f(CW0\fR.
-.TP
-\fB\-mapx \fIxAxis\fR
-Selects the X\-axis to map the element's X\-coordinates onto.
-\fIXAxis\fR must be the name of an axis. The default is \f(CWx\fR.
-.TP
-\fB\-mapy \fIyAxis\fR
-Selects the Y\-axis to map the element's Y\-coordinates onto.
-\fIYAxis\fR must be the name of an axis. The default is \f(CWy\fR.
-.TP
-\fB\-offdash \fIcolor\fR
-Sets the color of the stripes when traces are dashed (see the
-\fB\-dashes\fR option). If \fIcolor\fR is \f(CW""\fR, then the "off"
-pixels will represent gaps instead of stripes. If \fIcolor\fR is
-\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR
-option. The default is \f(CWdefcolor\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the color or the outline around each symbol. If \fIcolor\fR is
-\f(CW""\fR, then no outline is drawn. If \fIcolor\fR is \f(CWdefcolor\fR,
-then the color will be the same as the \fB\-color\fR option. The
-default is \f(CWdefcolor\fR.
-.TP
-\fB\-pen \fIpenname\fR
-Set the pen to use for this element.
-.TP
-\fB\-outlinewidth \fIpixels\fR
-Sets the width of the outline bordering each symbol. If \fIpixels\fR
-is \f(CW0\fR, no outline will be drawn. The default is \f(CW1\fR.
-.TP
-\fB\-pixels \fIpixels\fR
-Sets the size of symbols. If \fIpixels\fR is \f(CW0\fR, no symbols will
-be drawn. The default is \f(CW0.125i\fR.
-.TP
-\fB\-scalesymbols \fIboolean\fR
-If \fIboolean\fR is true, the size of the symbols
-drawn for \fIelemName\fR will change with scale of the X\-axis and Y\-axis.
-At the time this option is set, the current ranges of the axes are
-saved as the normalized scales (i.e scale factor is 1.0) and the
-element is drawn at its designated size (see the \fB\-pixels\fR
-option). As the scale of the axes change, the symbol will be scaled
-according to the smaller of the X\-axis and Y\-axis scales. If \fIboolean\fR
-is false, the element's symbols are drawn at the designated size,
-regardless of axis scales. The default is \f(CW0\fR.
-.TP
-\fB\-smooth \fIsmooth\fR
-Specifies how connecting line segments are drawn between data points.
-\fISmooth\fR can be either \f(CWlinear\fR, \f(CWstep\fR, \f(CWnatural\fR, or
-\f(CWquadratic\fR. If \fIsmooth\fR is \f(CWlinear\fR, a single line
-segment is drawn, connecting both data points. When \fIsmooth\fR is
-\f(CWstep\fR, two line segments are drawn. The first is a horizontal
-line segment that steps the next X\-coordinate. The second is a
-vertical line, moving to the next Y\-coordinate. Both \fInatural\fR and
-\fIquadratic\fR generate multiple segments between data points. If
-\fInatural\fR, the segments are generated using a cubic spline. If
-\fIquadratic\fR, a quadratic spline is used. The default is
-\fIlinear\fR.
-.TP
-\fB\-styles \fIstyleList\fR
-Specifies what pen to use based on the range of weights given.
-\fIStyleList\fR is a list of style specifications. Each style
-specification, in turn, is a list consisting of a pen name, and
-optionally a minimum and maximum range. Data points whose weight (see
-the \fB\-weight\fR option) falls in this range, are drawn with this
-pen. If no range is specified it defaults to the index of the pen in
-the list. Note that this affects only symbol attributes. Line
-attributes, such as line width, dashes, etc. are ignored.
-.TP
-\fB\-symbol \fIsymbol\fR
-Specifies the symbol for data points. \fISymbol\fR can be either
-\f(CWsquare\fR, \f(CWcircle\fR, \f(CWdiamond\fR, \f(CWplus\fR, \f(CWcross\fR,
-\f(CWsplus\fR, \f(CWscross\fR, \f(CWtriangle\fR, \f(CW""\fR (where no symbol
-is drawn), or a bitmap. Bitmaps are specified as "\fIsource\fR
-?\fImask\fR?", where \fIsource\fR is the name of the bitmap, and
-\fImask\fR is the bitmap's optional mask. The default is
-\f(CWcircle\fR.
-.TP
-\fB\-trace \fIdirection\fR
-Indicates whether connecting lines between data points (whose
-X\-coordinate values are either increasing or decreasing) are drawn.
-\fIDirection\fR
-must be \f(CWincreasing\fR, \f(CWdecreasing\fR, or \f(CWboth\fR. For
-example, if \fIdirection\fR is \f(CWincreasing\fR, connecting lines will
-be drawn only between those data points where X\-coordinate values are
-monotonically increasing. If \fIdirection\fR is \f(CWboth\fR,
-connecting lines will be draw between all data points. The default is
-\f(CWboth\fR.
-.TP
-\fB\-weights \fIwVec\fR
-Specifies the weights of the individual data points. This,
-with the list pen styles (see the \fB\-styles\fR option),
-controls how data points are drawn. \fIWVec\fR is the name of a BLT
-vector or a list of numeric expressions representing the weights for
-each data point.
-.TP
-\fB\-xdata \fIxVec\fR
-Specifies the X\-coordinates of the data. \fIXVec\fR is the name of
-a BLT vector or a list of numeric expressions.
-.TP
-\fB\-ydata \fIyVec\fR
-Specifies the Y\-coordinates of the data. \fIYVec\fR is the name of
-a BLT vector or a list of numeric expressions.
-.PP
-Element configuration options may also be set by the \fBoption\fR
-command. The resource class is \f(CWElement\fR. The resource name is
-the name of the element.
-.CS
-option add *Graph.Element.symbol line
-option add *Graph.e1.symbol line
-.CE
-.RE
-.TP
-\fIpathName \fBelement create \fIelemName\fR ?\fIoption value\fR?...
-Creates a new element \fIelemName\fR. It's an error is
-an element \fIelemName\fR already exists. If
-additional arguments are present, they specify options valid for
-the element \fBconfigure\fR operation.
-.TP
-\fIpathName \fBelement deactivate \fIelemName\fR ?\fIelemName\fR?...
-Deactivates all the elements matching \fIpattern\fR.
-Elements whose names match any of the patterns given are redrawn using
-their normal colors.
-.TP
-\fIpathName \fBelement delete\fR ?\fIelemName\fR?...
-Deletes all the named elements. The graph is automatically redrawn.
-.TP
-\fIpathName \fBelement exists \fIelemName\fR
-Returns \f(CW1\fR if an element \fIelemName\fR currently exists and
-\f(CW0\fR otherwise.
-.TP
-\fIpathName \fBelement names \fR?\fIpattern\fR?...
-Returns the elements matching one or more pattern. If no
-\fIpattern\fR is given, the names of all elements is returned.
-.TP
-\fIpathName \fBelement show\fR ?\fInameList\fR?
-Queries or modifies the element display list. The element display
-list designates the elements drawn and in what
-order. \fINameList\fR is a list of elements to be displayed in the
-order they are named. If there is no \fInameList\fR argument,
-the current display list is returned.
-.TP
-\fIpathName \fBelement type\fR \fIelemName\fR
-Returns the type of \fIelemName\fR.
-If the element is a bar element, the commands returns the string
-\f(CW"bar"\fR, otherwise it returns \f(CW"line"\fR.
-.CE
-.SS "GRID COMPONENT"
-Grid lines extend from the major and minor ticks of each axis
-horizontally or vertically across the plotting area. The following
-operations are available for grid lines.
-.TP
-\fIpathName \fBgrid cget \fIoption\fR
-Returns the current value of the grid line configuration option given by
-\fIoption\fR. \fIOption\fR may be any option described below
-for the grid \fBconfigure\fR operation.
-.TP
-\fIpathName \fBgrid configure\fR ?\fIoption value\fR?...
-Queries or modifies the configuration options for grid lines. If
-\fIoption\fR isn't specified, a list describing all the current
-grid options for \fIpathName\fR is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is
-returned. If one or more \fIoption\fR and \fIvalue\fR pairs are
-specified, then for each pair, the grid line option \fIoption\fR is set to
-\fIvalue\fR. The following options are valid for grid lines.
-.RS
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the grid lines. The default is \f(CWblack\fR.
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the grid lines. \fIDashList\fR is a list of up
-to 11 numbers that alternately represent the lengths of the dashes
-and gaps on the grid lines. Each number must be between 1 and 255.
-If \fIdashList\fR is \f(CW""\fR, the grid will be solid lines.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the grid should be drawn. If \fIboolean\fR
-is true, grid lines are not shown. The default is \f(CWyes\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of grid lines. The default width is \f(CW1\fR.
-.TP
-\fB\-mapx \fIxAxis\fR
-Specifies the X\-axis to display grid lines. \fIXAxis\fR
-must be the name of an axis or \f(CW""\fR for no grid lines.
-The default is \f(CW""\fR.
-.TP
-\fB\-mapy \fIyAxis\fR
-Specifies the Y\-axis to display grid lines. \fIYAxis\fR
-must be the name of an axis or \f(CW""\fR for no grid lines.
-The default is \f(CWy\fR.
-.TP
-\fB\-minor \fIboolean\fR
-Indicates whether the grid lines should be drawn for minor ticks.
-If \fIboolean\fR is true, the lines will appear at
-minor tick intervals. The default is \f(CW1\fR.
-.PP
-Grid configuration options may also be set by the
-\fBoption\fR command. The resource name and class are \f(CWgrid\fR and
-\f(CWGrid\fR respectively.
-.CS
-option add *Graph.grid.LineWidth 2
-option add *Graph.Grid.Color black
-.CE
-.RE
-.TP
-\fIpathName \fBgrid off\fR
-Turns off the display the grid lines.
-.TP
-\fIpathName \fBgrid on\fR
-Turns on the display the grid lines.
-.TP
-\fIpathName \fBgrid toggle\fR
-Toggles the display of the grid.
-.SS "LEGEND COMPONENT"
-The legend displays a list of the data elements. Each entry consists
-of the element's symbol and label. The legend can appear in any
-margin (the default location is in the right margin). It
-can also be positioned anywhere within the plotting area.
-.PP
-The following operations are valid for the legend.
-.TP
-\fIpathName \fBlegend activate \fIpattern\fR...
-Selects legend entries to be drawn using the active legend colors and relief.
-All entries whose element names match \fIpattern\fR are selected. To
-be selected, the element name must match only one \fIpattern\fR.
-.TP
-\fIpathName \fBlegend bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for a legend entry with this
-tag, \fIcommand\fR will be invoked. Implicitly the element names
-in the entry are tags. The syntax is similar to the
-\fBbind\fR command except that it operates on legend entries, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBlegend cget \fIoption\fR
-Returns the current value of a legend configuration option.
-\fIOption\fR may be any option described below in the
-legend \fBconfigure\fR operation.
-.TP
-\fIpathName \fBlegend configure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options for the legend. If
-\fIoption\fR isn't specified, a list describing the current
-legend options for \fIpathName\fR is returned. If \fIoption\fR is
-specified, but not \fIvalue\fR, then a list describing \fIoption\fR is
-returned. If one or more \fIoption\fR and \fIvalue\fR pairs are
-specified, then for each pair, the legend option \fIoption\fR is set
-to \fIvalue\fR. The following options are valid for the legend.
-.RS
-.TP
-\fB\-activebackground \fIcolor\fR
-Sets the background color for active legend entries. All legend
-entries marked active (see the legend \fBactivate\fR operation) are
-drawn using this background color.
-.TP
-\fB\-activeborderwidth \fIpixels\fR
-Sets the width of the 3-D border around the outside edge of the active legend
-entries. The default is \f(CW2\fR.
-.TP
-\fB\-activeforeground \fIcolor\fR
-Sets the foreground color for active legend entries. All legend
-entries marked as active (see the legend \fBactivate\fR operation) are
-drawn using this foreground color.
-.TP
-\fB\-activerelief \fIrelief\fR
-Specifies the 3-D effect desired for active legend entries.
-\fIRelief\fR denotes how the interior of the entry should appear
-relative to the legend; for example, \f(CWraised\fR means the entry
-should appear to protrude from the legend, relative to the surface of
-the legend. The default is \f(CWflat\fR.
-.TP
-\fB\-anchor \fIanchor\fR
-Tells how to position the legend relative to the positioning point for
-the legend. This is dependent on the value of the \fB\-position\fR
-option. The default is \f(CWcenter\fR.
-.RS
-.TP 1.25i
-\f(CWleft\fR or \f(CWright\fR
-The anchor describes how to position the legend vertically.
-.TP
-\f(CWtop\fR or \f(CWbottom\fR
-The anchor describes how to position the legend horizontally.
-.TP
-\f(CW@x,y\fR
-The anchor specifies how to position the legend relative to the
-positioning point. For example, if \fIanchor\fR is \f(CWcenter\fR then
-the legend is centered on the point; if \fIanchor\fR is \f(CWn\fR then
-the legend will be drawn such that the top center point of the
-rectangular region occupied by the legend will be at the positioning
-point.
-.TP
-\f(CWplotarea\fR
-The anchor specifies how to position the legend relative to the
-plotting area. For example, if \fIanchor\fR is \f(CWcenter\fR then the
-legend is centered in the plotting area; if \fIanchor\fR is \f(CWne\fR
-then the legend will be drawn such that occupies the upper right
-corner of the plotting area.
-.RE
-.TP
-\fB\-background \fIcolor\fR
-Sets the background color of the legend. If \fIcolor\fR is \f(CW""\fR,
-the legend background with be transparent.
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for legend entries. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events are handled for legend entries. Each tag in the list matching
-the current event sequence will have its Tcl command executed. The
-default value is \f(CWall\fR.
-.TP
-\fB\-borderwidth \fIpixels\fR
-Sets the width of the 3-D border around the outside edge of the legend (if
-such border is being drawn; the \fBrelief\fR option determines this).
-The default is \f(CW2\fR pixels.
-.TP
-\fB\-font \fIfontName\fR
-\fIFontName\fR specifies a font to use when drawing the labels of each
-element into the legend. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-12-120-*\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Sets the foreground color of the text drawn for the element's label.
-The default is \f(CWblack\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the legend should be displayed. If \fIboolean\fR is
-true, the legend will not be draw. The default is \f(CWno\fR.
-.TP
-\fB\-ipadx \fIpad\fR
-Sets the amount of internal padding to be added to the width of each
-legend entry. \fIPad\fR can be a list of one or two screen distances. If
-\fIpad\fR has two elements, the left side of the legend entry is
-padded by the first distance and the right side by the second. If
-\fIpad\fR is just one distance, both the left and right sides are padded
-evenly. The default is \f(CW2\fR.
-.TP
-\fB\-ipady \fIpad\fR
-Sets an amount of internal padding to be added to the height of each
-legend entry. \fIPad\fR can be a list of one or two screen distances. If
-\fIpad\fR has two elements, the top of the entry is padded by the
-first distance and the bottom by the second. If \fIpad\fR is just
-one distance, both the top and bottom of the entry are padded evenly.
-The default is \f(CW2\fR.
-.TP
-\fB\-padx \fIpad\fR
-Sets the padding to the left and right exteriors of the legend.
-\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR
-has two elements, the left side of the legend is padded by the first
-distance and the right side by the second. If \fIpad\fR has just one
-distance, both the left and right sides are padded evenly. The
-default is \f(CW4\fR.
-.TP
-\fB\-pady \fIpad\fR
-Sets the padding above and below the legend. \fIPad\fR can be a list
-of one or two screen distances. If \fIpad\fR has two elements, the area above
-the legend is padded by the first distance and the area below by the
-second. If \fIpad\fR is just one distance, both the top and
-bottom areas are padded evenly. The default is \f(CW0\fR.
-.TP
-\fB\-position \fIpos\fR
-Specifies where the legend is drawn. The
-\fB\-anchor\fR option also affects where the legend is positioned. If
-\fIpos\fR is \f(CWleft\fR, \f(CWleft\fR, \f(CWtop\fR, or \f(CWbottom\fR, the
-legend is drawn in the specified margin. If \fIpos\fR is
-\f(CWplotarea\fR, then the legend is drawn inside the plotting area at a
-particular anchor. If \fIpos\fR is in the form "\fI@x,y\fR", where
-\fIx\fR and \fIy\fR are the window coordinates, the legend is drawn in
-the plotting area at the specified coordinates. The default is
-\f(CWright\fR.
-.TP
-\fB\-raised \fIboolean\fR
-Indicates whether the legend is above or below the data elements. This
-matters only if the legend is in the plotting area. If \fIboolean\fR
-is true, the legend will be drawn on top of any elements that may
-overlap it. The default is \f(CWno\fR.
-.TP
-\fB\-relief \fIrelief\fR
-Specifies the 3-D effect for the border around the legend.
-\fIRelief\fR specifies how the interior of the legend should appear
-relative to the graph; for example, \f(CWraised\fR means the legend
-should appear to protrude from the graph, relative to the surface of
-the graph. The default is \f(CWsunken\fR.
-.PP
-Legend configuration options may also be set by the \fBoption\fR
-command. The resource name and class are \f(CWlegend\fR and
-\f(CWLegend\fR respectively.
-.CS
-option add *Graph.legend.Foreground blue
-option add *Graph.Legend.Relief raised
-.CE
-.RE
-.TP
-\fIpathName \fBlegend deactivate \fIpattern\fR...
-Selects legend entries to be drawn using the normal legend colors and
-relief. All entries whose element names match \fIpattern\fR are
-selected. To be selected, the element name must match only one
-\fIpattern\fR.
-.TP
-\fIpathName \fBlegend get \fIpos\fR
-Returns the name of the element whose entry is at the screen position
-\fIpos\fR in the legend. \fIPos\fR must be in the form "\fI@x,y\fR",
-where \fIx\fR and \fIy\fR are window coordinates. If the given
-coordinates do not lie over a legend entry, \f(CW""\fR is returned.
-.SS "PEN COMPONENTS"
-Pens define attributes (both symbol and line style) for elements.
-Pens mirror the configuration options of data elements that pertain to
-how symbols and lines are drawn. Data elements use pens to determine
-how they are drawn. A data element may use several pens at once. In
-this case, the pen used for a particular data point is determined from
-each element's weight vector (see the element's \fB\-weight\fR and
-\fB\-style\fR options).
-.PP
-One pen, called \f(CWactiveLine\fR, is automatically created.
-It's used as the default active pen for elements. So you can change
-the active attributes for all elements by simply reconfiguring this
-pen.
-.CS
-\&.g pen configure "activeLine" -color green
-.CE
-You can create and use several pens. To create a pen, invoke
-the pen component and its create operation.
-.CS
-\&.g pen create myPen
-.CE
-You map pens to a data element using either the element's
-\fB\-pen\fR or \fB\-activepen\fR options.
-.CS
-\&.g element create "line1" -xdata $x -ydata $tempData \\
- -pen myPen
-.CE
-An element can use several pens at once. This is done by specifying
-the name of the pen in the element's style list (see the
-\fB\-styles\fR option).
-.CS
-\&.g element configure "line1" -styles { myPen 2.0 3.0 }
-.CE
-This says that any data point with a weight between 2.0 and 3.0
-is to be drawn using the pen \f(CWmyPen\fR. All other points
-are drawn with the element's default attributes.
-.PP
-The following operations are available for pen components.
-.PP
-.TP
-\fIpathName \fBpen \fBcget \fIpenName \fIoption\fR
-Returns the current value of the option given by \fIoption\fR for
-\fIpenName\fR. \fIOption\fR may be any option described below
-for the pen \fBconfigure\fR operation.
-.TP
-\fIpathName \fBpen \fBconfigure \fIpenName \fR?\fIpenName\fR... ?\fIoption value\fR?...
-Queries or modifies the configuration options of
-\fIpenName\fR. Several pens can be modified at once. If \fIoption\fR
-isn't specified, a list describing the current options for
-\fIpenName\fR is returned. If \fIoption\fR is specified, but not
-\fIvalue\fR, then a list describing \fIoption\fR is returned. If one
-or more \fIoption\fR and \fIvalue\fR pairs are specified, then for
-each pair, the pen option \fIoption\fR is set to \fIvalue\fR. The
-following options are valid for pens.
-.RS
-.TP
-\fB\-color \fIcolor\fR
-Sets the color of the traces connecting the data points.
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of element line. \fIDashList\fR is a list of up to
-11 numbers that alternately represent the lengths of the dashes and
-gaps on the element line. Each number must be between 1 and 255. If
-\fIdashList\fR is \f(CW""\fR, the lines will be solid.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the interior color of symbols. If \fIcolor\fR is \f(CW""\fR, then
-the interior of the symbol is transparent. If \fIcolor\fR is
-\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR
-option. The default is \f(CWdefcolor\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the connecting lines between data points. If
-\fIpixels\fR is \f(CW0\fR, no connecting lines will be drawn between
-symbols. The default is \f(CW0\fR.
-.TP
-\fB\-offdash \fIcolor\fR
-Sets the color of the stripes when traces are dashed (see the
-\fB\-dashes\fR option). If \fIcolor\fR is \f(CW""\fR, then the "off"
-pixels will represent gaps instead of stripes. If \fIcolor\fR is
-\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR
-option. The default is \f(CWdefcolor\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the color or the outline around each symbol. If \fIcolor\fR is
-\f(CW""\fR, then no outline is drawn. If \fIcolor\fR is \f(CWdefcolor\fR,
-then the color will be the same as the \fB\-color\fR option. The
-default is \f(CWdefcolor\fR.
-.TP
-\fB\-outlinewidth \fIpixels\fR
-Sets the width of the outline bordering each symbol. If \fIpixels\fR
-is \f(CW0\fR, no outline will be drawn. The default is \f(CW1\fR.
-.TP
-\fB\-pixels \fIpixels\fR
-Sets the size of symbols. If \fIpixels\fR is \f(CW0\fR, no symbols will
-be drawn. The default is \f(CW0.125i\fR.
-.TP
-\fB\-symbol \fIsymbol\fR
-Specifies the symbol for data points. \fISymbol\fR can be either
-\f(CWsquare\fR, \f(CWcircle\fR, \f(CWdiamond\fR, \f(CWplus\fR, \f(CWcross\fR,
-\f(CWsplus\fR, \f(CWscross\fR, \f(CWtriangle\fR, \f(CW""\fR (where no symbol
-is drawn), or a bitmap. Bitmaps are specified as "\fIsource\fR
-?\fImask\fR?", where \fIsource\fR is the name of the bitmap, and
-\fImask\fR is the bitmap's optional mask. The default is
-\f(CWcircle\fR.
-.TP
-\fB\-type \fIelemType\fR
-Specifies the type of element the pen is to be used with.
-This option should only be employed when creating the pen. This
-is for those that wish to mix different types of elements (bars and
-lines) on the same graph. The default type is "line".
-.PP
-Pen configuration options may be also be set by the \fBoption\fR
-command. The resource class is \f(CWPen\fR. The resource names
-are the names of the pens.
-.CS
-option add *Graph.Pen.Color blue
-option add *Graph.activeLine.color green
-.CE
-.RE
-.TP
-\fIpathName \fBpen \fBcreate \fIpenName \fR?\fIoption value\fR?...
-Creates a new pen by the name \fIpenName\fR. No pen by the same
-name can already exist. \fIOption\fR and \fIvalue\fR are described
-in above in the pen \fBconfigure\fR operation.
-.TP
-\fIpathName \fBpen \fBdelete \fR?\fIpenName\fR?...
-Deletes the named pens. A pen is not really
-deleted until it is not longer in use, so it's safe to delete
-pens mapped to elements.
-.TP
-\fIpathName \fBpen names \fR?\fIpattern\fR?...
-Returns a list of pens matching zero or more patterns. If no
-\fIpattern\fR argument is give, the names of all pens are returned.
-.SS "POSTSCRIPT COMPONENT"
-The graph can generate encapsulated PostScript output. There
-are several configuration options you can specify to control how the
-plot will be generated. You can change the page dimensions and
-borders. The plot itself can be scaled, centered, or rotated to
-landscape. The PostScript output can be written directly to a file or
-returned through the interpreter.
-.PP
-The following postscript operations are available.
-.TP
-\fIpathName \fBpostscript cget \fIoption\fR
-Returns the current value of the postscript option given by
-\fIoption\fR. \fIOption\fR may be any option described
-below for the postscript \fBconfigure\fR operation.
-.TP
-\fIpathName \fBpostscript configure \fR?\fIoption value\fR?...
-Queries or modifies the configuration options for PostScript
-generation. If \fIoption\fR isn't specified, a list describing
-the current postscript options for \fIpathName\fR is returned. If
-\fIoption\fR is specified, but not \fIvalue\fR, then a list describing
-\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR
-pairs are specified, then for each pair, the postscript option
-\fIoption\fR is set to \fIvalue\fR. The following postscript options
-are available.
-.RS
-.TP
-\fB\-center \fIboolean\fR
-Indicates whether the plot should be centered on the PostScript page. If
-\fIboolean\fR is false, the plot will be placed in the upper left
-corner of the page. The default is \f(CW1\fR.
-.TP
-\fB\-colormap \fIvarName\fR
-\fIVarName\fR must be the name of a global array variable that
-specifies a color mapping from the X color name to PostScript. Each
-element of \fIvarName\fR must consist of PostScript code to set a
-particular color value (e.g. ``\f(CW1.0 1.0 0.0 setrgbcolor\fR''). When
-generating color information in PostScript, the array variable \fIvarName\fR
-is checked if an element of the name as the color exists. If so, it uses
-its value as the PostScript
-command to set the color. If this option hasn't been specified, or if
-there isn't an entry in \fIvarName\fR for a given color, then it uses
-the red, green, and blue intensities from the X color.
-.TP
-\fB\-colormode \fImode\fR
-Specifies how to output color information. \fIMode\fR must be either
-\f(CWcolor\fR (for full color output), \f(CWgray\fR (convert all colors to
-their gray-scale equivalents) or \f(CWmono\fR (convert foreground colors
-to black and background colors to white). The default mode is
-\f(CWcolor\fR.
-.TP
-\fB\-fontmap \fIvarName\fR
-\fIVarName\fR must be the name of a global array variable that
-specifies a font mapping from the X font name to PostScript. Each
-element of \fIvarName\fR must consist of a Tcl list with one or two
-elements; the name and point size of a PostScript font.
-When outputting PostScript commands for a particular font, the array
-variable \fIvarName\fR is checked to see if an element by the
-specified font exists. If there is such an element, then the font
-information contained in that element is used in the PostScript
-output. (If the point size is omitted from the list, the point size
-of the X font is used). Otherwise the X font is examined in an
-attempt to guess what PostScript font to use. This works only for
-fonts whose foundry property is \fIAdobe\fR (such as Times, Helvetica,
-Courier, etc.). If all of this fails then the font defaults to
-\f(CWHelvetica-Bold\fR.
-.TP
-\fB\-decorations \fIboolean\fR
-Indicates whether PostScript commands to generate color backgrounds and 3-D
-borders will be output. If \fIboolean\fR is false, the background will be
-white and no 3-D borders will be generated. The
-default is \f(CW1\fR.
-.TP
-\fB\-height \fIpixels\fR
-Sets the height of the plot. This lets you print the graph with a
-height different from the one drawn on the screen. If
-\fIpixels\fR is 0, the height is the same as the widget's height.
-The default is \f(CW0\fR.
-.TP
-\fB\-landscape \fIboolean\fR
-If \fIboolean\fR is true, this specifies the printed area is to be
-rotated 90 degrees. In non-rotated output the X\-axis of the printed
-area runs along the short dimension of the page (``portrait''
-orientation); in rotated output the X\-axis runs along the long
-dimension of the page (``landscape'' orientation). Defaults to
-\f(CW0\fR.
-.TP
-\fB\-maxpect \fIboolean\fR
-Indicates to scale the plot so that it fills the PostScript page.
-The aspect ratio of the graph is still retained. The default is
-\f(CW0\fR.
-.TP
-\fB\-padx \fIpad\fR
-Sets the horizontal padding for the left and right page borders. The
-borders are exterior to the plot. \fIPad\fR can be a list of one or
-two screen distances. If \fIpad\fR has two elements, the left border is padded
-by the first distance and the right border by the second. If
-\fIpad\fR has just one distance, both the left and right borders are
-padded evenly. The default is \f(CW1i\fR.
-.TP
-\fB\-pady \fIpad\fR
-Sets the vertical padding for the top and bottom page borders. The
-borders are exterior to the plot. \fIPad\fR can be a list of one or
-two screen distances. If \fIpad\fR has two elements, the top border is padded
-by the first distance and the bottom border by the second. If
-\fIpad\fR has just one distance, both the top and bottom borders are
-padded evenly. The default is \f(CW1i\fR.
-.TP
-\fB\-paperheight \fIpixels\fR
-Sets the height of the postscript page. This can be used to select
-between different page sizes (letter, A4, etc). The default height is
-\f(CW11.0i\fR.
-.TP
-\fB\-paperwidth \fIpixels\fR
-Sets the width of the postscript page. This can be used to select
-between different page sizes (letter, A4, etc). The default width is
-\f(CW8.5i\fR.
-.TP
-\fB\-width \fIpixels\fR
-Sets the width of the plot. This lets you generate a plot
-of a width different from that of the widget. If \fIpixels\fR
-is 0, the width is the same as the widget's width. The default is
-\f(CW0\fR.
-.PP
-Postscript configuration options may be also be set by the
-\fBoption\fR command. The resource name and class are
-\f(CWpostscript\fR and \f(CWPostscript\fR respectively.
-.CS
-option add *Graph.postscript.Decorations false
-option add *Graph.Postscript.Landscape true
-.CE
-.RE
-.TP
-\fIpathName \fBpostscript output \fR?\fIfileName\fR? ?\fIoption value\fR?...
-Outputs a file of encapsulated PostScript. If a
-\fIfileName\fR argument isn't present, the command returns the
-PostScript. If any \fIoption-value\fR pairs are present, they set
-configuration options controlling how the PostScript is generated.
-\fIOption\fR and \fIvalue\fR can be anything accepted by the
-postscript \fBconfigure\fR operation above.
-.SS "MARKER COMPONENTS"
-Markers are simple drawing procedures used to annotate or highlight
-areas of the graph. Markers have various types: text strings,
-bitmaps, images, connected lines, windows, or polygons. They can be
-associated with a particular element, so that when the element is
-hidden or un-hidden, so is the marker. By default, markers are the
-last items drawn, so that data elements will appear in
-behind them. You can change this by configuring the \fB\-under\fR
-option.
-.PP
-Markers, in contrast to elements, don't affect the scaling of the
-coordinate axes. They can also have \fIelastic\fR coordinates
-(specified by \f(CW-Inf\fR and \f(CWInf\fR respectively) that translate
-into the minimum or maximum limit of the axis. For example, you can
-place a marker so it always remains in the lower left corner of the
-plotting area, by using the coordinates \f(CW-Inf\fR,\f(CW-Inf\fR.
-.PP
-The following operations are available for markers.
-.TP
-\fIpathName \fBmarker after \fImarkerId\fR ?\fIafterId\fR?
-Changes the order of the markers, drawing the first
-marker after the second. If no second \fIafterId\fR argument is
-specified, the marker is placed at the end of the display list. This
-command can be used to control how markers are displayed since markers
-are drawn in the order of this display list.
-.TP
-\fIpathName \fBmarker before \fImarkerId\fR ?\fIbeforeId\fR?
-Changes the order of the markers, drawing the first
-marker before the second. If no second \fIbeforeId\fR argument is
-specified, the marker is placed at the beginning of the display list.
-This command can be used to control how markers are displayed since
-markers are drawn in the order of this display list.
-.TP
-\fIpathName \fBmarker bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR?
-Associates \fIcommand\fR with \fItagName\fR such that whenever the
-event sequence given by \fIsequence\fR occurs for a marker with this
-tag, \fIcommand\fR will be invoked. The syntax is similar to the
-\fBbind\fR command except that it operates on graph markers, rather
-than widgets. See the \fBbind\fR manual entry for
-complete details on \fIsequence\fR and the substitutions performed on
-\fIcommand\fR before invoking it.
-.sp
-If all arguments are specified then a new binding is created, replacing
-any existing binding for the same \fIsequence\fR and \fItagName\fR.
-If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR
-augments an existing binding rather than replacing it.
-If no \fIcommand\fR argument is provided then the command currently
-associated with \fItagName\fR and \fIsequence\fR (it's an error occurs
-if there's no such binding) is returned. If both \fIcommand\fR and
-\fIsequence\fR are missing then a list of all the event sequences for
-which bindings have been defined for \fItagName\fR.
-.TP
-\fIpathName \fBmarker cget \fIoption\fR
-Returns the current value of the marker configuration option given by
-\fIoption\fR. \fIOption\fR may be any option described
-below in the \fBconfigure\fR operation.
-.TP
-\fIpathName \fBmarker configure \fImarkerId\fR ?\fIoption value\fR?...
-Queries or modifies the configuration options for markers. If
-\fIoption\fR isn't specified, a list describing the current
-options for \fImarkerId\fR is returned. If \fIoption\fR is specified,
-but not \fIvalue\fR, then a list describing \fIoption\fR is returned.
-If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then
-for each pair, the marker option \fIoption\fR is set to \fIvalue\fR.
-.sp
-The following options are valid for all markers.
-Each type of marker also has its own type-specific options.
-They are described in the sections below.
-.RS
-.TP
-\fB\-bindtags \fItagList\fR
-Specifies the binding tags for the marker. \fITagList\fR is a list
-of binding tag names. The tags and their order will determine how
-events for markers are handled. Each tag in the list matching the
-current event sequence will have its Tcl command executed. Implicitly
-the name of the marker is always the first tag in the list.
-The default value is \f(CWall\fR.
-.TP
-\fB\-coords \fIcoordList\fR
-Specifies the coordinates of the marker. \fICoordList\fR is
-a list of graph coordinates. The number of coordinates required
-is dependent on the type of marker. Text, image, and window markers
-need only two coordinates (an X\-Y coordinate). Bitmap markers
-can take either two or four coordinates (if four, they represent the
-corners of the bitmap). Line markers
-need at least four coordinates, polygons at least six.
-If \fIcoordList\fR is \f(CW""\fR, the marker will not be displayed.
-The default is \f(CW""\fR.
-.TP
-\fB\-element \fIelemName\fR
-Links the marker with the element \fIelemName\fR. The marker is
-drawn only if the element is also currently displayed (see the
-element's \fBshow\fR operation). If \fIelemName\fR is \f(CW""\fR, the
-marker is always drawn. The default is \f(CW""\fR.
-.TP
-\fB\-hide \fIboolean\fR
-Indicates whether the marker is drawn. If \fIboolean\fR is true,
-the marker is not drawn. The default is \f(CWno\fR.
-.TP
-\fB\-mapx \fIxAxis\fR
-Specifies the X\-axis to map the marker's X\-coordinates onto.
-\fIXAxis\fR must the name of an axis. The default is \f(CWx\fR.
-.TP
-\fB\-mapy \fIyAxis\fR
-Specifies the Y\-axis to map the marker's Y\-coordinates onto.
-\fIYAxis\fR must the name of an axis. The default is \f(CWy\fR.
-.TP
-\fB\-name \fImarkerId\fR
-Changes the identifier for the marker. The identifier \fImarkerId\fR
-can not already be used by another marker. If this option
-isn't specified, the marker's name is uniquely generated.
-.TP
-\fB\-under \fIboolean\fR
-Indicates whether the marker is drawn below/above data
-elements. If \fIboolean\fR is true, the marker is be drawn
-underneath the data element symbols and lines. Otherwise, the marker is
-drawn on top of the element. The default is \f(CW0\fR.
-.TP
-\fB\-xoffset \fIpixels\fR
-Specifies a screen distance to offset the marker horizontally.
-\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR.
-The default is \f(CW0\fR.
-.TP
-\fB\-yoffset \fIpixels\fR
-Specifies a screen distance to offset the markers vertically.
-\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR.
-The default is \f(CW0\fR.
-.PP
-Marker configuration options may also be set by the \fBoption\fR command.
-The resource class is either \f(CWBitmapMarker\fR, \f(CWImageMarker\fR,
-\f(CWLineMarker\fR, \f(CWPolygonMarker\fR, \f(CWTextMarker\fR, or \f(CWWindowMarker\fR,
-depending on the type of marker. The resource name is the name of the
-marker.
-.CS
-option add *Graph.TextMarker.Foreground white
-option add *Graph.BitmapMarker.Foreground white
-option add *Graph.m1.Background blue
-.CE
-.RE
-.TP
-\fIpathName \fBmarker create \fItype\fR ?\fIoption value\fR?...
-Creates a marker of the selected type. \fIType\fR may be either
-\f(CWtext\fR, \f(CWline\fR, \f(CWbitmap\fR, \f(CWimage\fR, \f(CWpolygon\fR, or
-\f(CWwindow\fR. This command returns the marker identifier,
-used as the \fImarkerId\fR argument in the other marker-related
-commands. If the \fB\-name\fR option is used, this overrides the
-normal marker identifier. If the name provided is already used for
-another marker, the new marker will replace the old.
-.TP
-\fIpathName \fBmarker delete\fR ?\fIname\fR?...
-Removes one of more markers. The graph will automatically be redrawn
-without the marker.\fR.
-.TP
-\fIpathName \fBmarker exists \fImarkerId\fR
-Returns \f(CW1\fR if the marker \fImarkerId\fR exists and \f(CW0\fR
-otherwise.
-.TP
-\fIpathName \fBmarker names\fR ?\fIpattern\fR?
-Returns the names of all the markers that currently exist. If
-\fIpattern\fR is supplied, only those markers whose names match it
-will be returned.
-.TP
-\fIpathName \fBmarker type \fImarkerId\fR
-Returns the type of the marker given by \fImarkerId\fR, such as
-\f(CWline\fR or \f(CWtext\fR. If \fImarkerId\fR is not a valid a marker
-identifier, \f(CW""\fR is returned.
-.SS "BITMAP MARKERS"
-A bitmap marker displays a bitmap. The size of the
-bitmap is controlled by the number of coordinates specified. If two
-coordinates, they specify the position of the top-left corner of the
-bitmap. The bitmap retains its normal width and height. If four
-coordinates, the first and second pairs of coordinates represent the
-corners of the bitmap. The bitmap will be stretched or reduced as
-necessary to fit into the bounding rectangle.
-.PP
-Bitmap markers are created with the marker's \fBcreate\fR operation in
-the form:
-.DS
-\fIpathName \fBmarker create bitmap \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR pairs, each
-sets a configuration options for the marker. These
-same \fIoption\fR\-\fIvalue\fR pairs may be used with the marker's
-\fBconfigure\fR operation.
-.PP
-The following options are specific to bitmap markers:
-.TP
-\fB\-background \fIcolor\fR
-Same as the \fB\-fill\fR option.
-.TP
-\fB\-bitmap \fIbitmap\fR
-Specifies the bitmap to be displayed. If \fIbitmap\fR is \f(CW""\fR,
-the marker will not be displayed. The default is \f(CW""\fR.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the background color of the bitmap. If \fIcolor\fR is the empty
-string, no background will be transparent. The default background color is
-\f(CW""\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Same as the \fB\-outline\fR option.
-.TP
-\fB\-mask \fImask\fR
-Specifies a mask for the bitmap to be displayed. This mask is a bitmap
-itself, denoting the pixels that are transparent. If \fImask\fR is
-\f(CW""\fR, all pixels of the bitmap will be drawn. The default is
-\f(CW""\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the foreground color of the bitmap. The default value is \f(CWblack\fR.
-.TP
-\fB\-rotate \fItheta\fR
-Sets the rotation of the bitmap. \fITheta\fR is a real number
-representing the angle of rotation in degrees. The marker is first
-rotated and then placed according to its anchor position. The default
-rotation is \f(CW0.0\fR.
-.SS "IMAGE MARKERS"
-A image marker displays an image. Image markers are
-created with the marker's \fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create image \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be
-used with the marker's \fBconfigure\fR operation.
-.PP
-The following options are specific to image markers:
-.TP
-\fB\-anchor \fIanchor\fR
-\fIAnchor\fR tells how to position the image relative to the
-positioning point for the image. For example, if \fIanchor\fR
-is \f(CWcenter\fR then the image is centered on the point; if
-\fIanchor\fR is \f(CWn\fR then the image will be drawn such that
-the top center point of the rectangular region occupied by the
-image will be at the positioning point.
-This option defaults to \f(CWcenter\fR.
-.TP
-\fB\-image \fIimage\fR
-Specifies the image to be drawn.
-If \fIimage\fR is \f(CW""\fR, the marker will not be
-drawn. The default is \f(CW""\fR.
-.SS "LINE MARKERS"
-A line marker displays one or more connected line segments.
-Line markers are created with marker's \fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create line \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR-\fIvalue\fR pairs may be
-used with the marker's \fBconfigure\fR operation.
-.PP
-The following options are specific to line markers:
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the line. \fIDashList\fR is a list of up to 11
-numbers that alternately represent the lengths of the dashes and gaps
-on the line. Each number must be between 1 and 255. If
-\fIdashList\fR is \f(CW""\fR, the marker line will be solid.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the background color of the line. This color is used with
-striped lines (see the \fB\-fdashes\fR option). If \fIcolor\fR is
-the empty string, no background color is drawn (the line will be
-dashed, not striped). The default background color is \f(CW""\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the lines.
-The default width is \f(CW0\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the foreground color of the line. The default value is \f(CWblack\fR.
-.TP
-\fB\-stipple \fIbitmap\fR
-Specifies a stipple pattern used to draw the line, rather than
-a solid line.
-\fIBitmap\fR specifies a bitmap to use as the stipple
-pattern. If \fIbitmap\fR is \f(CW""\fR, then the
-line is drawn in a solid fashion. The default is \f(CW""\fR.
-.SS "POLYGON MARKERS"
-A polygon marker displays a closed region described as two or more
-connected line segments. It is assumed the first and
-last points are connected. Polygon markers are created using the
-marker \fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create polygon \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be
-used with the \fBmarker configure\fR command to change the marker's
-configuration.
-The following options are supported for polygon markers:
-.TP
-\fB\-dashes \fIdashList\fR
-Sets the dash style of the outline of the polygon. \fIDashList\fR is a
-list of up to 11 numbers that alternately represent the lengths of
-the dashes and gaps on the outline. Each number must be between 1 and
-255. If \fIdashList\fR is \f(CW""\fR, the outline will be a solid line.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the fill color of the polygon. If \fIcolor\fR is \f(CW""\fR, then
-the interior of the polygon is transparent.
-The default is \f(CWwhite\fR.
-.TP
-\fB\-linewidth \fIpixels\fR
-Sets the width of the outline of the polygon. If \fIpixels\fR is zero,
-no outline is drawn. The default is \f(CW0\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the color of the outline of the polygon. If the polygon is
-stippled (see the \fB\-stipple\fR option), then this represents the
-foreground color of the stipple. The default is \f(CWblack\fR.
-.TP
-\fB\-stipple \fIbitmap\fR
-Specifies that the polygon should be drawn with a stippled pattern
-rather than a solid color. \fIBitmap\fR specifies a bitmap to use as
-the stipple pattern. If \fIbitmap\fR is \f(CW""\fR, then the polygon is
-filled with a solid color (if the \fB\-fill\fR option is set). The
-default is \f(CW""\fR.
-.SS "TEXT MARKERS"
-A text marker displays a string of characters on one or more lines of
-text. Embedded newlines cause line breaks. They may be used to
-annotate regions of the graph. Text markers are created with the
-\fBcreate\fR operation in the form:
-.DS
-\fIpathName \fBmarker create text \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR pairs,
-each sets a configuration option for the text marker.
-These same \fIoption\fR\-\fIvalue\fR pairs may be used with the
-marker's \fBconfigure\fR operation.
-.PP
-The following options are specific to text markers:
-.TP
-\fB\-anchor \fIanchor\fR
-\fIAnchor\fR tells how to position the text relative to the
-positioning point for the text. For example, if \fIanchor\fR is
-\f(CWcenter\fR then the text is centered on the point; if
-\fIanchor\fR is \f(CWn\fR then the text will be drawn such that the
-top center point of the rectangular region occupied by the text will
-be at the positioning point. This default is \f(CWcenter\fR.
-.TP
-\fB\-background \fIcolor\fR
-Same as the \fB\-fill\fR option.
-.TP
-\fB\-font \fIfontName\fR
-Specifies the font of the text. The default is
-\f(CW*-Helvetica-Bold-R-Normal-*-120-*\fR.
-.TP
-\fB\-fill \fIcolor\fR
-Sets the background color of the text. If \fIcolor\fR is the empty
-string, no background will be transparent. The default background color is
-\f(CW""\fR.
-.TP
-\fB\-foreground \fIcolor\fR
-Same as the \fB\-outline\fR option.
-.TP
-\fB\-justify \fIjustify\fR
-Specifies how the text should be justified. This matters only when
-the marker contains more than one line of text. \fIJustify\fR must be
-\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is
-\f(CWcenter\fR.
-.TP
-\fB\-outline \fIcolor\fR
-Sets the color of the text. The default value is \f(CWblack\fR.
-.TP
-\fB\-padx \fIpad\fR
-Sets the padding to the left and right exteriors of the text.
-\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR
-has two elements, the left side of the text is padded by the first
-distance and the right side by the second. If \fIpad\fR has just one
-distance, both the left and right sides are padded evenly. The
-default is \f(CW4\fR.
-.TP
-\fB\-pady \fIpad\fR
-Sets the padding above and below the text. \fIPad\fR can be a list of
-one or two screen distances. If \fIpad\fR has two elements, the area above the
-text is padded by the first distance and the area below by the second.
-If \fIpad\fR is just one distance, both the top and bottom areas
-are padded evenly. The default is \f(CW4\fR.
-.TP
-\fB\-rotate \fItheta\fR
-Specifies the number of degrees to rotate the text. \fITheta\fR is a
-real number representing the angle of rotation. The marker is first
-rotated along its center and is then drawn according to its anchor
-position. The default is \f(CW0.0\fR.
-.TP
-\fB\-text \fItext\fR
-Specifies the text of the marker. The exact way the text is
-displayed may be affected by other options such as \fB\-anchor\fR or
-\fB\-rotate\fR.
-.SS "WINDOW MARKERS"
-A window marker displays a widget at a given position.
-Window markers are created with the marker's \fBcreate\fR operation in
-the form:
-.DS
-\fIpathName \fBmarker create window \fR?\fIoption value\fR?...
-.DE
-There may be many \fIoption\fR-\fIvalue\fR
-pairs, each sets a configuration option
-for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be
-used with the marker's \fBconfigure\fR command.
-.PP
-The following options are specific to window markers:
-.TP
-\fB\-anchor \fIanchor\fR
-\fIAnchor\fR tells how to position the widget relative to the
-positioning point for the widget. For example, if \fIanchor\fR is
-\f(CWcenter\fR then the widget is centered on the point; if \fIanchor\fR
-is \f(CWn\fR then the widget will be displayed such that the top center
-point of the rectangular region occupied by the widget will be at the
-positioning point. This option defaults to \f(CWcenter\fR.
-.TP
-\fB\-height \fIpixels\fR
-Specifies the height to assign to the marker's window. If this option
-isn't specified, or if it is specified as \f(CW""\fR, then the window is
-given whatever height the widget requests internally.
-.TP
-\fB\-width \fIpixels\fR
-Specifies the width to assign to the marker's window. If this option
-isn't specified, or if it is specified as \f(CW""\fR, then the window is
-given whatever width the widget requests internally.
-.TP
-\fB\-window \fIpathName\fR
-Specifies the widget to be managed by the graph. \fIPathName\fR must
-be a child of the \fBgraph\fR widget.
-.SH "GRAPH COMPONENT BINDINGS"
-Specific graph components, such as elements, markers and legend
-entries, can have a command trigger when event occurs in them, much
-like canvas items in Tk's canvas widget. Not all event sequences are
-valid. The only binding events that may be specified are those
-related to the mouse and keyboard (such as \fBEnter\fR, \fBLeave\fR,
-\fBButtonPress\fR, \fBMotion\fR, and \fBKeyPress\fR).
-.PP
-Only one element or marker can be picked during an event. This means,
-that if the mouse is directly over both an element and a marker, only
-the uppermost component is selected. This isn't true for legend entries.
-Both a legend entry and an element (or marker) binding commands
-will be invoked if both items are picked.
-.PP
-It is possible for multiple bindings to match a particular event.
-This could occur, for example, if one binding is associated with the
-element name and another is associated with one of the element's tags
-(see the \fB\-bindtags\fR option). When this occurs, all of the
-matching bindings are invoked. A binding associated with the element
-name is invoked first, followed by one binding for each of the element's
-bindtags. If there are multiple matching bindings for a single tag,
-then only the most specific binding is invoked. A continue command
-in a binding script terminates that script, and a break command
-terminates that script and skips any remaining scripts for the event,
-just as for the bind command.
-.PP
-The \fB\-bindtags\fR option for these components controls addition
-tag names which can be matched. Implicitly elements and markers
-always have tags matching their names. Setting the value of
-the \fB\-bindtags\fR option doesn't change this.
-.SH "C LANGUAGE API"
-You can manipulate data elements from the C language. There
-may be situations where it is too expensive to translate the data
-values from ASCII strings. Or you might want to read data in a
-special file format.
-.PP
-Data can manipulated from the C language using BLT vectors.
-You specify the X-Y data coordinates of an element as vectors and
-manipulate the vector from C. The graph will be redrawn automatically
-after the vectors are updated.
-.PP
-From Tcl, create the vectors and configure the element to use them.
-.CS
-vector X Y
-\&.g element configure line1 -xdata X -ydata Y
-.CE
-To set data points from C, you pass the values as arrays of doubles
-using the \fBBlt_ResetVector\fR call. The vector is reset with the
-new data and at the next idle point (when Tk re-enters its event
-loop), the graph will be redrawn automatically.
-.CS
-#include <tcl.h>
-#include <blt.h>
-
-register int i;
-Blt_Vector *xVec, *yVec;
-double x[50], y[50];
-
-/* Get the BLT vectors "X" and "Y" (created above from Tcl) */
-if ((Blt_GetVector(interp, "X", &xVec) != TCL_OK) ||
- (Blt_GetVector(interp, "Y", &yVec) != TCL_OK)) {
- return TCL_ERROR;
-}
-
-for (i = 0; i < 50; i++) {
- x[i] = i * 0.02;
- y[i] = sin(x[i]);
-}
-
-/* Put the data into BLT vectors */
-if ((Blt_ResetVector(xVec, x, 50, 50, TCL_VOLATILE) != TCL_OK) ||
- (Blt_ResetVector(yVec, y, 50, 50, TCL_VOLATILE) != TCL_OK)) {
- return TCL_ERROR;
-}
-.CE
-See the \fBvector\fR manual page for more details.
-.SH SPEED TIPS
-There may be cases where the graph needs to be drawn and updated as
-quickly as possible. If drawing speed becomes a big
-problem, here are a few tips to speed up displays.
-.TP 2
-\(bu
-Try to minimize the number of data points. The more data points
-the looked at, the more work the graph must do.
-.TP 2
-\(bu
-If your data is generated as floating point values, the time required
-to convert the data values to and from ASCII strings can be
-significant, especially when there any many data points. You can
-avoid the redundant string-to-decimal conversions using the C API to
-BLT vectors.
-.TP 2
-\(bu
-Data elements without symbols are drawn faster than with symbols.
-Set the data element's \fB\-symbol\fR option to \f(CWnone\fR. If you need to
-draw symbols, try using the simple symbols such as \f(CWsplus\fR and
-\f(CWscross\fR.
-.TP 2
-\(bu
-Don't stipple or dash the element. Solid lines are much faster.
-.TP 2
-\(bu
-If you update data elements frequently, try turning off the
-widget's \fB\-bufferelements\fR option. When the graph is first
-displayed, it draws data elements into an internal pixmap. The pixmap
-acts as a cache, so that when the graph needs to be redrawn again, and
-the data elements or coordinate axes haven't changed, the pixmap is
-simply copied to the screen. This is especially useful when you are
-using markers to highlight points and regions on the graph. But if
-the graph is updated frequently, changing either the element data or
-coordinate axes, the buffering becomes redundant.
-.SH LIMITATIONS
-Auto-scale routines do not use requested min/max limits as boundaries
-when the axis is logarithmically scaled.
-.PP
-The PostScript output generated for polygons with more than 1500
-points may exceed the limits of some printers (See PostScript Language
-Reference Manual, page 568). The work-around is to break the polygon
-into separate pieces.
-.SH KEYWORDS
-graph, widget
diff --git a/tkblt/doc/vector.html b/tkblt/doc/vector.html
deleted file mode 100644
index ef097c6..0000000
--- a/tkblt/doc/vector.html
+++ /dev/null
@@ -1,704 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>blt::vector</B> <B>create</B> <I>vecName</I> ?<I>vecName</I>...? ?<I>switches</I>?
-
- <B>blt::vector</B> <B>destroy</B> <I>vecName</I> ?<I>vecName</I>...?
-
- <B>blt::vector</B> <B>expr</B> <I>expression</I>
-
- <B>blt::vector</B> <B>names</B> ?<I>pattern</I>...?
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>vector</B> command creates an array of floating point values. The vec-
- tor's components can be manipulated in three ways: through a Tcl array
- variable, a Tcl command, or the C API.
-
-
-</PRE>
-<H2>INTRODUCTION</H2><PRE>
- A vector is an ordered set of real numbers. The components of a vector
- are indexed by integers.
-
- Vectors are common data structures for many applications. For example,
- a graph may use two vectors to represent the X-Y coordinates of the
- data plotted. The graph will automatically be redrawn when the vectors
- are updated or changed. By using vectors, you can separate data analy-
- sis from the graph widget. This makes it easier, for example, to add
- data transformations, such as splines. It's possible to plot the same
- data to in multiple graphs, where each graph presents a different view
- or scale of the data.
-
- You could try to use Tcl's associative arrays as vectors. Tcl arrays
- are easy to use. You can access individual elements randomly by speci-
- fying the index, or the set the entire array by providing a list of
- index and value pairs for each element. The disadvantages of associa-
- tive arrays as vectors lie in the fact they are implemented as hash
- tables.
-
- <B>o</B> There's no implied ordering to the associative arrays. If you used
- vectors for plotting, you would want to insure the second component
- comes after the first, an so on. This isn't possible since arrays
- are actually hash tables. For example, you can't get a range of val-
- ues between two indices. Nor can you sort an array.
-
- <B>o</B> Arrays consume lots of memory when the number of elements becomes
- large (tens of thousands). This is because each element's index and
- value are stored as strings in the hash table.
-
- <B>o</B> The C programming interface is unwieldy. Normally with vectors, you
- would like to view the Tcl array as you do a C array, as an array of
- floats or doubles. But with hash tables, you must convert both the
- index and value to and from decimal strings, just to access an ele-
- ment in the array. This makes it cumbersome to perform operations on
- the array as a whole.
-
- The <B>vector</B> command tries to overcome these disadvantages while still
- 0.0. In addition, both a Tcl command and array variable, both named y,
- are created. You can use either the command or variable to query or
- modify components of the vector. # Set the first value. set <B>y(0)</B> 9.25
- puts "y has [y length] components" The array y can be used to read or
- set individual components of the vector. Vector components are indexed
- from zero. The array index must be a number less than the number of
- components. For example, it's an error if you try to set the 51st ele-
- ment of y. # This is an error. The vector only has 50 components. set
- <B>y(50)</B> 0.02 You can also specify a range of indices using a colon (:) to
- separate the first and last indices of the range. # Set the first six
- components of y set y(0:5) 25.2 If you don't include an index, then it
- will default to the first and/or last component of the vector. # Print
- out all the components of y puts "y = $y(:)" There are special non-
- numeric indices. The index end, specifies the last component of the
- vector. It's an error to use this index if the vector is empty (length
- is zero). The index ++end can be used to extend the vector by one com-
- ponent and initialize it to a specific value. You can't read from the
- array using this index, though. # Extend the vector by one component.
- set y(++end) 0.02 The other special indices are min and max. They
- return the current smallest and largest components of the vector. #
- Print the bounds of the vector puts "min=$y(min) max=$y(max)" To delete
- components from a vector, simply unset the corresponding array element.
- In the following example, the first component of y is deleted. All the
- remaining components of y will be moved down by one index as the length
- of the vector is reduced by one. # Delete the first component unset
- <B>y(0)</B> puts "new first element is $<B>y(0)</B>" The vector's Tcl command can
- also be used to query or set the vector. # Create and set the compo-
- nents of a new vector blt::vector create x x set { 0.02 0.04 0.06 0.08
- 0.10 0.12 0.14 0.16 0.18 0.20 } Here we've created a vector x without a
- initial length specification. In this case, the length is zero. The
- <B>set</B> operation resets the vector, extending it and setting values for
- each new component.
-
- There are several operations for vectors. The <B>range</B> operation lists
- the components of a vector between two indices. # List the components
- puts "x = [x range 0 end]" You can search for a particular value using
- the <B>search</B> operation. It returns a list of indices of the components
- with the same value. If no component has the same value, it returns
- "". # Find the index of the biggest component set indices [x search
- $x(max)] Other operations copy, append, or sort vectors. You can
- append vectors or new values onto an existing vector with the <B>append</B>
- operation. # Append assorted vectors and values to x x append x2 x3 {
- 2.3 4.5 } x4 The <B>sort</B> operation sorts the vector. If any additional
- vectors are specified, they are rearranged in the same order as the
- vector. For example, you could use it to sort data points represented
- by x and y vectors. # Sort the data points x sort y The vector x is
- sorted while the components of y are rearranged so that the original
- x,y coordinate pairs are retained.
-
- The <B>expr</B> operation lets you perform arithmetic on vectors. The result
- is stored in the vector. # Add the two vectors and a scalar x expr { x
- + y } x expr { x * 2 } When a vector is modified, resized, or deleted,
- Vectors are created using the <B>vector</B> <B>create</B> operation. Th <B>create</B> oper-
- ation can be invoked in one of three forms:
-
- <B>blt::vector</B> <B>create</B> <I>vecName</I>
- This creates a new vector <I>vecName</I> which initially has no compo-
- nents.
-
- <B>blt::vector</B> <B>create</B> <I>vecName</I>(<I>size</I>)
- This second form creates a new vector which will contain <I>size</I>
- number of components. The components will be indexed starting
- from zero (0). The default value for the components is 0.0.
-
- <B>blt::vector</B> <B>create</B> <I>vecName</I>(<I>first</I>:<I>last</I>)
- The last form creates a new vector of indexed <I>first</I> through
- <I>last</I>. <I>First</I> and <I>last</I> can be any integer value so long as <I>first</I>
- is less than <I>last</I>.
-
- Vector names must start with a letter and consist of letters, digits,
- or underscores. # Error: must start with letter blt::vector create
- 1abc You can automatically generate vector names using the "#auto" vec-
- tor name. The <B>create</B> operation will generate a unique vector name.
- set vec [blt::vector create #auto] puts "$vec has [$vec length] compo-
- nents"
-
- <B>VECTOR</B> <B>INDICES</B>
- Vectors are indexed by integers. You can access the individual vector
- components via its array variable or Tcl command. The string repre-
- senting the index can be an integer, a numeric expression, a range, or
- a special keyword.
-
- The index must lie within the current range of the vector, otherwise an
- an error message is returned. Normally the indices of a vector are
- start from 0. But you can use the <B>offset</B> operation to change a vec-
- tor's indices on-the-fly. puts $<B>vecName(0)</B> vecName offset -5 puts
- $vecName(-5) You can also use numeric expressions as indices. The
- result of the expression must be an integer value. set n 21 set vec-
- Name($n+3) 50.2 The following special non-numeric indices are avail-
- able: min, max, end, and ++end. puts "min = $vecName($min)" set vec-
- Name(end) -1.2 The indices min and max will return the minimum and max-
- imum values of the vector. The index end returns the value of the last
- component in the vector. The index ++end is used to append new value
- onto the vector. It automatically extends the vector by one component
- and sets its value. # Append an new component to the end set vec-
- Name(++end) 3.2 A range of indices can be indicated by a colon (:). #
- Set the first six components to 1.0 set vecName(0:5) 1.0 If no index is
- supplied the first or last component is assumed. # Print the values of
- all the components puts $vecName(:)
-
-
-</PRE>
-<H2>VECTOR OPERATIONS</H2><PRE>
- <B>blt::vector</B> <B>create</B> <I>vecName</I>?(<I>size</I>)?... ?<I>switches</I>?
- The <B>create</B> operation creates a new vector <I>vecName</I>. Both a Tcl
- command and array variable <I>vecName</I> are also created. The name
- then no variable will be mapped. You can always map a
- variable back to the vector using the vector's <B>variable</B>
- operation.
-
- <B>-command</B> <I>cmdName</I>
- Maps a Tcl command to the vector. The vector can be
- accessed using <I>cmdName</I> and one of the vector instance
- operations. A Tcl command by that name cannot already
- exist. If <I>cmdName</I> is the empty string, no command map-
- ping will be made.
-
- <B>-watchunset</B> <I>boolean</I>
- Indicates that the vector should automatically delete
- itself if the variable associated with the vector is
- unset. By default, the vector will not be deleted. This
- is different from previous releases. Set <I>boolean</I> to
- "true" to get the old behavior.
-
- <B>blt::vector</B> <B>destroy</B> <I>vecName</I> ?<I>vecName...</I>?
- Deletes one or more vectors. Both the Tcl command and array
- variable are removed also.
-
- <B>blt::vector</B> <B>expr</B> <I>expression</I>
- All binary operators take vectors as operands (remember that
- numbers are treated as one-component vectors). The exact action
- of binary operators depends upon the length of the second oper-
- and. If the second operand has only one component, then each
- element of the first vector operand is computed by that value.
- For example, the expression "x * 2" multiples all elements of
- the vector x by 2. If the second operand has more than one com-
- ponent, both operands must be the same length. Each pair of
- corresponding elements are computed. So "x + y" adds the the
- first components of x and y together, the second, and so on.
-
- The valid operators are listed below, grouped in decreasing
- order of precedence:
-
- <B>-</B> <B>!</B> Unary minus and logical NOT. The unary
- minus flips the sign of each component in
- the vector. The logical not operator
- returns a vector of whose values are 0.0 or
- 1.0. For each non-zero component 1.0 is
- returned, 0.0 otherwise.
-
- <B>^</B> Exponentiation.
-
- <B>*</B> <B>/</B> <B>%</B> Multiply, divide, remainder.
-
- <B>+</B> <B>-</B> Add and subtract.
-
- <B>&lt;&lt;</B> <B>&gt;&gt;</B> Left and right shift. Circularly shifts the
- values of the vector (not implemented yet).
-
- <B>&amp;&amp;</B> Logical AND. Produces a 1 result if both
- operands are non-zero, 0 otherwise.
-
- <B>||</B> Logical OR. Produces a 0 result if both op-
- erands are zero, 1 otherwise.
-
- <I>x</I><B>?</B><I>y</I><B>:</B><I>z</I> If-then-else, as in C. (Not implemented
- yet).
-
- See the C manual for more details on the results produced by
- each operator. All of the binary operators group left-to-right
- within the same precedence level.
-
- Several mathematical functions are supported for vectors. Each
- of the following functions invokes the math library function of
- the same name; see the manual entries for the library functions
- for details on what they do. The operation is applied to all
- elements of the vector returning the results.
- <B>acos</B> <B>cos</B> <B>hypot</B> <B>sinh</B> <B>asin</B> <B>cosh</B> <B>log</B> <B>sqrt</B>
- <B>atan</B> <B>exp</B> <B>log10</B> <B>tan</B> <B>ceil</B> <B>floor</B> <B>sin</B> <B>tanh</B>
-
- Additional functions are:
-
- <B>abs</B> Returns the absolute value of each component.
-
- <B>random</B> Returns a vector of non-negative values uniformly dis-
- tributed between [0.0, 1.0) using <I>drand48</I>. The seed
- comes from the internal clock of the machine or may be
- set manual with the srandom function.
-
- <B>round</B> Rounds each component of the vector.
-
- <B>srandom</B> Initializes the random number generator using <I>srand48</I>.
- The high order 32-bits are set using the integral por-
- tion of the first vector component. All other compo-
- nents are ignored. The low order 16-bits are set to
- an arbitrary value.
-
- The following functions return a single value.
-
- <B>adev</B> Returns the average deviation (defined as the sum of
- the absolute values of the differences between compo-
- nent and the mean, divided by the length of the vec-
- tor).
-
- <B>kurtosis</B> Returns the degree of peakedness (fourth moment) of
- the vector.
-
- <B>length</B> Returns the number of components in the vector.
-
- <B>max</B> Returns the vector's maximum value.
-
-
- <B>skew</B> Returns the skewness (or third moment) of the vector.
- This characterizes the degree of asymmetry of the vec-
- tor about the mean.
-
- <B>sum</B> Returns the sum of the components.
-
- <B>var</B> Returns the variance of the vector. The sum of the
- squared differences between each component and the
- mean is computed. The variance is the sum divided by
- the length of the vector minus 1.
-
- The last set returns a vector of the same length as the argu-
- ment.
-
- <B>norm</B> Scales the values of the vector to lie in the range
- [0.0..1.0].
-
- <B>sort</B> Returns the vector components sorted in ascending
- order.
-
- <B>vector</B> <B>names</B> ?<I>pattern</I>?
-
-
-</PRE>
-<H2>INSTANCE OPERATIONS</H2><PRE>
- You can also use the vector's Tcl command to query or modify it. The
- general form is <I>vecName</I> <I>operation</I> ?<I>arg</I>?... Both <I>operation</I> and its
- arguments determine the exact behavior of the command. The operations
- available for vectors are listed below.
-
- <I>vecName</I> <B>append</B> <I>item</I> ?<I>item</I>?...
- Appends the component values from <I>item</I> to <I>vecName</I>. <I>Item</I> can be
- either the name of a vector or a list of numeric values.
-
- <I>vecName</I> <B>binread</B> <I>channel</I> ?<I>length</I>? ?<I>switches</I>?
- Reads binary values from a Tcl channel. Values are either
- appended to the end of the vector or placed at a given index
- (using the <B>-at</B> option), overwriting existing values. Data is
- read until EOF is found on the channel or a specified number of
- values <I>length</I> are read (note that this is not necessarily the
- same as the number of bytes). The following switches are sup-
- ported:
-
- <B>-swap</B> Swap bytes and words. The default endian is the host
- machine.
-
- <B>-at</B> <I>index</I>
- New values will start at vector index <I>index</I>. This will
- overwrite any current values.
-
- <B>-format</B> <I>format</I>
- Specifies the format of the data. <I>Format</I> can be one of
- the following: "i1", "i2", "i4", "i8", "u1, "u2", "u4",
-
- This is useful when the vector is large.
-
- <I>vecName</I> <B>delete</B> <I>index</I> ?<I>index</I>?...
- Deletes the <I>index</I>th component from the vector <I>vecName</I>. <I>Index</I> is
- the index of the element to be deleted. This is the same as
- unsetting the array variable element <I>index</I>. The vector is com-
- pacted after all the indices have been deleted.
-
- <I>vecName</I> <B>dup</B> <I>destName</I>
- Copies <I>vecName</I> to <I>destName</I>. <I>DestName</I> is the name of a destina-
- tion vector. If a vector <I>destName</I> already exists, it is over-
- written with the components of <I>vecName</I>. Otherwise a new vector
- is created.
-
- <I>vecName</I> <B>expr</B> <I>expression</I>
- Computes the expression and resets the values of the vector
- accordingly. Both scalar and vector math operations are
- allowed. All values in expressions are either real numbers or
- names of vectors. All numbers are treated as one component vec-
- tors.
-
- <I>vecName</I> <B>length</B> ?<I>newSize</I>?
- Queries or resets the number of components in <I>vecName</I>. <I>NewSize</I>
- is a number specifying the new size of the vector. If <I>newSize</I>
- is smaller than the current size of <I>vecName</I>, <I>vecName</I> is trun-
- cated. If <I>newSize</I> is greater, the vector is extended and the
- new components are initialized to 0.0. If no <I>newSize</I> argument
- is present, the current length of the vector is returned.
-
- <I>vecName</I> <B>merge</B> <I>srcName</I> ?<I>srcName</I>?...
- Merges the named vectors into a single vector. The resulting
- vector is formed by merging the components of each source vector
- one index at a time.
-
- <I>vecName</I> <B>notify</B> <I>keyword</I>
- Controls how vector clients are notified of changes to the vec-
- tor. The exact behavior is determined by <I>keyword</I>.
-
- always Indicates that clients are to be notified immediately
- whenever the vector is updated.
-
- never Indicates that no clients are to be notified.
-
- whenidle
- Indicates that clients are to be notified at the next
- idle point whenever the vector is updated.
-
- now If any client notifications is currently pending, they
- are notified immediately.
-
- cancel Cancels pending notifications of clients using the vec-
- tor.
-
- <I>density</I> number of new components, whose values are evenly dis-
- tributed between the original components values. This is useful
- for generating abscissas to be interpolated along a spline.
-
- <I>vecName</I> <B>range</B> <I>firstIndex</I> ?<I>lastIndex</I>?...
- Returns a list of numeric values representing the vector compo-
- nents between two indices. Both <I>firstIndex</I> and <I>lastIndex</I> are
- indices representing the range of components to be returned. If
- <I>lastIndex</I> is less than <I>firstIndex</I>, the components are listed in
- reverse order.
-
- <I>vecName</I> <B>search</B> <I>value</I> ?<I>value</I>?
- Searches for a value or range of values among the components of
- <I>vecName</I>. If one <I>value</I> argument is given, a list of indices of
- the components which equal <I>value</I> is returned. If a second <I>value</I>
- is also provided, then the indices of all components which lie
- within the range of the two values are returned. If no compo-
- nents are found, then "" is returned.
-
- <I>vecName</I> <B>set</B> <I>item</I>
- Resets the components of the vector to <I>item</I>. <I>Item</I> can be either
- a list of numeric expressions or another vector.
-
- <I>vecName</I> <B>seq</B> <I>start</I> ?<I>finish</I>? ?<I>step</I>?
- Generates a sequence of values starting with the value <I>start</I>.
- <I>Finish</I> indicates the terminating value of the sequence. The
- vector is automatically resized to contain just the sequence.
- If three arguments are present, <I>step</I> designates the interval.
-
- With only two arguments (no <I>finish</I> argument), the sequence will
- continue until the vector is filled. With one argument, the
- interval defaults to 1.0.
-
- <I>vecName</I> <B>sort</B> ?<B>-reverse</B>? ?<I>argName</I>?...
- Sorts the vector <I>vecName</I> in increasing order. If the <B>-reverse</B>
- flag is present, the vector is sorted in decreasing order. If
- other arguments <I>argName</I> are present, they are the names of vec-
- tors which will be rearranged in the same manner as <I>vecName</I>.
- Each vector must be the same length as <I>vecName</I>. You could use
- this to sort the x vector of a graph, while still retaining the
- same x,y coordinate pairs in a y vector.
-
- <I>vecName</I> <B>variable</B> <I>varName</I>
- Maps a Tcl variable to the vector, creating another means for
- accessing the vector. The variable <I>varName</I> can't already exist.
- This overrides any current variable mapping the vector may have.
-
-
-</PRE>
-<H2>C LANGUAGE API</H2><PRE>
- You can create, modify, and destroy vectors from C code, using library
- routines. You need to include the header file blt.h. It contains the
- definition of the structure <B>Blt_Vector</B>, which represents the vector.
- It appears below. typedef struct {
- <B>Blt_CreateVector</B>
-
- Synopsis: int <B>Blt_CreateVector</B> (<I>interp</I>, <I>vecName</I>, <I>length</I>, <I>vecPtrPtr</I>)
- Tcl_Interp *<I>interp</I>; char *<I>vecName</I>; int <I>length</I>; Blt_Vec-
- tor **<I>vecPtrPtr</I>;
-
- Description:
- Creates a new vector <I>vecName</I> with a length of <I>length</I>.
- <B>Blt_CreateVector</B> creates both a new Tcl command and array
- variable <I>vecName</I>. Neither a command nor variable named
- <I>vecName</I> can already exist. A pointer to the vector is
- placed into <I>vecPtrPtr</I>.
-
- Results: Returns TCL_OK if the vector is successfully created. If
- <I>length</I> is negative, a Tcl variable or command <I>vecName</I>
- already exists, or memory cannot be allocated for the vec-
- tor, then TCL_ERROR is returned and <I>interp-&gt;result</I> will
- contain an error message.
-
-
- <B>Blt_DeleteVectorByName</B>
-
- Synopsis: int <B>Blt_DeleteVectorByName</B> (<I>interp</I>, <I>vecName</I>)
- Tcl_Interp *<I>interp</I>; char *<I>vecName</I>;
-
- Description:
- Removes the vector <I>vecName</I>. <I>VecName</I> is the name of a vec-
- tor which must already exist. Both the Tcl command and
- array variable <I>vecName</I> are destroyed. All clients of the
- vector will be notified immediately that the vector has
- been destroyed.
-
- Results: Returns TCL_OK if the vector is successfully deleted. If
- <I>vecName</I> is not the name a vector, then TCL_ERROR is
- returned and <I>interp-&gt;result</I> will contain an error message.
-
-
- <B>Blt_DeleteVector</B>
-
- Synopsis: int <B>Blt_DeleteVector</B> (<I>vecPtr</I>)
- Blt_Vector *<I>vecPtr</I>;
-
- Description:
- Removes the vector pointed to by <I>vecPtr</I>. <I>VecPtr</I> is a
- pointer to a vector, typically set by <B>Blt_GetVector</B> or
- <B>Blt_CreateVector</B>. Both the Tcl command and array variable
- of the vector are destroyed. All clients of the vector
- will be notified immediately that the vector has been
- destroyed.
-
- Results: Returns TCL_OK if the vector is successfully deleted. If
- <I>vecName</I> is not the name a vector, then TCL_ERROR is
-
- Results: Returns TCL_OK if the vector is successfully retrieved. If
- <I>vecName</I> is not the name of a vector, then TCL_ERROR is
- returned and <I>interp-&gt;result</I> will contain an error message.
-
-
- <B>Blt_ResetVector</B>
-
-
- Synopsis: int <B>Blt_ResetVector</B> (<I>vecPtr</I>, <I>dataArr</I>, <I>numValues</I>,
- <I>arraySize</I>, <I>freeProc</I>)
- Blt_Vector *<I>vecPtr</I>; double *<I>dataArr</I>; int *<I>numValues</I>; int
- *<I>arraySize</I>; Tcl_FreeProc *<I>freeProc</I>;
-
- Description:
- Resets the components of the vector pointed to by <I>vecPtr</I>.
- Calling <B>Blt_ResetVector</B> will trigger the vector to dispatch
- notifications to its clients. <I>DataArr</I> is the array of dou-
- bles which represents the vector data. <I>NumValues</I> is the
- number of elements in the array. <I>ArraySize</I> is the actual
- size of the array (the array may be bigger than the number
- of values stored in it). <I>FreeProc</I> indicates how the storage
- for the vector component array (<I>dataArr</I>) was allocated. It
- is used to determine how to reallocate memory when the vec-
- tor is resized or destroyed. It must be TCL_DYNAMIC,
- TCL_STATIC, TCL_VOLATILE, or a pointer to a function to
- free the memory allocated for the vector array. If <I>freeProc</I>
- is TCL_VOLATILE, it indicates that <I>dataArr</I> must be copied
- and saved. If <I>freeProc</I> is TCL_DYNAMIC, it indicates that
- <I>dataArr</I> was dynamically allocated and that Tcl should free
- <I>dataArr</I> if necessary. Static indicates that nothing should
- be done to release storage for <I>dataArr</I>.
-
- Results: Returns TCL_OK if the vector is successfully resized. If
- <I>newSize</I> is negative, a vector <I>vecName</I> does not exist, or
- memory cannot be allocated for the vector, then TCL_ERROR
- is returned and <I>interp-&gt;result</I> will contain an error mes-
- sage.
-
-
- <B>Blt_ResizeVector</B>
-
- Synopsis: int <B>Blt_ResizeVector</B> (<I>vecPtr</I>, <I>newSize</I>)
- Blt_Vector *<I>vecPtr</I>; int <I>newSize</I>;
-
- Description:
- Resets the length of the vector pointed to by <I>vecPtr</I> to
- <I>newSize</I>. If <I>newSize</I> is smaller than the current size of
- the vector, it is truncated. If <I>newSize</I> is greater, the
- vector is extended and the new components are initialized
- to 0.0. Calling <B>Blt_ResetVector</B> will trigger the vector to
- dispatch notifications.
-
- Results: Returns 1 if a vector <I>vecName</I> exists and 0 otherwise.
-
-
- If your application needs to be notified when a vector changes, it
- can allocate a unique <I>client</I> <I>identifier</I> for itself. Using this iden-
- tifier, you can then register a call-back to be made whenever the
- vector is updated or destroyed. By default, the call-backs are made
- at the next idle point. This can be changed to occur at the time the
- vector is modified. An application can allocate more than one iden-
- tifier for any vector. When the client application is done with the
- vector, it should free the identifier.
-
- The call-back routine must of the following type.
-
- typedef void (<B>Blt_VectorChangedProc</B>) (Tcl_Interp *<I>interp</I>,
- ClientData <I>clientData</I>, Blt_VectorNotify <I>notify</I>);
-
- <I>ClientData</I> is passed to this routine whenever it is called. You can
- use this to pass information to the call-back. The <I>notify</I> argument
- indicates whether the vector has been updated of destroyed. It is an
- enumerated type.
-
- typedef enum {
- BLT_VECTOR_NOTIFY_UPDATE=1,
- BLT_VECTOR_NOTIFY_DESTROY=2 } <B>Blt_VectorNotify</B>;
-
-
- <B>Blt_AllocVectorId</B>
-
- Synopsis: Blt_VectorId <B>Blt_AllocVectorId</B> (<I>interp</I>, <I>vecName</I>)
- Tcl_Interp *<I>interp</I>; char *<I>vecName</I>;
-
- Description:
- Allocates an client identifier for with the vector <I>vec-</I>
- <I>Name</I>. This identifier can be used to specify a call-
- back which is triggered when the vector is updated or
- destroyed.
-
- Results: Returns a client identifier if successful. If <I>vecName</I>
- is not the name of a vector, then NULL is returned and
- <I>interp-&gt;result</I> will contain an error message.
-
-
- <B>Blt_GetVectorById</B>
-
- Synopsis: int <B>Blt_GetVector</B> (<I>interp</I>, <I>clientId</I>, <I>vecPtrPtr</I>)
- Tcl_Interp *<I>interp</I>; Blt_VectorId <I>clientId</I>; Blt_Vector
- **<I>vecPtrPtr</I>;
-
- Description:
- Retrieves the vector used by <I>clientId</I>. <I>ClientId</I> is a
- valid vector client identifier allocated by
- Specifies a call-back routine to be called whenever the
- vector associated with <I>clientId</I> is updated or deleted.
- <I>Proc</I> is a pointer to call-back routine and must be of
- the type <B>Blt_VectorChangedProc</B>. <I>ClientData</I> is a one-
- word value to be passed to the routine when it is
- invoked. If <I>proc</I> is NULL, then the client is not noti-
- fied.
-
- Results: The designated call-back procedure will be invoked when
- the vector is updated or destroyed.
-
-
- <B>Blt_FreeVectorId</B>
-
- Synopsis: void <B>Blt_FreeVectorId</B> (<I>clientId</I>);
- Blt_VectorId <I>clientId</I>;
-
- Description:
- Frees the client identifier. Memory allocated for the
- identifier is released. The client will no longer be
- notified when the vector is modified.
-
- Results: The designated call-back procedure will be no longer be
- invoked when the vector is updated or destroyed.
-
-
- <B>Blt_NameOfVectorId</B>
-
- Synopsis: char *<B>Blt_NameOfVectorId</B> (<I>clientId</I>);
- Blt_VectorId <I>clientId</I>;
-
- Description:
- Retrieves the name of the vector associated with the
- client identifier <I>clientId</I>.
-
- Results: Returns the name of the vector associated with <I>clientId</I>.
- If <I>clientId</I> is not an identifier or the vector has been
- destroyed, NULL is returned.
-
-
- <B>Blt_InstallIndexProc</B>
-
- Synopsis: void <B>Blt_InstallIndexProc</B> (<I>indexName</I>, <I>procPtr</I>)
- char *<I>indexName</I>; Blt_VectorIndexProc *<I>procPtr</I>;
-
- Description:
- Registers a function to be called to retrieved the index
- <I>indexName</I> from the vector's array variable.
-
- typedef double Blt_VectorIndexProc(Vector *vecPtr);
-
- The function will be passed a pointer to the vector.
-
- reset shortly. The vector is updated when <B>lt_ResetVector</B> is called.
- Blt_ResetVector makes the changes visible to the Tcl interface and
- other vector clients (such as a graph widget).
-
- #include &lt;tcl.h&gt; #include &lt;blt.h&gt; Blt_Vector *vecPtr; double
- *newArr; FILE *f; struct stat statBuf; int numBytes, numValues;
-
- f = fopen("binary.dat", "r"); fstat(fileno(f), &amp;statBuf); numBytes =
- (int)statBuf.st_size;
-
- /* Allocate an array big enough to hold all the data */ newArr = (dou-
- ble *)malloc(numBytes); numValues = numBytes / sizeof(double);
- fread((void *)newArr, numValues, sizeof(double), f); fclose(f);
-
- if (Blt_VectorExists(interp, "data")) {
- if (Blt_GetVector(interp, "data", &amp;vecPtr) != TCL_OK) {
- return TCL_ERROR;
- } } else {
- if (Blt_CreateVector(interp, "data", 0, &amp;vecPtr) != TCL_OK) {
- return TCL_ERROR;
- } } /*
- * Reset the vector. Clients will be notified when Tk is idle.
- * TCL_DYNAMIC tells the vector to free the memory allocated
- * if it needs to reallocate or destroy the vector.
- */ if (Blt_ResetVector(vecPtr, newArr, numValues, numValues,
- TCL_DYNAMIC) != TCL_OK) {
- return TCL_ERROR; }
-
-
-</PRE>
-<H2>INCOMPATIBILITIES</H2><PRE>
- In previous versions, if the array variable isn't global (i.e. local to
- a Tcl procedure), the vector is automatically destroyed when the proce-
- dure returns. proc doit {} {
- # Temporary vector x
- vector <B>x(10)</B>
- set <B>x(9)</B> 2.0
- ... }
-
- This has changed. Variables are not automatically destroyed when their
- variable is unset. You can restore the old behavior by setting the
- "-watchunset" switch.
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- vector, graph, widget
-
-
-
-BLT BLT_VERSION blt::vector(n)
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/tkblt/doc/vector.n b/tkblt/doc/vector.n
deleted file mode 100644
index fa8bb7e..0000000
--- a/tkblt/doc/vector.n
+++ /dev/null
@@ -1,1134 +0,0 @@
-'\"
-'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-'\" This code has been modified under the terms listed below and is made
-'\" available under the same terms.
-'\"
-'\" Copyright 1991-1997 by Lucent Technologies, Inc.
-'\"
-'\" Permission to use, copy, modify, and distribute this software and its
-'\" documentation for any purpose and without fee is hereby granted, provided
-'\" that the above copyright notice appear in all copies and that both that the
-'\" copyright notice and warranty disclaimer appear in supporting documentation,
-'\" and that the names of Lucent Technologies any of their entities not be used
-'\" in advertising or publicity pertaining to distribution of the software
-'\" without specific, written prior permission.
-'\"
-'\" Lucent Technologies disclaims all warranties with regard to this software,
-'\" including all implied warranties of merchantability and fitness. In no event
-'\" shall Lucent Technologies be liable for any special, indirect or
-'\" consequential damages or any damages whatsoever resulting from loss of use,
-'\" data or profits, whether in an action of contract, negligence or other
-'\" tortuous action, arising out of or in connection with the use or performance
-'\" of this software.
-'\"
-'\" Vector command created by George Howlett.
-'\"
-.TH blt::vector n BLT_VERSION BLT "BLT Built-In Commands"
-.BS
-'\" Note: do not modify the .SH NAME line immediately below!
-.SH NAME
-\fBvector\fR \- Vector data type for Tcl
-.SH SYNOPSIS
-\fBblt::vector create \fIvecName \fR?\fIvecName\fR...? ?\fIswitches\fR?
-.sp
-\fBblt::vector destroy \fIvecName \fR?\fIvecName\fR...?
-.sp
-\fBblt::vector expr \fIexpression\fR
-.sp
-\fBblt::vector names \fR?\fIpattern\fR...?
-.BE
-.SH DESCRIPTION
-The \fBvector\fR command creates an array of floating point
-values. The vector's components can be manipulated in three ways:
-through a Tcl array variable, a Tcl command, or the C API.
-.SH INTRODUCTION
-A vector is an ordered set of real numbers. The components of a
-vector are indexed by integers.
-.PP
-Vectors are common data structures for many applications. For
-example, a graph may use two vectors to represent the X-Y
-coordinates of the data plotted. The graph will automatically
-be redrawn when the vectors are updated or changed. By using vectors,
-you can separate
-data analysis from the graph widget. This makes it easier, for
-example, to add data transformations, such as splines. It's possible
-to plot the same data to in multiple graphs, where each graph presents
-a different view or scale of the data.
-.PP
-You could try to use Tcl's associative arrays as vectors. Tcl arrays
-are easy to use. You can access individual elements randomly by
-specifying the index, or the set the entire array by providing a list
-of index and value pairs for each element. The disadvantages of
-associative arrays as vectors lie in the fact they are implemented as
-hash tables.
-.TP 2
-\(bu
-There's no implied ordering to the associative arrays. If you used
-vectors for plotting, you would want to insure the second component
-comes after the first, an so on. This isn't possible since arrays
-are actually hash tables. For example, you can't get a range of
-values between two indices. Nor can you sort an array.
-.TP 2
-\(bu
-Arrays consume lots of memory when the number of elements becomes
-large (tens of thousands). This is because each element's index and
-value are stored as strings in the hash table.
-.TP 2
-\(bu
-The C programming interface is unwieldy. Normally with vectors, you
-would like to view the Tcl array as you do a C array, as an array of
-floats or doubles. But with hash tables, you must convert both the
-index and value to and from decimal strings, just to access
-an element in the array. This makes it cumbersome to perform operations on
-the array as a whole.
-.PP
-The \fBvector\fR command tries to overcome these disadvantages while
-still retaining the ease of use of Tcl arrays. The \fBvector\fR
-command creates both a new Tcl command and associate array which are
-linked to the vector components. You can randomly access vector
-components though the elements of array. Not have all indices are
-generated for the array, so printing the array (using the \fBparray\fR
-procedure) does not print out all the component values. You can use
-the Tcl command to access the array as a whole. You can copy, append,
-or sort vector using its command. If you need greater performance, or
-customized behavior, you can write your own C code to manage vectors.
-.SH EXAMPLE
-You create vectors using the \fBvector\fR command and its \fBcreate\fR
-operation.
-.CS
-# Create a new vector.
-blt::vector create y(50)
-.CE
-This creates a new vector named \f(CWy\fR. It has fifty components, by
-default, initialized to \f(CW0.0\fR. In addition, both a Tcl command
-and array variable, both named \f(CWy\fR, are created. You can use
-either the command or variable to query or modify components of the
-vector.
-.CS
-# Set the first value.
-set y(0) 9.25
-puts "y has [y length] components"
-.CE
-The array \f(CWy\fR can be used to read or set individual components of
-the vector. Vector components are indexed from zero. The array index
-must be a number less than the number of components. For example,
-it's an error if you try to set the 51st element of \f(CWy\fR.
-.CS
-# This is an error. The vector only has 50 components.
-set y(50) 0.02
-.CE
-You can also specify a range of indices using a colon (:) to separate
-the first and last indices of the range.
-.CS
-# Set the first six components of y
-set y(0:5) 25.2
-.CE
-If you don't include an index, then it will default to the first
-and/or last component of the vector.
-.CS
-# Print out all the components of y
-puts "y = $y(:)"
-.CE
-There are special non-numeric indices. The index \f(CWend\fR, specifies
-the last component of the vector. It's an error to use this index if
-the vector is empty (length is zero). The index \f(CW++end\fR can be
-used to extend the vector by one component and initialize it to a specific
-value. You can't read from the array using this index, though.
-.CS
-# Extend the vector by one component.
-set y(++end) 0.02
-.CE
-The other special indices are \f(CWmin\fR and \f(CWmax\fR. They return the
-current smallest and largest components of the vector.
-.CS
-# Print the bounds of the vector
-puts "min=$y(min) max=$y(max)"
-.CE
-To delete components from a vector, simply unset the corresponding
-array element. In the following example, the first component of
-\f(CWy\fR is deleted. All the remaining components of \f(CWy\fR will be
-moved down by one index as the length of the vector is reduced by
-one.
-.CS
-# Delete the first component
-unset y(0)
-puts "new first element is $y(0)"
-.CE
-The vector's Tcl command can also be used to query or set the vector.
-.CS
-# Create and set the components of a new vector
-blt::vector create x
-x set { 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 }
-.CE
-Here we've created a vector \f(CWx\fR without a initial length specification.
-In this case, the length is zero. The \fBset\fR operation resets the vector,
-extending it and setting values for each new component.
-.PP
-There are several operations for vectors. The \fBrange\fR operation
-lists the components of a vector between two indices.
-.CS
-# List the components
-puts "x = [x range 0 end]"
-.CE
-You can search for a particular value using the \fBsearch\fR
-operation. It returns a list of indices of the components with the
-same value. If no component has the same value, it returns \f(CW""\fR.
-.CS
-# Find the index of the biggest component
-set indices [x search $x(max)]
-.CE
-Other operations copy, append, or sort vectors. You can append
-vectors or new values onto an existing vector with the \fBappend\fR
-operation.
-.CS
-# Append assorted vectors and values to x
-x append x2 x3 { 2.3 4.5 } x4
-.CE
-The \fBsort\fR operation sorts the vector. If any additional vectors
-are specified, they are rearranged in the same order as the vector.
-For example, you could use it to sort data points represented by x and
-y vectors.
-.CS
-# Sort the data points
-x sort y
-.CE
-The vector \f(CWx\fR is sorted while the components of \f(CWy\fR are
-rearranged so that the original x,y coordinate pairs are retained.
-.PP
-The \fBexpr\fR operation lets you perform arithmetic on vectors.
-The result is stored in the vector.
-.CS
-# Add the two vectors and a scalar
-x expr { x + y }
-x expr { x * 2 }
-.CE
-When a vector is modified, resized, or deleted, it may trigger
-call-backs to notify the clients of the vector. For example, when a
-vector used in the \fBgraph\fR widget is updated, the vector
-automatically notifies the widget that it has changed. The graph can
-then redrawn itself at the next idle point. By default, the
-notification occurs when Tk is next idle. This way you can modify the
-vector many times without incurring the penalty of the graph redrawing
-itself for each change. You can change this behavior using the
-\fBnotify\fR operation.
-.CS
-# Make vector x notify after every change
-x notify always
- ...
-# Never notify
-x notify never
- ...
-# Force notification now
-x notify now
-.CE
-To delete a vector, use the \fBvector delete\fR command.
-Both the vector and its corresponding Tcl command are destroyed.
-.CS
-# Remove vector x
-blt::vector destroy x
-.CE
-.SH SYNTAX
-Vectors are created using the \fBvector create\fR operation.
-Th \fBcreate\fR operation can be invoked in one of three forms:
-.TP
-\fBblt::vector create \fIvecName\fR
-This creates a new vector \fIvecName\fR which initially has no components.
-.TP
-\fBblt::vector create \fIvecName\fR(\fIsize\fR)
-This second form creates a new vector which will contain \fIsize\fR
-number of components. The components will be indexed starting from
-zero (0). The default value for the components is \f(CW0.0\fR.
-.TP
-\fBblt::vector create \fIvecName\fR(\fIfirst\fR:\fIlast\fR)
-The last form creates a new vector of indexed \fIfirst\fR through
-\fIlast\fR. \fIFirst\fR and \fIlast\fR can be any integer value
-so long as \fIfirst\fR is less than \fIlast\fR.
-.PP
-Vector names must start with a letter and consist of letters, digits,
-or underscores.
-.CS
-# Error: must start with letter
-blt::vector create 1abc
-.CE
-You can automatically generate vector names using the
-"\f(CW#auto\fR" vector name. The \fBcreate\fR operation will generate a
-unique vector name.
-.CS
-set vec [blt::vector create #auto]
-puts "$vec has [$vec length] components"
-.CE
-.SS VECTOR INDICES
-Vectors are indexed by integers. You can access the individual vector
-components via its array variable or Tcl command. The string
-representing the index can be an integer, a numeric expression, a
-range, or a special keyword.
-.PP
-The index must lie within the current range of the vector, otherwise
-an an error message is returned. Normally the indices of a vector
-are start from 0. But you can use the \fBoffset\fR operation to
-change a vector's indices on-the-fly.
-.CS
-puts $vecName(0)
-vecName offset -5
-puts $vecName(-5)
-.CE
-You can also use numeric expressions as indices. The result
-of the expression must be an integer value.
-.CS
-set n 21
-set vecName($n+3) 50.2
-.CE
-The following special non-numeric indices are available: \f(CWmin\fR, \f(CWmax\fR, \f(CWend\fR, and
-\f(CW++end\fR.
-.CS
-puts "min = $vecName($min)"
-set vecName(end) -1.2
-.CE
-The indices \f(CWmin\fR and \f(CWmax\fR will return the minimum and maximum
-values of the vector. The index \f(CWend\fR returns the value of the
-last component in the vector. The index \f(CW++end\fR is used to append
-new value onto the vector. It automatically extends the vector by
-one component and sets its value.
-.CS
-# Append an new component to the end
-set vecName(++end) 3.2
-.CE
-A range of indices can be indicated by a colon (:).
-.CS
-# Set the first six components to 1.0
-set vecName(0:5) 1.0
-.CE
-If no index is supplied the first or last component is assumed.
-.CS
-# Print the values of all the components
-puts $vecName(:)
-.CE
-.SH VECTOR OPERATIONS
-.TP
-\fBblt::vector create \fIvecName\fR?(\fIsize\fR)?... \fR?\fIswitches\fR?
-The \fBcreate\fR operation creates a new vector \fIvecName\fR. Both a
-Tcl command and array variable \fIvecName\fR are also created. The
-name \fIvecName\fR must be unique, so another Tcl command or array
-variable can not already exist in that scope. You can access the
-components of the vector using its variable. If you change a value in
-the array, or unset an array element, the vector is updated to reflect
-the changes. When the variable \fIvecName\fR is unset, the vector and
-its Tcl command are also destroyed.
-.sp
-The vector has optional switches that affect how the vector is created. They
-are as follows:
-.RS
-.TP
-\fB\-variable \fIvarName\fR
-Specifies the name of a Tcl variable to be mapped to the vector. If
-the variable already exists, it is first deleted, then recreated.
-If \fIvarName\fR is the empty string, then no variable will be mapped.
-You can always map a variable back to the vector using the vector's
-\fBvariable\fR operation.
-.TP
-\fB\-command \fIcmdName\fR
-Maps a Tcl command to the vector. The vector can be accessed using
-\fIcmdName\fR and one of the vector instance operations.
-A Tcl command by that name cannot already exist.
-If \fIcmdName\fR is the empty string, no command mapping
-will be made.
-.TP
-\fB\-watchunset \fIboolean\fR
-Indicates that the vector should automatically delete itself if
-the variable associated with the vector is unset. By default,
-the vector will not be deleted. This is different from previous
-releases. Set \fIboolean\fR to "true" to get the old behavior.
-.RE
-.TP
-\fBblt::vector destroy \fIvecName\fR \fR?\fIvecName...\fR?
-Deletes one or more vectors. Both the Tcl command and array variable
-are removed also.
-.TP
-\fBblt::vector expr \fIexpression\fR
-.RS
-All binary operators take vectors as operands (remember that numbers
-are treated as one-component vectors). The exact action of binary
-operators depends upon the length of the second operand. If the
-second operand has only one component, then each element of the first
-vector operand is computed by that value. For example, the expression
-"x * 2" multiples all elements of the vector x by 2. If the second
-operand has more than one component, both operands must be the same
-length. Each pair of corresponding elements are computed. So "x + y"
-adds the the first components of x and y together, the second, and so on.
-.sp
-The valid operators are listed below, grouped in decreasing order
-of precedence:
-.TP 20
-\fB\-\0\0!\fR
-Unary minus and logical NOT. The unary minus flips the sign of each
-component in the vector. The logical not operator returns a vector of
-whose values are 0.0 or 1.0. For each non-zero component 1.0 is returned,
-0.0 otherwise.
-.TP 20
-\fB^\fR
-Exponentiation.
-.TP 20
-\fB*\0\0/\0\0%\fR
-Multiply, divide, remainder.
-.TP 20
-\fB+\0\0\-\fR
-Add and subtract.
-.TP 20
-\fB<<\0\0>>\fR
-Left and right shift. Circularly shifts the values of the vector
-(not implemented yet).
-.TP 20
-\fB<\0\0>\0\0<=\0\0>=\fR
-Boolean less, greater, less than or equal, and greater than or equal.
-Each operator returns a vector of ones and zeros. If the condition is true,
-1.0 is the component value, 0.0 otherwise.
-.TP 20
-\fB==\0\0!=\fR
-Boolean equal and not equal.
-Each operator returns a vector of ones and zeros. If the condition is true,
-1.0 is the component value, 0.0 otherwise.
-.TP 20
-\fB|\fR
-Bit-wise OR. (Not implemented).
-.TP 20
-\fB&&\fR
-Logical AND. Produces a 1 result if both operands are non-zero, 0 otherwise.
-.TP 20
-\fB||\fR
-Logical OR. Produces a 0 result if both operands are zero, 1 otherwise.
-.TP 20
-\fIx\fB?\fIy\fB:\fIz\fR
-If-then-else, as in C. (Not implemented yet).
-.LP
-See the C manual for more details on the results produced by each
-operator. All of the binary operators group left-to-right within the
-same precedence level.
-.sp
-Several mathematical functions are supported for vectors. Each of
-the following functions invokes the math library function of the same name;
-see the manual entries for the library functions for details on what
-they do. The operation is applied to all elements of the vector
-returning the results.
-.CS
-.ta 2c 4c 6c
-\fBacos\fR \fBcos\fR \fBhypot\fR \fBsinh\fR
-\fBasin\fR \fBcosh\fR \fBlog\fR \fBsqrt\fR
-\fBatan\fR \fBexp\fR \fBlog10\fR \fBtan\fR
-\fBceil\fR \fBfloor\fR \fBsin\fR \fBtanh\fR
-.sp
-.CE
-Additional functions are:
-.TP 1i
-\fBabs\fR
-Returns the absolute value of each component.
-.TP 1i
-\fBrandom\fR
-Returns a vector of non-negative values uniformly distributed
-between [0.0, 1.0) using \fIdrand48\fR.
-The seed comes from the internal clock of the machine or may be
-set manual with the srandom function.
-.TP 1i
-\fBround\fR
-Rounds each component of the vector.
-.TP 1i
-\fBsrandom\fR
-Initializes the random number generator using \fIsrand48\fR.
-The high order 32-bits are set using the integral portion of the first
-vector component. All other components are ignored. The low order 16-bits
-are set to an arbitrary value.
-.PP
-The following functions return a single value.
-.TP 1i
-\fBadev\fR
-Returns the average deviation (defined as the sum of the absolute values
-of the differences between component and the mean, divided by the length
-of the vector).
-.TP 1i
-\fBkurtosis\fR
-Returns the degree of peakedness (fourth moment) of the vector.
-.TP 1i
-\fBlength\fR
-Returns the number of components in the vector.
-.TP 1i
-\fBmax\fR
-Returns the vector's maximum value.
-.TP 1i
-\fBmean\fR
-Returns the mean value of the vector.
-.TP 1i
-\fBmedian\fR
-Returns the median of the vector.
-.TP 1i
-\fBmin\fR
-Returns the vector's minimum value.
-.TP 1i
-\fBq1\fR
-Returns the first quartile of the vector.
-.TP 1i
-\fBq3\fR
-Returns the third quartile of the vector.
-.TP 1i
-\fBprod\fR
-Returns the product of the components.
-.TP 1i
-\fBsdev\fR
-Returns the standard deviation (defined as the square root of the variance)
-of the vector.
-.TP 1i
-\fBskew\fR
-Returns the skewness (or third moment) of the vector. This characterizes
-the degree of asymmetry of the vector about the mean.
-.TP 1i
-\fBsum\fR
-Returns the sum of the components.
-.TP 1i
-\fBvar\fR
-Returns the variance of the vector. The sum of the squared differences
-between each component and the mean is computed. The variance is
-the sum divided by the length of the vector minus 1.
-.PP
-The last set returns a vector of the same length as the argument.
-.TP 1i
-\fBnorm\fR
-Scales the values of the vector to lie in the range [0.0..1.0].
-.TP 1i
-\fBsort\fR
-Returns the vector components sorted in ascending order.
-.RE
-.TP
-\fBvector names \fR?\fIpattern\fR?
-.SH INSTANCE OPERATIONS
-You can also use the vector's Tcl command to query or modify it. The
-general form is
-.DS
-\fIvecName \fIoperation\fR \fR?\fIarg\fR?...
-.DE
-Both \fIoperation\fR and its arguments determine the exact behavior of
-the command. The operations available for vectors are listed below.
-.TP
-\fIvecName \fBappend\fR \fIitem\fR ?\fIitem\fR?...
-Appends the component values from \fIitem\fR to \fIvecName\fR.
-\fIItem\fR can be either the name of a vector or a list of numeric
-values.
-.TP
-\fIvecName \fBbinread\fR \fIchannel\fR ?\fIlength\fR? ?\fIswitches\fR?
-Reads binary values from a Tcl channel. Values are either appended
-to the end of the vector or placed at a given index (using the
-\fB\-at\fR option), overwriting existing values. Data is read until EOF
-is found on the channel or a specified number of values \fIlength\fR
-are read (note that this is not necessarily the same as the number of
-bytes). The following switches are supported:
-.RS
-.TP
-\fB\-swap\fR
-Swap bytes and words. The default endian is the host machine.
-.TP
-\fB\-at \fIindex\fR
-New values will start at vector index \fIindex\fR. This will
-overwrite any current values.
-.TP
-\fB\-format\fR \fIformat\fR
-Specifies the format of the data. \fIFormat\fR can be one of the
-following: "i1", "i2", "i4", "i8", "u1, "u2", "u4", "u8", "r4",
-"r8", or "r16". The number indicates the number of bytes
-required for each value. The letter indicates the type: "i" for signed,
-"u" for unsigned, "r" or real. The default format is "r16".
-.RE
-.TP
-\fIvecName \fBclear\fR
-Clears the element indices from the array variable associated with
-\fIvecName\fR. This doesn't affect the components of the vector. By
-default, the number of entries in the Tcl array doesn't match the
-number of components in the vector. This is because its too expensive
-to maintain decimal strings for both the index and value for each
-component. Instead, the index and value are saved only when you read
-or write an element with a new index. This command removes the index
-and value strings from the array. This is useful when the vector is
-large.
-.TP
-\fIvecName \fBdelete\fR \fIindex\fR ?\fIindex\fR?...
-Deletes the \fIindex\fRth component from the vector \fIvecName\fR.
-\fIIndex\fR is the index of the element to be deleted. This is the
-same as unsetting the array variable element \fIindex\fR. The vector
-is compacted after all the indices have been deleted.
-.TP
-\fIvecName \fBdup\fR \fIdestName\fR
-Copies \fIvecName\fR to \fIdestName\fR. \fIDestName\fR is the name of a
-destination vector. If a vector \fIdestName\fR already exists, it is
-overwritten with the components of \fIvecName\fR. Otherwise a
-new vector is created.
-.TP
-\fIvecName \fBexpr\fR \fIexpression\fR
-Computes the expression and resets the values of the vector accordingly.
-Both scalar and vector math operations are allowed. All values in
-expressions are either real numbers or names of vectors. All numbers
-are treated as one component vectors.
-.TP
-\fIvecName \fBlength\fR ?\fInewSize\fR?
-Queries or resets the number of components in \fIvecName\fR.
-\fINewSize\fR is a number specifying the new size of the vector. If
-\fInewSize\fR is smaller than the current size of \fIvecName\fR,
-\fIvecName\fR is truncated. If \fInewSize\fR is greater, the vector
-is extended and the new components are initialized to \f(CW0.0\fR. If
-no \fInewSize\fR argument is present, the current length of the vector
-is returned.
-.TP
-\fIvecName \fBmerge\fR \fIsrcName\fR ?\fIsrcName\fR?...
-Merges the named vectors into a single vector. The resulting
-vector is formed by merging the components of each source vector
-one index at a time.
-.TP
-\fIvecName \fBnotify\fR \fIkeyword\fR
-Controls how vector clients are notified of changes to the vector.
-The exact behavior is determined by \fIkeyword\fR.
-.RS
-.TP 0.75i
-\f(CWalways\fR
-Indicates that clients are to be notified immediately whenever the
-vector is updated.
-.TP
-\f(CWnever\fR
-Indicates that no clients are to be notified.
-.TP
-\f(CWwhenidle\fR
-Indicates that clients are to be notified at the next idle point
-whenever the vector is updated.
-.TP
-\f(CWnow\fR
-If any client notifications is currently pending, they are notified
-immediately.
-.TP
-\f(CWcancel\fR
-Cancels pending notifications of clients using the vector.
-.TP
-\f(CWpending\fR
-Returns \f(CW1\fR if a client notification is pending, and \f(CW0\fR otherwise.
-.RE
-.TP
-\fIvecName \fBoffset\fR ?\fIvalue\fR?
-Shifts the indices of the vector by the amount specified by \fIvalue\fR.
-\fIValue\fR is an integer number. If no \fIvalue\fR argument is
-given, the current offset is returned.
-.TP
-\fIvecName \fBpopulate\fR \fIdestName\fR ?\fIdensity\fR?
-Creates a vector \fIdestName\fR which is a superset of \fIvecName\fR.
-\fIDestName\fR will include all the components of \fIvecName\fR, in
-addition the interval between each of the original components will
-contain a \fIdensity\fR number of new components, whose values are
-evenly distributed between the original components values. This is
-useful for generating abscissas to be interpolated along a spline.
-.TP
-\fIvecName \fBrange\fR \fIfirstIndex\fR ?\fIlastIndex\fR?...
-Returns a list of numeric values representing the vector components
-between two indices. Both \fIfirstIndex\fR and \fIlastIndex\fR are
-indices representing the range of components to be returned. If
-\fIlastIndex\fR is less than \fIfirstIndex\fR, the components are
-listed in reverse order.
-.TP
-\fIvecName \fBsearch\fR \fIvalue\fR ?\fIvalue\fR?
-Searches for a value or range of values among the components of
-\fIvecName\fR. If one \fIvalue\fR argument is given, a list of
-indices of the components which equal \fIvalue\fR is returned. If a
-second \fIvalue\fR is also provided, then the indices of all
-components which lie within the range of the two values are returned.
-If no components are found, then \f(CW""\fR is returned.
-.TP
-\fIvecName \fBset\fR \fIitem\fR
-Resets the components of the vector to \fIitem\fR. \fIItem\fR can
-be either a list of numeric expressions or another vector.
-.TP
-\fIvecName \fBseq\fR \fIstart\fR ?\fIfinish\fR? ?\fIstep\fR?
-Generates a sequence of values starting with the value \fIstart\fR.
-\fIFinish\fR indicates the terminating value of the sequence.
-The vector is automatically resized to contain just the sequence.
-If three arguments are present, \fIstep\fR designates the interval.
-.sp
-With only two arguments (no \fIfinish\fR argument), the sequence will
-continue until the vector is filled. With one argument, the interval
-defaults to 1.0.
-.TP
-\fIvecName \fBsort\fR ?\fB-reverse\fR? ?\fIargName\fR?...
-Sorts the vector \fIvecName\fR in increasing order. If the
-\fB-reverse\fR flag is present, the vector is sorted in decreasing
-order. If other arguments \fIargName\fR are present, they are the
-names of vectors which will be rearranged in the same manner as
-\fIvecName\fR. Each vector must be the same length as \fIvecName\fR.
-You could use this to sort the x vector of a graph, while still
-retaining the same x,y coordinate pairs in a y vector.
-.TP
-\fIvecName \fBvariable\fR \fIvarName\fR
-Maps a Tcl variable to the vector, creating another means for
-accessing the vector. The variable \fIvarName\fR can't already
-exist. This overrides any current variable mapping the vector
-may have.
-.RE
-.SH C LANGUAGE API
-You can create, modify, and destroy vectors from C code, using
-library routines.
-You need to include the header file \f(CWblt.h\fR. It contains the
-definition of the structure \fBBlt_Vector\fR, which represents the
-vector. It appears below.
-.CS
-\fRtypedef struct {
- double *\fIvalueArr\fR;
- int \fInumValues\fR;
- int \fIarraySize\fR;
- double \fImin\fR, \fImax\fR;
-} \fBBlt_Vector\fR;
-.CE
-The field \fIvalueArr\fR points to memory holding the vector
-components. The components are stored in a double precision array,
-whose size size is represented by \fIarraySize\fR. \fINumValues\fR is
-the length of vector. The size of the array is always equal to or
-larger than the length of the vector. \fIMin\fR and \fImax\fR are
-minimum and maximum component values.
-.SH LIBRARY ROUTINES
-The following routines are available from C to manage vectors.
-Vectors are identified by the vector name.
-.PP
-\fBBlt_CreateVector\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_CreateVector\fR (\fIinterp\fR, \fIvecName\fR, \fIlength\fR, \fIvecPtrPtr\fR)
-.RS 1.25i
-Tcl_Interp *\fIinterp\fR;
-char *\fIvecName\fR;
-int \fIlength\fR;
-Blt_Vector **\fIvecPtrPtr\fR;
-.RE
-.CE
-.TP
-Description:
-Creates a new vector \fIvecName\fR\fR with a length of \fIlength\fR.
-\fBBlt_CreateVector\fR creates both a new Tcl command and array
-variable \fIvecName\fR. Neither a command nor variable named
-\fIvecName\fR can already exist. A pointer to the vector is
-placed into \fIvecPtrPtr\fR.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully created. If
-\fIlength\fR is negative, a Tcl variable or command \fIvecName\fR
-already exists, or memory cannot be allocated for the vector, then
-\f(CWTCL_ERROR\fR is returned and \fIinterp->result\fR will contain an
-error message.
-.RE
-.sp
-.PP
-\fBBlt_DeleteVectorByName\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_DeleteVectorByName\fR (\fIinterp\fR, \fIvecName\fR)
-.RS 1.25i
-Tcl_Interp *\fIinterp\fR;
-char *\fIvecName\fR;
-.RE
-.CE
-.TP 1i
-Description:
-Removes the vector \fIvecName\fR. \fIVecName\fR is the name of a vector
-which must already exist. Both the Tcl command and array variable
-\fIvecName\fR are destroyed. All clients of the vector will be notified
-immediately that the vector has been destroyed.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully deleted. If
-\fIvecName\fR is not the name a vector, then \f(CWTCL_ERROR\fR is returned
-and \fIinterp->result\fR will contain an error message.
-.RE
-.sp
-.PP
-\fBBlt_DeleteVector\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_DeleteVector\fR (\fIvecPtr\fR)
-.RS 1.25i
-Blt_Vector *\fIvecPtr\fR;
-.RE
-.CE
-.TP 1i
-Description:
-Removes the vector pointed to by \fIvecPtr\fR. \fIVecPtr\fR is a
-pointer to a vector, typically set by \fBBlt_GetVector\fR or
-\fBBlt_CreateVector\fR. Both the Tcl command and array variable of
-the vector are destroyed. All clients of the vector will be notified
-immediately that the vector has been destroyed.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully deleted. If
-\fIvecName\fR is not the name a vector, then \f(CWTCL_ERROR\fR is returned
-and \fIinterp->result\fR will contain an error message.
-.RE
-.sp
-.PP
-\fBBlt_GetVector\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_GetVector\fR (\fIinterp\fR, \fIvecName\fR, \fIvecPtrPtr\fR)
-.RS 1.25i
-Tcl_Interp *\fIinterp\fR;
-char *\fIvecName\fR;
-Blt_Vector **\fIvecPtrPtr\fR;
-.RE
-.CE
-.TP 1i
-Description:
-Retrieves the vector \fIvecName\fR. \fIVecName\fR is the name of a
-vector which must already exist. \fIVecPtrPtr\fR will point be set to
-the address of the vector.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully retrieved. If
-\fIvecName\fR is not the name of a vector, then \f(CWTCL_ERROR\fR is
-returned and \fIinterp->result\fR will contain an error message.
-.RE
-.sp
-.PP
-\fBBlt_ResetVector\fR
-.PP
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_ResetVector\fR (\fIvecPtr\fR, \fIdataArr\fR,
- \fInumValues\fR, \fIarraySize\fR, \fIfreeProc\fR)
-.RS 1.25i
-Blt_Vector *\fIvecPtr\fR;
-double *\fIdataArr\fR;
-int *\fInumValues\fR;
-int *\fIarraySize\fR;
-Tcl_FreeProc *\fIfreeProc\fR;
-.RE
-.CE
-.TP
-Description:
-Resets the components of the vector pointed to by \fIvecPtr\fR.
-Calling \fBBlt_ResetVector\fR will trigger the vector to dispatch
-notifications to its clients. \fIDataArr\fR is the array of doubles
-which represents the vector data. \fINumValues\fR is the number of
-elements in the array. \fIArraySize\fR is the actual size of the array
-(the array may be bigger than the number of values stored in
-it). \fIFreeProc\fP indicates how the storage for the vector component
-array (\fIdataArr\fR) was allocated. It is used to determine how to
-reallocate memory when the vector is resized or destroyed. It must be
-\f(CWTCL_DYNAMIC\fR, \f(CWTCL_STATIC\fR, \f(CWTCL_VOLATILE\fR, or a pointer
-to a function to free the memory allocated for the vector array. If
-\fIfreeProc\fR is \f(CWTCL_VOLATILE\fR, it indicates that \fIdataArr\fR
-must be copied and saved. If \fIfreeProc\fR is \f(CWTCL_DYNAMIC\fR, it
-indicates that \fIdataArr\fR was dynamically allocated and that Tcl
-should free \fIdataArr\fR if necessary. \f(CWStatic\fR indicates that
-nothing should be done to release storage for \fIdataArr\fR.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully resized. If
-\fInewSize\fR is negative, a vector \fIvecName\fR does not exist, or
-memory cannot be allocated for the vector, then \f(CWTCL_ERROR\fR is
-returned and \fIinterp->result\fR will contain an error message.
-.RE
-.sp
-.PP
-\fBBlt_ResizeVector\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_ResizeVector\fR (\fIvecPtr\fR, \fInewSize\fR)
-.RS 1.25i
-Blt_Vector *\fIvecPtr\fR;
-int \fInewSize\fR;
-.RE
-.CE
-.TP
-Description:
-Resets the length of the vector pointed to by \fIvecPtr\fR to
-\fInewSize\fR. If \fInewSize\fR is smaller than the current size of
-the vector, it is truncated. If \fInewSize\fR is greater, the vector
-is extended and the new components are initialized to \f(CW0.0\fR.
-Calling \fBBlt_ResetVector\fR will trigger the vector to dispatch
-notifications.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully resized. If
-\fInewSize\fR is negative or memory can not be allocated for the vector,
-then \f(CWTCL_ERROR\fR is returned and \fIinterp->result\fR will contain
-an error message.
-.sp
-.PP
-\fBBlt_VectorExists\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_VectorExists\fR (\fIinterp\fR, \fIvecName\fR)
-.RS 1.25i
-Tcl_Interp *\fIinterp\fR;
-char *\fIvecName\fR;
-.RE
-.CE
-.TP
-Description:
-Indicates if a vector named \fIvecName\fR exists in \fIinterp\fR.
-.TP
-Results:
-Returns \f(CW1\fR if a vector \fIvecName\fR exists and \f(CW0\fR otherwise.
-.RE
-.sp
-.PP
-If your application needs to be notified when a vector changes, it can
-allocate a unique \fIclient identifier\fR for itself. Using this
-identifier, you can then register a call-back to be made whenever the
-vector is updated or destroyed. By default, the call-backs are made at
-the next idle point. This can be changed to occur at the time the
-vector is modified. An application can allocate more than one
-identifier for any vector. When the client application is done with
-the vector, it should free the identifier.
-.PP
-The call-back routine must of the following type.
-.CS
-.RS
-.sp
-typedef void (\fBBlt_VectorChangedProc\fR) (Tcl_Interp *\fIinterp\fR,
-.RS .25i
-ClientData \fIclientData\fR, Blt_VectorNotify \fInotify\fR);
-.RE
-.sp
-.RE
-.CE
-.fi
-\fIClientData\fR is passed to this routine whenever it is called. You
-can use this to pass information to the call-back. The \fInotify\fR
-argument indicates whether the vector has been updated of destroyed. It
-is an enumerated type.
-.CS
-.RS
-.sp
-typedef enum {
- \f(CWBLT_VECTOR_NOTIFY_UPDATE\fR=1,
- \f(CWBLT_VECTOR_NOTIFY_DESTROY\fR=2
-} \fBBlt_VectorNotify\fR;
-.sp
-.RE
-.CE
-.PP
-\fBBlt_AllocVectorId\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-Blt_VectorId \fBBlt_AllocVectorId\fR (\fIinterp\fR, \fIvecName\fR)
-.RS 1.25i
-Tcl_Interp *\fIinterp\fR;
-char *\fIvecName\fR;
-.RE
-.CE
-.TP
-Description:
-Allocates an client identifier for with the vector \fIvecName\fR.
-This identifier can be used to specify a call-back which is triggered
-when the vector is updated or destroyed.
-.TP
-Results:
-Returns a client identifier if successful. If \fIvecName\fR is not
-the name of a vector, then \f(CWNULL\fR is returned and
-\fIinterp->result\fR will contain an error message.
-.RE
-.sp
-.PP
-\fBBlt_GetVectorById\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-int \fBBlt_GetVector\fR (\fIinterp\fR, \fIclientId\fR, \fIvecPtrPtr\fR)
-.RS 1.25i
-Tcl_Interp *\fIinterp\fR;
-Blt_VectorId \fIclientId\fR;
-Blt_Vector **\fIvecPtrPtr\fR;
-.RE
-.CE
-.TP 1i
-Description:
-Retrieves the vector used by \fIclientId\fR. \fIClientId\fR is a valid
-vector client identifier allocated by \fBBlt_AllocVectorId\fR.
-\fIVecPtrPtr\fR will point be set to the address of the vector.
-.TP
-Results:
-Returns \f(CWTCL_OK\fR if the vector is successfully retrieved.
-.RE
-.sp
-.PP
-\fBBlt_SetVectorChangedProc\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-void \fBBlt_SetVectorChangedProc\fR (\fIclientId\fR, \fIproc\fR, \fIclientData\fR);
-.RS 1.25i
-Blt_VectorId \fIclientId\fR;
-Blt_VectorChangedProc *\fIproc\fR;
-ClientData *\fIclientData\fR;
-.RE
-.CE
-.TP
-Description:
-Specifies a call-back routine to be called whenever the vector
-associated with \fIclientId\fR is updated or deleted. \fIProc\fR is a
-pointer to call-back routine and must be of the type
-\fBBlt_VectorChangedProc\fR. \fIClientData\fR is a one-word value to
-be passed to the routine when it is invoked. If \fIproc\fR is
-\f(CWNULL\fR, then the client is not notified.
-.TP
-Results:
-The designated call-back procedure will be invoked when the vector is
-updated or destroyed.
-.RE
-.sp
-.PP
-\fBBlt_FreeVectorId\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-void \fBBlt_FreeVectorId\fR (\fIclientId\fR);
-.RS 1.25i
-Blt_VectorId \fIclientId\fR;
-.RE
-.CE
-.TP
-Description:
-Frees the client identifier. Memory allocated for the identifier
-is released. The client will no longer be notified when the
-vector is modified.
-.TP
-Results:
-The designated call-back procedure will be no longer be invoked when
-the vector is updated or destroyed.
-.RE
-.sp
-.PP
-\fBBlt_NameOfVectorId\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-char *\fBBlt_NameOfVectorId\fR (\fIclientId\fR);
-.RS 1.25i
-Blt_VectorId \fIclientId\fR;
-.RE
-.CE
-.TP
-Description:
-Retrieves the name of the vector associated with the client identifier
-\fIclientId\fR.
-.TP
-Results:
-Returns the name of the vector associated with \fIclientId\fR. If
-\fIclientId\fR is not an identifier or the vector has been destroyed,
-\f(CWNULL\fR is returned.
-.RE
-.sp
-.PP
-\fBBlt_InstallIndexProc\fR
-.RS .25i
-.TP 1i
-Synopsis:
-.CS
-void \fBBlt_InstallIndexProc\fR (\fIindexName\fR, \fIprocPtr\fR)
-.RS 1.25i
-char *\fIindexName\fR;
-Blt_VectorIndexProc *\fIprocPtr\fR;
-.RE
-.CE
-.TP
-Description:
-Registers a function to be called to retrieved the index \fIindexName\fR
-from the vector's array variable.
-.sp
-typedef double Blt_VectorIndexProc(Vector *vecPtr);
-.sp
-The function will be passed a pointer to the vector. The function must
-return a double representing the value at the index.
-.TP
-Results:
-The new index is installed into the vector.
-.RE
-.RE
-.SH C API EXAMPLE
-The following example opens a file of binary data and stores it in an
-array of doubles. The array size is computed from the size of the
-file. If the vector "data" exists, calling \fBBlt_VectorExists\fR,
-\fBBlt_GetVector\fR is called to get the pointer to the vector.
-Otherwise the routine \fBBlt_CreateVector\fR is called to create a new
-vector and returns a pointer to it. Just like the Tcl interface, both
-a new Tcl command and array variable are created when a new vector is
-created. It doesn't make any difference what the initial size of the
-vector is since it will be reset shortly. The vector is updated when
-\fBlt_ResetVector\fR is called. Blt_ResetVector makes the changes
-visible to the Tcl interface and other vector clients (such as a graph
-widget).
-.sp
-.CS
-#include <tcl.h>
-#include <blt.h>
-...
-Blt_Vector *vecPtr;
-double *newArr;
-FILE *f;
-struct stat statBuf;
-int numBytes, numValues;
-
-f = fopen("binary.dat", "r");
-fstat(fileno(f), &statBuf);
-numBytes = (int)statBuf.st_size;
-
-/* Allocate an array big enough to hold all the data */
-newArr = (double *)malloc(numBytes);
-numValues = numBytes / sizeof(double);
-fread((void *)newArr, numValues, sizeof(double), f);
-fclose(f);
-
-if (Blt_VectorExists(interp, "data")) {
- if (Blt_GetVector(interp, "data", &vecPtr) != TCL_OK) {
- return TCL_ERROR;
- }
-} else {
- if (Blt_CreateVector(interp, "data", 0, &vecPtr) != TCL_OK) {
- return TCL_ERROR;
- }
-}
-/*
- * Reset the vector. Clients will be notified when Tk is idle.
- * TCL_DYNAMIC tells the vector to free the memory allocated
- * if it needs to reallocate or destroy the vector.
- */
-if (Blt_ResetVector(vecPtr, newArr, numValues, numValues,
- TCL_DYNAMIC) != TCL_OK) {
- return TCL_ERROR;
-}
-.CE
-.SH "INCOMPATIBILITIES"
-In previous versions, if the array variable isn't global
-(i.e. local to a Tcl procedure), the vector is automatically
-destroyed when the procedure returns.
-.CS
-proc doit {} {
- # Temporary vector x
- vector x(10)
- set x(9) 2.0
- ...
-}
-.CE
-.PP
-This has changed. Variables are not automatically destroyed when
-their variable is unset. You can restore the old behavior by
-setting the "-watchunset" switch.
-.CE
-.SH KEYWORDS
-vector, graph, widget