Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## uchicago.src.sim.analysis.plot
Class RepastPlotBox

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      uchicago.src.sim.analysis.plot.RepastPlotBox

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

Direct Known Subclasses:
  RepastPlot

    public class RepastPlotBox

extends javax.swing.JPanel

This class provides a labeled box within which to place a data plot. A title, X and Y axis labels, tick marks, and a legend are all supported. Zooming in and out is supported. To zoom in, drag the mouse downwards to draw a box. To zoom out, drag the mouse upward.

The box can be configured either through a file with commands or through direct invocation of the public methods of the class.

When calling the methods, in most cases the changes will not be visible until paint() has been called. To request that this be done, call repaint().

A small set of key bindings are provided for convenience. They are:

- Cntr-c: Export the plot to the clipboard (in PlotML).
- D: Dump the plot to standard output (in PlotML).
- E: Export the plot to standard output in EPS format.
- F: Fill the plot.
- H or ?: Display a simple help message.
- Cntr-D or Q: quit

These commands are provided in a menu by the PlotFrame class.

At this time, the two export commands produce encapsulated postscript tuned for black-and-white printers. In the future, more formats may supported. Also at this time (jdk 1.2), Java's interface the clipboard does not work, so Cntr-c might not accomplish anything. Exporting to the clipboard and to standard output, in theory, is allowed for applets, unlike writing to a file. Thus, these key bindings provide a simple mechanism to obtain a high-resolution image of the plot from an applet, suitable for incorporation in a document. However, in some browsers, exporting to standard out triggers a security violation. You can use Sun's appletviewer instead.

To read commands from a file or URL, the preferred technique is to use one of the classes in the plotml package. That package supports both PlotML, an XML extension for plots, and a historical file format specific to ptplot. The historical file format is understood by the read() method in this class. The syntax of the historical format, documented below, is rudimentary, and will probably not be extended as ptplot evolves. Nonetheless, we document it here since it is directly supported by this class.

The historical format for the file allows any number commands, one per line. Unrecognized commands and commands with syntax errors are ignored. Comments are denoted by a line starting with a pound sign "#". The recognized commands include:

     TitleText: string
     XLabel: string
     YLabel: string

These commands provide a title and labels for the X (horizontal) and Y (vertical) axes. A string is simply a sequence of characters, possibly including spaces. There is no need here to surround them with quotation marks, and in fact, if you do, the quotation marks will be included in the labels.

The ranges of the X and Y axes can be optionally given by commands like:

     XRange: min, max
     YRange: min, max

The arguments min and max are numbers, possibly including a sign and a decimal point. If they are not specified, then the ranges are computed automatically from the data and padded slightly so that datapoints are not plotted on the axes.

The tick marks for the axes are usually computed automatically from the ranges. Every attempt is made to choose reasonable positions for the tick marks regardless of the data ranges (powers of ten multiplied by 1, 2, or 5 are used). However, they can also be specified explicitly using commands like:

     XTicks: label position, label position, ...
     YTicks: label position, label position, ...

A label is a string that must be surrounded by quotation marks if it contains any spaces. A position is a number giving the location of the tick mark along the axis. For example, a horizontal axis for a frequency domain plot might have tick marks as follows:

     XTicks: -PI -3.14159, -PI/2 -1.570795, 0 0, PI/2 1.570795, PI 3.14159

Tick marks could also denote years, months, days of the week, etc.

The X and Y axes can use a logarithmic scale with the following commands:

     XLog: on
     YLog: on

The grid labels represent powers of 10. Note that if a logarithmic scale is used, then the values must be positive. Non-positive values will be silently dropped.

By default, tick marks are connected by a light grey background grid. This grid can be turned off with the following command:

     Grid: off

It can be turned back on with

     Grid: on

Also, by default, the first ten data sets are shown each in a unique color. The use of color can be turned off with the command:

     Color: off

It can be turned back on with

     Color: on

Finally, the rather specialized command

     Wrap: on

enables wrapping of the X (horizontal) axis, which means that if a point is added with X out of range, its X value will be modified modulo the range so that it lies in range. This command only has an effect if the X range has been set explicitly. It is designed specifically to support oscilloscope-like behavior, where the X value of points is increasing, but the display wraps it around to left. A point that lands on the right edge of the X range is repeated on the left edge to give a better sense of continuity. The feature works best when points do land precisely on the edge, and are plotted from left to right, increasing in X.

All of the above commands can also be invoked directly by calling the the corresponding public methods from some Java procedure.

This class uses features of JDK 1.1, and hence if used in an applet, it can only be viewed by a browser that supports JDK 1.1.

This is almost entirely a cut and paste from Ptolemy's Plot class. This approach was necessary as the scope of some methods needed to be changed. See the Ptolemy docs for more information.

Version:
  $Id: RepastPlotBox.java,v 1.10 2004/11/03 19:51:02 jerryvos Exp $
Author:
  Edward A. Lee, Christopher Hylands
See Also:
  Serialized Form

Nested Class Summary
`class` | `RepastPlotBox.DragListener`
`class` | `RepastPlotBox.PtZoomListener`

Nested classes/interfaces inherited from class javax.swing.JPanel
`javax.swing.JPanel.AccessibleJPanel`

Nested classes/interfaces inherited from class javax.swing.JComponent
`javax.swing.JComponent.AccessibleJComponent`

Nested classes/interfaces inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes/interfaces inherited from class java.awt.Component
`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

Field Summary
`protected java.awt.Color` | `_background`
`protected int` | `_bottomPadding`
`protected static java.awt.Color[]` | `_colors`
`java.net.URL` | `_documentBase`
`protected java.awt.Color` | `_foreground`
`protected boolean` | `_grid`
`protected int` | `_height`
`protected int` | `_leftPadding`
`protected static double` | `_LOG10SCALE`
`protected int` | `_lrx`
`protected int` | `_lry`
`protected static int` | `_MAX_MARKS`
`protected static double` | `_PADDING`
`protected boolean` | `_rangesGivenByZooming`
`protected int` | `_rightPadding`
`protected int` | `_topPadding`
`protected int` | `_ulx`
`protected int` | `_uly`
`protected boolean` | `_usecolor`
`protected int` | `_width`
`protected boolean` | `_wrap`
`protected double` | `_xBottom`
`protected double` | `_xhighgiven`
`protected boolean` | `_xlog`
`protected double` | `_xlowgiven`
`protected double` | `_xMax`
`protected double` | `_xMin`
`protected boolean` | `_xRangeGiven`
`protected double` | `_xscale`
`protected double` | `_xTop`
`protected double` | `_yBottom`
`protected double` | `_yhighgiven`
`protected boolean` | `_ylog`
`protected double` | `_ylowgiven`
`protected double` | `_yMax`
`protected double` | `_yMin`
`protected boolean` | `_yRangeGiven`
`protected double` | `_yscale`
`protected double` | `_yTop`
`protected cern.colt.map.OpenIntObjectHashMap` | `dsColorMap`
`protected cern.colt.map.OpenIntIntHashMap` | `dsMarkMap`

Fields inherited from class javax.swing.JComponent
`accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`RepastPlotBox(ZoomListener listener)` Construct a plot box with a default configuration.

Method Summary
`protected void` | `_drawPlot(java.awt.Graphics graphics, boolean clearfirst)` Draw the axes using the current range, label, and title information.
`protected void` | `_drawPoint(java.awt.Graphics graphics, int dataset, long xpos, long ypos, boolean clip)` Put a mark corresponding to the specified dataset at the specified x and y position.
`protected void` | `_help()` Display basic information in its own window.
`protected boolean` | `_parseLine(java.lang.String line)` Parse a line that gives plotting information.
`protected void` | `_setButtonsVisibility(boolean vis)` Deprecated.
`protected void` | `_write(java.io.PrintWriter output)` Write plot information to the specified output stream in PlotML.
`protected void` | `_writeOldSyntax(java.io.PrintWriter output)` Deprecated.
`void` | `addDetailString(java.lang.String detail)` Adds a String to be displayed to the right of the plot
`void` | `addLegend(int dataset, java.lang.String legend)` Add a legend (displayed at the upper right) for the specified data set with the specified string.
`void` | `addLegend(int dataset, java.lang.String legend, java.awt.Color color)`
`void` | `addLegend(int dataset, java.lang.String legend, java.awt.Color color, int markStyle)`
`void` | `addLegend(int dataset, java.lang.String legend, int markStyle)`
`void` | `addXTick(java.lang.String label, double position)` Specify a tick mark for the X axis.
`void` | `addYTick(java.lang.String label, double position)` Specify a tick mark for the Y axis.
`void` | `clear(boolean axes)` If the argument is true, clear the axes.
`void` | `clearDetailStrings()` Clears the list of Strings to be displayed to the right of the plot.
`void` | `export(java.io.OutputStream out)` Export a description of the plot.
`void` | `fillPlot()` Rescale so that the data that is currently plotted just fits.
`boolean` | `getColor()` Return whether the plot uses color.
`static java.awt.Color` | `getColorByName(java.lang.String name)` Convert a color name into a Color.
`java.lang.String` | `getDataurl()` Deprecated.
`java.net.URL` | `getDocumentBase()` Deprecated.
`boolean` | `getGrid()` Return whether the grid is drawn.
`java.awt.image.BufferedImage` | `getImage()`
`java.lang.String` | `getLegend(int dataset)` Get the legend for a dataset, or null if there is none.
`java.awt.Dimension` | `getMinimumSize()` Get the minimum size of this component.
`java.awt.Dimension` | `getPreferredSize()` Get the preferred size of this component.
`java.lang.String` | `getTitle()` Get the title of the graph, or an empty string if there is none.
`java.lang.String` | `getXLabel()` Get the label for the X (horizontal) axis, or null if none has been set.
`boolean` | `getXLog()` Return whether the X axis is drawn with a logarithmic scale.
`double[]` | `getXRange()` Get the X range.
`java.util.Vector[]` | `getXTicks()` Get the X ticks that have been specified, or null if none.
`java.lang.String` | `getYLabel()` Get the label for the Y (vertical) axis, or null if none has been set.
`boolean` | `getYLog()` Return whether the Y axis is drawn with a logarithmic scale.
`double[]` | `getYRange()` Get the Y range.
`java.util.Vector[]` | `getYTicks()` Get the Y ticks that have been specified, or null if none.
`void` | `init()` Deprecated.
`void` | `paint(java.awt.Graphics graphics)` Paint the component contents, which in this base class is only the axes.
`void` | `parseFile(java.lang.String filespec)` Deprecated.
`void` | `parseFile(java.lang.String filespec, java.net.URL documentBase)` Deprecated. This method is deprecated. Use read() instead.
`void` | `read(java.io.InputStream in)` Read commands and/or plot data from an input stream in the old (non-XML) file syntax.
`void` | `read(java.lang.String command)` Read a single line command provided as a string.
`void` | `samplePlot()` Do nothing in this base class.
`void` | `setBackground(java.awt.Color background)` Set the background color.
`void` | `setBounds(int x, int y, int width, int height)` Move and resize this component.
`void` | `setButtons(boolean visible)` If the argument is true, make a fill button visible at the upper right.
`void` | `setColor(boolean useColor)` If the argument is false, draw the plot without using color (in black and white).
`void` | `setDataurl(java.lang.String filespec)` Deprecated.
`void` | `setDocumentBase(java.net.URL documentBase)` Deprecated.
`void` | `setForeground(java.awt.Color foreground)` Set the foreground color.
`void` | `setGrid(boolean grid)` Control whether the grid is drawn.
`void` | `setLabelFont(java.lang.String name)` Set the label font, which is used for axis labels and legend labels.
`void` | `setSize(int width, int height)` Set the size of the plot.
`void` | `setTitle(java.lang.String title)` Set the title of the graph.
`void` | `setTitleFont(java.lang.String name)` Set the title font.
`void` | `setWrap(boolean wrap)` Control whether the X axis is wrapped.
`void` | `setXLabel(java.lang.String label)` Set the label for the X (horizontal) axis.
`void` | `setXLog(boolean xlog)` Specify whether the X axis is drawn with a logarithmic scale.
`void` | `setXRange(double min, double max)` Set the X (horizontal) range of the plot.
`void` | `setYLabel(java.lang.String label)` Set the label for the Y (vertical) axis.
`void` | `setYLog(boolean ylog)` Specify whether the Y axis is drawn with a logarithmic scale.
`void` | `setYRange(double min, double max)` Set the Y (vertical) range of the plot.
`void` | `update(java.awt.Graphics g)` Override update so that it doesn't clear the plot.
`void` | `updateXTick(java.lang.String label, double position, int index)`
`void` | `write(java.io.OutputStream out)` Write the current data and plot configuration to the specified stream in PlotML syntax.
`void` | `write(java.io.OutputStream out, java.lang.String dtd)` Write the current data and plot configuration to the specified stream in PlotML syntax.
`void` | `writeOldSyntax(java.io.OutputStream out)` Deprecated.
`void` | `zoom(double lowx, double lowy, double highx, double highy)` Zoom in or out to the specified rectangle.

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### _yMax

    protected transient double _yMax

### _yMin

    protected transient double _yMin

### _xMax

    protected transient double _xMax

### _xMin

    protected transient double _xMin

### _PADDING

    protected static final transient double _PADDING

See Also:
  Constant Field Values

### _xRangeGiven

    protected transient boolean _xRangeGiven

### _yRangeGiven

    protected transient boolean _yRangeGiven

### _rangesGivenByZooming

    protected transient boolean _rangesGivenByZooming

### _xlowgiven

    protected double _xlowgiven

### _xhighgiven

    protected double _xhighgiven

### _ylowgiven

    protected double _ylowgiven

### _yhighgiven

    protected double _yhighgiven

### _xBottom

    protected double _xBottom

### _xTop

    protected double _xTop

### _yBottom

    protected double _yBottom

### _yTop

    protected double _yTop

### _xlog

    protected boolean _xlog

### _ylog

    protected boolean _ylog

### _LOG10SCALE

    protected static final double _LOG10SCALE

### _grid

    protected boolean _grid

### _wrap

    protected boolean _wrap

### _background

    protected java.awt.Color _background

### _foreground

    protected java.awt.Color _foreground

### _topPadding

    protected int _topPadding

### _bottomPadding

    protected int _bottomPadding

### _rightPadding

    protected int _rightPadding

### _leftPadding

    protected int _leftPadding

### _ulx

    protected int _ulx

### _uly

    protected int _uly

### _lrx

    protected int _lrx

### _lry

    protected int _lry

### _yscale

    protected double _yscale

### _xscale

    protected double _xscale

### _usecolor

    protected boolean _usecolor

### _colors

    protected static java.awt.Color[] _colors

### dsColorMap

    protected cern.colt.map.OpenIntObjectHashMap dsColorMap

### dsMarkMap

    protected cern.colt.map.OpenIntIntHashMap dsMarkMap

### _MAX_MARKS

    protected static final int _MAX_MARKS

See Also:
  Constant Field Values

### _width

    protected int _width

### _height

    protected int _height

### _documentBase

    public java.net.URL _documentBase

Constructor Detail

### RepastPlotBox

    public RepastPlotBox(ZoomListener listener)

  Construct a plot box with a default configuration.

Method Detail

### addLegend

    public void addLegend(int dataset,
                          java.lang.String legend)

  Add a legend (displayed at the upper right) for the specified data set with the specified string. Short strings generally fit better than long strings. If the string is empty, or the argument is null, then no legend is added.

  Parameters:
    `dataset` - The dataset index.
    `legend` - The label for the dataset.

### addLegend

    public void addLegend(int dataset,
                          java.lang.String legend,
                          java.awt.Color color)

### addLegend

    public void addLegend(int dataset,
                          java.lang.String legend,
                          int markStyle)

### addLegend

    public void addLegend(int dataset,
                          java.lang.String legend,
                          java.awt.Color color,
                          int markStyle)

### addDetailString

    public void addDetailString(java.lang.String detail)

  Adds a String to be displayed to the right of the plot

  Parameters:
    `detail` - the String to be displayed

### clearDetailStrings

    public void clearDetailStrings()

  Clears the list of Strings to be displayed to the right of the plot.

### addXTick

    public void addXTick(java.lang.String label,
                         double position)

  Specify a tick mark for the X axis. The label given is placed on the axis at the position given by position. If this is called once or more, automatic generation of tick marks is disabled. The tick mark will appear only if it is within the X range.

  Parameters:
    `label` - The label for the tick mark.
    `position` - The position on the X axis.

### updateXTick

    public void updateXTick(java.lang.String label,
                            double position,
                            int index)

### addYTick

    public void addYTick(java.lang.String label,
                         double position)

  Specify a tick mark for the Y axis. The label given is placed on the axis at the position given by position. If this is called once or more, automatic generation of tick marks is disabled. The tick mark will appear only if it is within the Y range.

  Parameters:
    `label` - The label for the tick mark.
    `position` - The position on the Y axis.

### clear

    public void clear(boolean axes)

  If the argument is true, clear the axes. I.e., set all parameters controlling the axes to their initial conditions. For the change to take effect, call repaint(). If the argument is false, do nothing.

  Parameters:
    `axes` - If true, clear the axes parameters.

### export

    public void export(java.io.OutputStream out)

  Export a description of the plot. Currently, only EPS is supported. But in the future, this may cause a dialog box to open to allow the user to select a format. If the argument is null, then the description goes to the clipboard. Otherwise, it goes to the specified file. To send it to standard output, use `System.out` as an argument.

  Parameters:
    `file` - A file writer to which to send the description.

### fillPlot

    public void fillPlot()

  Rescale so that the data that is currently plotted just fits. This is done based on the protected variables _xBottom, _xTop, _yBottom, and _yTop. It is up to derived classes to ensure that variables are valid. This method calls repaint(), which eventually causes the display to be updated.

### getColor

    public boolean getColor()

  Return whether the plot uses color.

  Returns:
    True if the plot uses color.

### getColorByName

    public static java.awt.Color getColorByName(java.lang.String name)

  Convert a color name into a Color. Currently, only a very limited set of color names is supported: black, white, red, green, and blue.

  Parameters:
    `name` - A color name, or null if not found.
  Returns:
    An instance of Color.

### getDataurl

    public java.lang.String getDataurl()

  Deprecated.

  Get the file specification that was given by setDataurl. This method is deprecated. Use read() instead.

### getDocumentBase

    public java.net.URL getDocumentBase()

  Deprecated.

  Get the document base that was set by setDocumentBase. This method is deprecated. Use read() instead.

### getGrid

    public boolean getGrid()

  Return whether the grid is drawn.

  Returns:
    True if a grid is drawn.

### getLegend

    public java.lang.String getLegend(int dataset)

  Get the legend for a dataset, or null if there is none. The legend would have been set by addLegend().

  Parameters:
    `dataset` - The dataset index.
  Returns:
    The legend label, or null if there is none.

### getMinimumSize

    public java.awt.Dimension getMinimumSize()

  Get the minimum size of this component. This is simply the dimensions specified by setBounds() or setSize().

  Overrides:
    `getMinimumSize` in class `javax.swing.JComponent`
  Returns:
    The minimum size.

### getPreferredSize

    public java.awt.Dimension getPreferredSize()

  Get the preferred size of this component. This is simply the dimensions specified by setBounds() or setSize().

  Overrides:
    `getPreferredSize` in class `javax.swing.JComponent`
  Returns:
    The preferred size.

### getTitle

    public java.lang.String getTitle()

  Get the title of the graph, or an empty string if there is none.

  Returns:
    The title.

### getXLabel

    public java.lang.String getXLabel()

  Get the label for the X (horizontal) axis, or null if none has been set.

  Returns:
    The X label.

### getXLog

    public boolean getXLog()

  Return whether the X axis is drawn with a logarithmic scale.

  Returns:
    True if the X axis is logarithmic.

### getXRange

    public double[] getXRange()

  Get the X range. The returned value is an array where the first element is the minimum and the second element is the maximum. return The current X range.

### getXTicks

    public java.util.Vector[] getXTicks()

  Get the X ticks that have been specified, or null if none. The return value is an array with two vectors, the first of which specifies the X tick locations (as instances of Double), and the second of which specifies the corresponding labels.

  Returns:
    The X ticks.

### getYLabel

    public java.lang.String getYLabel()

  Get the label for the Y (vertical) axis, or null if none has been set.

  Returns:
    The Y label.

### getYLog

    public boolean getYLog()

  Return whether the Y axis is drawn with a logarithmic scale.

  Returns:
    True if the Y axis is logarithmic.

### getYRange

    public double[] getYRange()

  Get the Y range. The returned value is an array where the first element is the minimum and the second element is the maximum. return The current Y range.

### getYTicks

    public java.util.Vector[] getYTicks()

  Get the Y ticks that have been specified, or null if none. The return value is an array with two vectors, the first of which specifies the Y tick locations (as instances of Double), and the second of which specifies the corresponding labels.

  Returns:
    The Y ticks.

### init

    public void init()

  Deprecated.

  Initialize the component, creating the fill button and parsing an input file, if one has been specified. This is deprecated. Call setButtons() and read() instead.

### paint

    public void paint(java.awt.Graphics graphics)

  Paint the component contents, which in this base class is only the axes.

  Overrides:
    `paint` in class `javax.swing.JComponent`
  Parameters:
    `graphics` - The graphics context.

### parseFile

    public void parseFile(java.lang.String filespec)

  Deprecated.

  Syntactic sugar for parseFile(filespec, documentBase). This method is deprecated. Use read() to read the old file format, or use one of the classes in the plotml package to read the XML-based file format.

### parseFile

    public void parseFile(java.lang.String filespec,
                          java.net.URL documentBase)

  Deprecated. This method is deprecated. Use read() instead.

  Open up the input file, which could be stdin, a URL, or a file.

### read

    public void read(java.io.InputStream in)
              throws java.io.IOException

  Read commands and/or plot data from an input stream in the old (non-XML) file syntax. To update the display, call repaint(), or make the plot visible with setVisible(true).

  To read from standard input, use:

           read(System.in);

  To read from a url, use:

           read(url.openStream());

  To read a URL from within an applet, use:

           URL url = new URL(getDocumentBase(), urlSpec);
           read(url.openStream());

  Within an application, if you have an absolute URL, use:

           URL url = new URL(urlSpec);
           read(url.openStream());

  To read from a file, use:

           read(new FileInputStream(filename));

  Parameters:
    `in` - The input stream.
  Throws:
    `java.io.IOException` - If the stream cannot be read.

### read

    public void read(java.lang.String command)

  Read a single line command provided as a string. The commands can be any of those in the ASCII file format.

  Parameters:
    `command` - A command.

### samplePlot

    public void samplePlot()

  Do nothing in this base class. Derived classes might want to override this class to give an example of their use.

### setBackground

    public void setBackground(java.awt.Color background)

  Set the background color.

  Overrides:
    `setBackground` in class `javax.swing.JComponent`
  Parameters:
    `background` - The background color.

### setBounds

    public void setBounds(int x,
                          int y,
                          int width,
                          int height)

  Move and resize this component. The new location of the top-left corner is specified by x and y, and the new size is specified by width and height. This overrides the base class method to make a record of the new size.

  Overrides:
    `setBounds` in class `java.awt.Component`
  Parameters:
    `x` - The new x-coordinate of this component.
    `y` - The new y-coordinate of this component.
    `width` - The new width of this component.
    `height` - The new height of this component.

### setButtons

    public void setButtons(boolean visible)

  If the argument is true, make a fill button visible at the upper right. This button auto-scales the plot. NOTE: The button may infringe on the title space, if the title is long. In an application, it is preferable to provide a menu with the fill command. This way, when printing the plot, the printed plot will not have a spurious button. Thus, this method should be used only by applets, which normally do not have menus.

### setColor

    public void setColor(boolean useColor)

  If the argument is false, draw the plot without using color (in black and white). Otherwise, draw it in color (the default).

  Parameters:
    `useColor` - False to draw in back and white.

### setDataurl

    public void setDataurl(java.lang.String filespec)

  Deprecated.

  Set the file to read when init() is called. This method is deprecated. Use read() instead.

### setDocumentBase

    public void setDocumentBase(java.net.URL documentBase)

  Deprecated.

  Set the document base to used when init() is called to read a URL. This method is deprecated. Use read() instead.

### setForeground

    public void setForeground(java.awt.Color foreground)

  Set the foreground color.

  Overrides:
    `setForeground` in class `javax.swing.JComponent`
  Parameters:
    `foreground` - The foreground color.

### setGrid

    public void setGrid(boolean grid)

  Control whether the grid is drawn.

  Parameters:
    `grid` - If true, a grid is drawn.

### setLabelFont

    public void setLabelFont(java.lang.String name)

  Set the label font, which is used for axis labels and legend labels. The font names understood are those understood by java.awt.Font.decode().

  Parameters:
    `name` - A font name.

### setSize

    public void setSize(int width,
                        int height)

  Set the size of the plot.

  Overrides:
    `setSize` in class `java.awt.Component`
  Parameters:
    `width` - The width, in pixels.
    `height` - The height, in pixels.

### setTitle

    public void setTitle(java.lang.String title)

  Set the title of the graph.

  Parameters:
    `title` - The title.

### setTitleFont

    public void setTitleFont(java.lang.String name)

  Set the title font. The font names understood are those understood by java.awt.Font.decode().

  Parameters:
    `name` - A font name.

### setWrap

    public void setWrap(boolean wrap)

  Control whether the X axis is wrapped. If it is, then X values that are out of range are remapped to be in range using modulo arithmetic.

  Parameters:
    `wrap` - If true, wrapping of the X axis is enabled.

### setXLabel

    public void setXLabel(java.lang.String label)

  Set the label for the X (horizontal) axis.

  Parameters:
    `label` - The label.

### setXLog

    public void setXLog(boolean xlog)

  Specify whether the X axis is drawn with a logarithmic scale.

  Parameters:
    `xlog` - If true, logarithmic axis is used.

### setXRange

    public void setXRange(double min,
                          double max)

  Set the X (horizontal) range of the plot. If this is not done explicitly, then the range is computed automatically from data available when the plot is drawn. If min and max are identical, then the range is arbitrarily spread by 1.

  Parameters:
    `min` - The left extent of the range.
    `max` - The right extent of the range.

### setYLabel

    public void setYLabel(java.lang.String label)

  Set the label for the Y (vertical) axis.

  Parameters:
    `label` - The label.

### setYLog

    public void setYLog(boolean ylog)

  Specify whether the Y axis is drawn with a logarithmic scale.

  Parameters:
    `ylog` - If true, logarithmic axis is used.

### setYRange

    public void setYRange(double min,
                          double max)

  Set the Y (vertical) range of the plot. If this is not done explicitly, then the range is computed automatically from data available when the plot is drawn. If min and max are identical, then the range is arbitrarily spread by 0.1.

  Parameters:
    `min` - The bottom extent of the range.
    `max` - The top extent of the range.

### update

    public void update(java.awt.Graphics g)

  Override update so that it doesn't clear the plot. This prevents flashing of dynamic plots. Note that this means that calls to update are not passed to lightweight components. But currently we have no lightweight components, so this is not a problem.

  Overrides:
    `update` in class `javax.swing.JComponent`

### write

    public void write(java.io.OutputStream out)

  Write the current data and plot configuration to the specified stream in PlotML syntax. PlotML is an XML extension for plot data. The written information is standalone, in that it includes the DTD (document type definition). This makes is somewhat verbose. To get smaller files, use the two argument version of write(). The output is buffered, and is flushed and closed before exiting. Derived classes should override _write() rather than this method.

  Parameters:
    `out` - An output stream.

### write

    public void write(java.io.OutputStream out,
                      java.lang.String dtd)

  Write the current data and plot configuration to the specified stream in PlotML syntax. PlotML is an XML extension for plot data. The written information is not standalone, in that it refers to an external DTD (document type definition). The URL (relative or absolute) for the DTD is given as the second argument. If that argument is null, then standalone file is written, which includes the DTD. The output is buffered, and is flushed and closed before exiting. Derived classes should override _write() rather than this method.

  Parameters:
    `out` - An output stream.
    `dtd` - The reference (URL) for the DTD.

### writeOldSyntax

    public void writeOldSyntax(java.io.OutputStream out)

  Deprecated.

  Write the current data and plot configuration to the specified stream in the old PtPlot syntax. The output is buffered, and is flushed and closed before exiting. Derived classes should override _writeOldSyntax() rather than this method.

  Parameters:
    `out` - An output stream.

### zoom

    public void zoom(double lowx,
                     double lowy,
                     double highx,
                     double highy)

  Zoom in or out to the specified rectangle. This method calls repaint().

  Parameters:
    `lowx` - The low end of the new X range.
    `lowy` - The low end of the new Y range.
    `highx` - The high end of the new X range.
    `highy` - The high end of the new Y range.

### _drawPlot

    protected void _drawPlot(java.awt.Graphics graphics,
                             boolean clearfirst)

  Draw the axes using the current range, label, and title information. If the second argument is true, clear the display before redrawing. This method is called by paint(). To cause it to be called you would normally call repaint(), which eventually causes paint() to be called.

  Parameters:
    `graphics` - The graphics context.
    `clearfirst` - If true, clear the plot before proceeding.

### _drawPoint

    protected void _drawPoint(java.awt.Graphics graphics,
                              int dataset,
                              long xpos,
                              long ypos,
                              boolean clip)

  Put a mark corresponding to the specified dataset at the specified x and y position. The mark is drawn in the current color. In this base class, a point is a filled rectangle 6 pixels across. Note that marks greater than about 6 pixels in size will not look very good since they will overlap axis labels and may not fit well in the legend. The clip argument, if `true`, states that the point should not be drawn if it is out of range.

  Parameters:
    `graphics` - The graphics context.
    `dataset` - The index of the data set.
    `xpos` - The X position.
    `ypos` - The Y position.
    `clip` - If true, do not draw if out of range.

### _help

    protected void _help()

  Display basic information in its own window.

### _parseLine

    protected boolean _parseLine(java.lang.String line)

  Parse a line that gives plotting information. In this base class, only lines pertaining to the title and labels are processed. Everything else is ignored. Return true if the line is recognized.

  Parameters:
    `line` - A line of text.

### _setButtonsVisibility

    protected void _setButtonsVisibility(boolean vis)

  Deprecated.

  Set the visibility of the Fill button. This is deprecated. Use setButtons().

### _write

    protected void _write(java.io.PrintWriter output)

  Write plot information to the specified output stream in PlotML. Derived classes should override this method to first call the parent class method, then add whatever additional information they wish to add to the stream.

  Parameters:
    `output` - A buffered print writer.

### _writeOldSyntax

    protected void _writeOldSyntax(java.io.PrintWriter output)

  Deprecated.

  Write plot information to the specified output stream in the old PtPlot syntax. Derived classes should override this method to first call the parent class method, then add whatever additional information they wish to add to the stream.

  Parameters:
    `output` - A buffered print writer.

### getImage

    public java.awt.image.BufferedImage getImage()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD