|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
ptolemy.plot.PlotBox
ptolemy.plot.Plot
public class Plot
A flexible signal plotter. The plot can be configured and data can be provided either through a file with commands or through direct invocation of the public methods of the class.
When calling the public methods, in most cases the changes will not be visible until paintComponent() is called. To request that this be done, call repaint(). One exception is addPoint(), which makes the new point visible immediately if the plot is visible on the screen and addPoint() is called from the event dispatching thread.
This base class supports a simple file syntax that has largely been replaced by the XML-based PlotML syntax. To read a file or a URL in this older syntax, use the read() method. This older syntax contains 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 those supported by the base class, plus a few more. The commands are case insensitive, but are usually capitalized. The number of data sets to be plotted does not need to be specified. Data sets are added as needed. Each dataset can be optionally identified with color (see the base class) or with unique marks. The style of marks used to denote a data point is defined by one of the following commands:
Marks: none Marks: points Marks: bigdots Marks: dots Marks: various Marks: pixelsHere, "points" are small dots, while "dots" are larger. If "various" is specified, then unique marks are used for the first ten data sets, and then recycled. If "pixels" are specified, then each point is drawn as one pixel. Using no marks is useful when lines connect the points in a plot, which is done by default. However, if persistence is set, then you may want to choose "pixels" because the lines may overlap, resulting in annoying gaps in the drawn line. If the above directive appears before any DataSet directive, then it specifies the default for all data sets. If it appears after a DataSet directive, then it applies only to that data set.
To disable connecting lines, use:
Lines: offTo reenable them, use
Lines: onYou can control the line style on a per dataset basis by adding
LineStyle: solidOther supported line styles are "dotted", "dashed", "dotdashed" and "dotdotdashed". You can also specify "impulses", which are lines drawn from a plotted point down to the x axis. Plots with impulses are often called "stem plots." These are off by default, but can be turned on with the command:
Impulses: onor back off with the command
Impulses: offIf that command appears before any DataSet directive, then the command applies to all data sets. Otherwise, it applies only to the current data set. To create a bar graph, turn off lines and use any of the following commands:
Bars: on Bars: width Bars: width, offsetThe width is a real number specifying the width of the bars in the units of the x axis. The offset is a real number specifying how much the bar of the ith data set is offset from the previous one. This allows bars to "peek out" from behind the ones in front. Note that the frontmost data set will be the first one. To turn off bars, use
Bars: offTo specify data to be plotted, start a data set with the following command:
DataSet: stringHere, string is a label that will appear in the legend. It is not necessary to enclose the string in quotation marks. To start a new dataset without giving it a name, use:
DataSet:In this case, no item will appear in the legend. New datasets are plotted behind the previous ones. If the following directive occurs:
ReuseDataSets: onThen datasets with the same name will be merged. This makes it easier to combine multiple datafiles that contain the same datasets into one file. By default, this capability is turned off, so datasets with the same name are not merged. The data itself is given by a sequence of commands with one of the following forms:
x, y draw: x, y move: x, y x, y, yLowErrorBar, yHighErrorBar draw: x, y, yLowErrorBar, yHighErrorBar move: x, y, yLowErrorBar, yHighErrorBarThe "draw" command is optional, so the first two forms are equivalent. The "move" command causes a break in connected points, if lines are being drawn between points. The numbers x and y are arbitrary numbers as supported by the Double parser in Java. If there are four numbers, then the last two numbers are assumed to be the lower and upper values for error bars. The numbers can be separated by commas, spaces or tabs.
Some of the methods, such as those that add points a plot, are executed in the event thread, possibly some time after they are called. If they are called from a thread different from the event thread, then the order in which changes to the plot take effect may be surprising. We recommend that any code you write that changes the plot in visible ways be executed in the event thread. You can accomplish this using the following template:
Runnable doAction = new Runnable() { public void run() { ... make changes here (e.g. setMarksStyle()) ... } }; plot.deferIfNecessary(doAction);
This plotter has some limitations:
_gridInit()
method in the PlotBox class.
Yellow (cxh) |
Yellow (cxh) |
Nested Class Summary | |
---|---|
private class |
Plot.Bin
A bin is represents a number of points that are all displayed on the same x position. |
private static class |
Plot.Format
|
Nested classes/interfaces inherited from class ptolemy.plot.PlotBox |
---|
PlotBox.ButtonListener, PlotBox.CommandListener, PlotBox.DragListener, PlotBox.ZoomListener |
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 | |
---|---|
private double |
_barOffset
|
private boolean |
_bars
|
private double |
_barWidth
|
private java.util.ArrayList<java.util.ArrayList<Plot.Bin>> |
_bins
An arraylist of the bins in the plot. |
private boolean |
_connected
|
protected int |
_currentdataset
The current dataset. |
private static float |
_DEFAULT_WIDTH
The initial default width. |
private int |
_diameter
|
private static int |
_ERRORBAR_LEG_LENGTH
|
private boolean |
_firstInSet
|
private java.util.ArrayList<Plot.Format> |
_formats
|
private java.awt.Graphics |
_graphics
Cached copy of graphics, needed to reset when we are exporting to EPS. |
private boolean |
_impulses
|
private static java.lang.Long |
_INITIAL_PREVIOUS_VALUE
Initial value for elements in _prevx and _prevy that indicate we have not yet seen data. |
private java.util.HashMap<java.lang.Integer,PlotPoint> |
_lastPointWithExtraDot
|
private static java.awt.BasicStroke |
_LINE_STROKE1
|
private static java.awt.BasicStroke |
_LINE_STROKE2
|
private static java.lang.String[] |
_LINE_STYLES_ARRAY
True if different line styles should be used. |
private boolean |
_lineStyles
True if different line styles should be used. |
private boolean |
_markDisconnections
True when disconnections should be marked. |
protected int |
_marks
An indicator of the marks style. |
private static int |
_MAX_MARKS
|
private int |
_maxDataset
|
private boolean |
_needBinRedraw
|
private boolean |
_needPlotRefill
|
private java.util.ArrayList<java.lang.Integer> |
_pointInBinOffset
Points in bins have an absolute index within the virtual array of all points that once existed in Plot. |
protected java.util.ArrayList<java.util.ArrayList<PlotPoint>> |
_points
A vector of datasets. |
private int |
_pointsPersistence
|
private java.util.ArrayList<java.lang.Long> |
_prevErasedxpos
|
private java.util.ArrayList<java.lang.Long> |
_prevErasedypos
|
private java.util.ArrayList<java.lang.Long> |
_prevxpos
|
private java.util.ArrayList<java.lang.Long> |
_prevypos
|
private int |
_radius
|
private boolean |
_reuseDatasets
|
private boolean |
_sawFirstDataSet
|
private java.util.ArrayList<java.lang.Integer> |
_scheduledBinsToAdd
|
private java.util.ArrayList<java.lang.Integer> |
_scheduledBinsToErase
|
private boolean |
_showing
|
private float |
_width
The width of the current stroke. |
private double |
_xPersistence
|
private boolean |
_xyInvalid
|
Fields inherited from class ptolemy.plot.PlotBox |
---|
_background, _bottomPadding, _colors, _documentBase, _foreground, _grid, _height, _leftPadding, _LOG10SCALE, _lrx, _lry, _originalXhigh, _originalXlow, _originalXRangeGiven, _originalYhigh, _originalYlow, _originalYRangeGiven, _padding, _plotImage, _preferredHeight, _preferredWidth, _rangesGivenByZooming, _rightPadding, _specifiedPlotRectangle, _topPadding, _ulx, _uly, _usecolor, _wrap, _wrapHigh, _wrapLow, _xBottom, _xhighgiven, _xlog, _xlowgiven, _xMax, _xMin, _xRangeGiven, _xscale, _xTop, _yBottom, _yhighgiven, _ylog, _ylowgiven, _yMax, _yMin, _yRangeGiven, _yscale, _yTop, PTPLOT_RELEASE |
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.print.Printable |
---|
NO_SUCH_PAGE, PAGE_EXISTS |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
Plot()
|
Method Summary | |
---|---|
private boolean |
_addLegendIfNecessary(boolean connected)
|
private void |
_addPoint(int dataset,
double x,
double y,
double yLowEB,
double yHighEB,
boolean connected,
boolean errorBar)
|
private void |
_addPointToBin(int dataset,
PlotPoint point,
int pointIndex)
Add point to the corresponding Bin. |
protected void |
_checkDatasetIndex(int dataset)
Check the argument to ensure that it is a valid data set index. |
private void |
_clear(boolean format)
|
private void |
_clear(int dataset)
Clear the plot of data points in the specified dataset. |
private void |
_dividePointsIntoBins()
Subdivide all points into different bins. |
protected void |
_drawBar(java.awt.Graphics graphics,
int dataset,
long xpos,
long ypos,
boolean clip)
Draw bar from the specified point to the y axis. |
private void |
_drawBin(java.awt.Graphics graphics,
int dataset,
int binIndex)
|
protected void |
_drawErrorBar(java.awt.Graphics graphics,
int dataset,
long xpos,
long yLowEBPos,
long yHighEBPos,
boolean clip)
Draw an error bar for the specified yLowEB and yHighEB values. |
protected void |
_drawImpulse(java.awt.Graphics graphics,
long xpos,
long ypos,
boolean clip)
Draw a line from the specified point to the y axis. |
protected void |
_drawLine(java.awt.Graphics graphics,
int dataset,
long startx,
long starty,
long endx,
long endy,
boolean clip)
Draw a line from the specified starting point to the specified ending point. |
protected void |
_drawLine(java.awt.Graphics graphics,
int dataset,
long startx,
long starty,
long endx,
long endy,
boolean clip,
float width)
Draw a line from the specified starting point to the specified ending point. |
protected void |
_drawPlot(java.awt.Graphics graphics,
boolean clearfirst,
java.awt.Rectangle drawRectangle)
Draw the axes and then plot all points. |
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. |
private void |
_drawPoint(java.awt.Graphics graphics,
int dataset,
long xpos,
long ypos,
boolean clip,
int marks)
Put a mark corresponding to the specified dataset at the specified x and y position. |
private void |
_eraseFirstBin(int dataset)
|
private void |
_erasePoint(int dataset,
int index)
|
private void |
_fillPlot()
|
private boolean |
_isConnected(int dataset)
|
protected boolean |
_parseLine(java.lang.String line)
Parse a line that gives plotting information. |
private void |
_resetColorForDrawing(java.awt.Graphics graphics,
boolean forceExorWithBackground)
Reset the color for drawing. |
protected void |
_resetScheduledTasks()
Reset a scheduled redraw tasks. |
private void |
_scheduleBinRedrawAdd(int dataset,
boolean binAdded)
Schedule a bin to be (re)drawn due to the addition of bin. |
private void |
_scheduleBinRedrawRemove(int dataset,
int nbrOfElementsToErase)
Schedule a bin to be (re)drawn due to the removal of a bin. |
protected void |
_scheduledRedraw()
Perform a scheduled redraw. |
private void |
_setColorForDrawing(java.awt.Graphics graphics,
int dataset,
boolean forceExorWithBackground)
Set the color for drawing. |
protected void |
_setWidth(java.awt.Graphics graphics,
float width)
If the graphics argument is an instance of Graphics2D, then set the current stroke to the specified width. |
protected void |
_writeOldSyntax(java.io.PrintWriter output)
Deprecated. |
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 |
addPoint(int dataset,
double x,
double y,
boolean connected)
In the specified data set, add the specified x, y point to the plot. |
void |
addPointWithErrorBars(int dataset,
double x,
double y,
double yLowEB,
double yHighEB,
boolean connected)
In the specified data set, add the specified x, y point to the plot with error bars. |
void |
clear(boolean format)
Clear the plot of all data points. |
void |
clear(int dataset)
Clear the plot of data points in the specified dataset. |
void |
erasePoint(int dataset,
int index)
Erase the point at the given index in the given dataset. |
void |
fillPlot()
Rescale so that the data that is currently plotted just fits. |
boolean |
getConnected()
Return whether the default is to connect subsequent points with a line. |
boolean |
getImpulses()
Return whether a line will be drawn from any plotted point down to the x axis. |
boolean |
getLineStyles()
Return false if setLineStyles() has not yet been called or if setLineStyles(false) has been called, which signifies that different line styles are not to be used. |
java.lang.String |
getMarksStyle()
Get the marks style, which is one of "none", "points", "dots", or "various". |
int |
getMaxDataSets()
Deprecated. |
int |
getNumDataSets()
Return the actual number of data sets. |
boolean |
getReuseDatasets()
Return false if setReuseDatasets() has not yet been called or if setReuseDatasets(false) has been called. |
void |
markDisconnections(boolean value)
Mark the disconnections with a Dot in case value equals true, otherwise these points are not marked. |
void |
parseFile(java.lang.String filespec,
java.net.URL documentBase)
Deprecated. |
void |
read(java.io.InputStream inputStream)
Read a file with the old syntax (non-XML). |
void |
samplePlot()
Create a sample plot. |
void |
setBars(boolean on)
Turn bars on or off (for bar charts). |
void |
setBars(double width,
double offset)
Turn bars on and set the width and offset. |
void |
setConnected(boolean on)
If the argument is true, then the default is to connect subsequent points with a line. |
void |
setConnected(boolean on,
int dataset)
If the first argument is true, then by default for the specified dataset, points will be connected by a line. |
void |
setImpulses(boolean on)
If the argument is true, then a line will be drawn from any plotted point down to the x axis. |
void |
setImpulses(boolean on,
int dataset)
If the first argument is true, then a line will be drawn from any plotted point in the specified dataset down to the x axis. |
void |
setLineStyle(java.lang.String styleString,
int dataset)
Set the style of the lines joining marks. |
void |
setLineStyles(boolean lineStyles)
If the argument is true, draw the data sets with different line styles. |
void |
setMarksStyle(java.lang.String style)
Set the marks style to "none", "points", "dots", or "various". |
void |
setMarksStyle(java.lang.String style,
int dataset)
Set the marks style to "none", "points", "dots", "various", or "pixels" for the specified dataset. |
void |
setNumSets(int numSets)
Deprecated. |
void |
setPointsPersistence(int persistence)
Calling this method with a positive argument sets the persistence of the plot to the given number of points. |
void |
setReuseDatasets(boolean on)
If the argument is true, then datasets with the same name are merged into a single dataset. |
void |
setXPersistence(double persistence)
Calling this method with a positive argument sets the persistence of the plot to the given width in units of the horizontal axis. |
void |
writeData(java.io.PrintWriter output)
Write plot data information to the specified output stream in PlotML. |
void |
writeFormat(java.io.PrintWriter output)
Write plot format information to the specified output stream in PlotML, an XML scheme. |
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, getMinimumSize, 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, paint, paintBorder, paintChildren, 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, update |
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 |
---|
protected int _currentdataset
protected volatile int _marks
protected java.util.ArrayList<java.util.ArrayList<PlotPoint>> _points
private boolean _markDisconnections
private volatile double _barOffset
private boolean _bars
private volatile double _barWidth
private java.util.ArrayList<java.util.ArrayList<Plot.Bin>> _bins
private boolean _connected
private int _diameter
private static final float _DEFAULT_WIDTH
private static final int _ERRORBAR_LEG_LENGTH
private boolean _firstInSet
private java.util.ArrayList<Plot.Format> _formats
private java.awt.Graphics _graphics
private boolean _impulses
private static final java.lang.Long _INITIAL_PREVIOUS_VALUE
private java.util.HashMap<java.lang.Integer,PlotPoint> _lastPointWithExtraDot
private static final java.awt.BasicStroke _LINE_STROKE1
private static final java.awt.BasicStroke _LINE_STROKE2
private boolean _lineStyles
private static java.lang.String[] _LINE_STYLES_ARRAY
private int _maxDataset
private static final int _MAX_MARKS
private boolean _needBinRedraw
private boolean _needPlotRefill
private java.util.ArrayList<java.lang.Integer> _pointInBinOffset
private int _pointsPersistence
private java.util.ArrayList<java.lang.Long> _prevxpos
private java.util.ArrayList<java.lang.Long> _prevypos
private java.util.ArrayList<java.lang.Long> _prevErasedxpos
private java.util.ArrayList<java.lang.Long> _prevErasedypos
private int _radius
private boolean _reuseDatasets
private boolean _sawFirstDataSet
private java.util.ArrayList<java.lang.Integer> _scheduledBinsToAdd
private java.util.ArrayList<java.lang.Integer> _scheduledBinsToErase
private boolean _showing
private double _xPersistence
private boolean _xyInvalid
private float _width
Constructor Detail |
---|
public Plot()
Method Detail |
---|
public void addLegend(int dataset, java.lang.String legend)
addLegend
in class PlotBox
dataset
- The dataset index.legend
- The label for the dataset.PlotBox.renameLegend(int, String)
public void addPoint(int dataset, double x, double y, boolean connected)
In order to work well with swing and be thread safe, this method actually defers execution to the event dispatch thread, where all user interface actions are performed. Thus, the point will not be added immediately (unless you call this method from within the event dispatch thread). All the methods that do this deferring coordinate so that they are executed in the order that you called them.
dataset
- The data set index.x
- The X position of the new point.y
- The Y position of the new point.connected
- If true, a line is drawn to connect to the previous
point.public void addPointWithErrorBars(int dataset, double x, double y, double yLowEB, double yHighEB, boolean connected)
In order to work well with swing and be thread safe, this method actually defers execution to the event dispatch thread, where all user interface actions are performed. Thus, the point will not be added immediately (unless you call this method from within the event dispatch thread). All the methods that do this deferring coordinate so that they are executed in the order that you called them.
dataset
- The data set index.x
- The X position of the new point.y
- The Y position of the new point.yLowEB
- The low point of the error bar.yHighEB
- The high point of the error bar.connected
- If true, a line is drawn to connect to the previous
point.public void clear(boolean format)
clear
in class PlotBox
format
- If true, clear the format controls as well.
In order to work well with swing and be thread safe, this method actually defers execution to the event dispatch thread, where all user interface actions are performed. Thus, the clear will not be executed immediately (unless you call this method from within the event dispatch thread). All the methods that do this deferring coordinate so that they are executed in the order that you called them.
public void clear(int dataset)
In order to work well with swing and be thread safe, this method actually defers execution to the event dispatch thread, where all user interface actions are performed. Thus, the point will not be added immediately (unless you call this method from within the event dispatch thread). If you call this method, the addPoint() method, and the erasePoint() method in any order, they are assured of being processed in the order that you called them.
dataset
- The dataset to clear.public void erasePoint(int dataset, int index)
In order to work well with swing and be thread safe, this method actually defers execution to the event dispatch thread, where all user interface actions are performed. Thus, the point will not be erased immediately (unless you call this method from within the event dispatch thread). All the methods that do this deferring coordinate so that they are executed in the order that you called them.
dataset
- The data set index.index
- The index of the point to erase.public void fillPlot()
In order to work well with swing and be thread safe, this method actually defers execution to the event dispatch thread, where all user interface actions are performed. Thus, the fill will not occur immediately (unless you call this method from within the event dispatch thread). All the methods that do this deferring coordinate so that they are executed in the order that you called them.
fillPlot
in class PlotBox
public boolean getConnected()
setConnected(boolean)
public boolean getImpulses()
setImpulses(boolean)
public boolean getLineStyles()
setLineStyles(boolean)
public java.lang.String getMarksStyle()
setMarksStyle(java.lang.String)
@Deprecated public int getMaxDataSets()
public int getNumDataSets()
public boolean getReuseDatasets()
setReuseDatasets(boolean)
@Deprecated public void parseFile(java.lang.String filespec, java.net.URL documentBase)
parseFile
in class PlotBox
public void markDisconnections(boolean value)
value
- True when disconnections should be marked.public void read(java.io.InputStream inputStream) throws java.io.IOException
read
in class PlotBox
inputStream
- The input stream.
java.io.IOException
- If the stream cannot be read.public void samplePlot()
samplePlot
in class PlotBox
public void setBars(boolean on)
on
- If true, turn bars on.public void setBars(double width, double offset)
width
- The width of the bars.offset
- The offset per data set.public void setConnected(boolean on)
on
- If true, draw lines between points.setConnected(boolean, int)
,
getConnected()
public void setConnected(boolean on, int dataset)
on
- If true, draw lines between points.dataset
- The dataset to which this should apply.setConnected(boolean)
,
getConnected()
public void setImpulses(boolean on)
on
- If true, draw a stem plot.getImpulses()
public void setImpulses(boolean on, int dataset)
on
- If true, draw a stem plot.dataset
- The dataset to which this should apply.public void setLineStyle(java.lang.String styleString, int dataset)
styleString
- A string specifying the color for points.
The following styles are permitted: "solid", "dotted",
"dashed", "dotdashed", "dotdotdashed".dataset
- The data set index.public void setLineStyles(boolean lineStyles)
lineStyles
- True if the data sets are to be drawn in different
line styles.getLineStyles()
public void setMarksStyle(java.lang.String style)
style
- A string specifying the style for points.getMarksStyle()
public void setMarksStyle(java.lang.String style, int dataset)
style
- A string specifying the style for points.dataset
- The dataset to which this should apply.getMarksStyle()
@Deprecated public void setNumSets(int numSets)
numSets
- The number of data sets.public void setPointsPersistence(int persistence)
Setting the persistence greater than zero forces the plot to be drawn in XOR mode, which allows points to be quickly and efficiently erased. However, there is a bug in Java (as of version 1.3), where XOR mode does not work correctly with double buffering. Thus, if you call this with an argument greater than zero, then we turn off double buffering for this panel and all of its parents. This actually happens on the next call to addPoint().
persistence
- Number of points to persist for.public void setReuseDatasets(boolean on)
on
- If true, then merge datasets.getReuseDatasets()
public void setXPersistence(double persistence)
Setting the X persistence greater than zero forces the plot to be drawn in XOR mode, which allows points to be quickly and efficiently erased. However, there is a bug in Java (as of version 1.3), where XOR mode does not work correctly with double buffering. Thus, if you call this with an argument greater than zero, then we turn off double buffering for this panel and all of its parents. This actually happens on the next call to addPoint().
persistence
- Persistence in units of the horizontal axis.public void writeData(java.io.PrintWriter output)
writeData
in class PlotBox
output
- A buffered print writer.public void writeFormat(java.io.PrintWriter output)
writeFormat
in class PlotBox
output
- A buffered print writer.protected void _checkDatasetIndex(int dataset)
dataset
- The data set index.protected void _drawBar(java.awt.Graphics graphics, int dataset, long xpos, long ypos, boolean clip)
graphics
- The graphics context.dataset
- The index of the dataset.xpos
- The x position.ypos
- The y position.clip
- If true, then do not draw outside the range.protected void _drawErrorBar(java.awt.Graphics graphics, int dataset, long xpos, long yLowEBPos, long yHighEBPos, boolean clip)
graphics
- The graphics context.dataset
- The index of the dataset.xpos
- The x position.yLowEBPos
- The lower y position of the error bar.yHighEBPos
- The upper y position of the error bar.clip
- If true, then do not draw above the range.protected void _drawImpulse(java.awt.Graphics graphics, long xpos, long ypos, boolean clip)
graphics
- The graphics context.xpos
- The x position.ypos
- The y position.clip
- If true, then do not draw outside the range.protected void _drawLine(java.awt.Graphics graphics, int dataset, long startx, long starty, long endx, long endy, boolean clip)
graphics
- The graphics context.dataset
- The index of the dataset.startx
- The starting x position.starty
- The starting y position.endx
- The ending x position.endy
- The ending y position.clip
- If true, then do not draw outside the range.protected void _drawLine(java.awt.Graphics graphics, int dataset, long startx, long starty, long endx, long endy, boolean clip, float width)
graphics
- The graphics context.dataset
- The index of the dataset.startx
- The starting x position.starty
- The starting y position.endx
- The ending x position.endy
- The ending y position.clip
- If true, then do not draw outside the range.width
- The thickness of the line.protected void _drawPlot(java.awt.Graphics graphics, boolean clearfirst, java.awt.Rectangle drawRectangle)
Note that this is synchronized so that points are not added by other threads while the drawing is occurring. This method should be called only from the event dispatch thread, consistent with swing policy.
_drawPlot
in class PlotBox
graphics
- The graphics context.clearfirst
- If true, clear the plot before proceeding.drawRectangle
- The Rectangle to draw in.protected void _drawPoint(java.awt.Graphics graphics, int dataset, long xpos, long ypos, boolean clip)
_drawPoint
in class PlotBox
graphics
- The graphics context.dataset
- The index of the dataset.xpos
- The x position.ypos
- The y position.clip
- If true, then do not draw outside the range.protected boolean _parseLine(java.lang.String line)
_parseLine
in class PlotBox
line
- A command line.
protected void _resetScheduledTasks()
_resetScheduledTasks
in class PlotBox
protected void _scheduledRedraw()
_scheduledRedraw
in class PlotBox
protected void _setWidth(java.awt.Graphics graphics, float width)
graphics
- The graphics object.width
- The width.@Deprecated protected void _writeOldSyntax(java.io.PrintWriter output)
_writeOldSyntax
in class PlotBox
output
- A buffered print writer.private boolean _addLegendIfNecessary(boolean connected)
private void _addPoint(int dataset, double x, double y, double yLowEB, double yHighEB, boolean connected, boolean errorBar)
private void _addPointToBin(int dataset, PlotPoint point, int pointIndex)
private void _clear(boolean format)
private void _clear(int dataset)
private void _dividePointsIntoBins()
private void _drawBin(java.awt.Graphics graphics, int dataset, int binIndex)
private void _drawPoint(java.awt.Graphics graphics, int dataset, long xpos, long ypos, boolean clip, int marks)
graphics
- The graphics context.dataset
- The index of the dataset.xpos
- The x position.ypos
- The y position.clip
- If true, then do not draw outside the range.marks
- The marks that have to be used for plotting the point.private void _eraseFirstBin(int dataset)
private void _erasePoint(int dataset, int index)
private void _fillPlot()
private boolean _isConnected(int dataset)
private void _resetColorForDrawing(java.awt.Graphics graphics, boolean forceExorWithBackground)
graphics
- The graphics context.forceExorWithBackground
- Restore the paint made back from exor modeprivate void _scheduleBinRedrawAdd(int dataset, boolean binAdded)
private void _scheduleBinRedrawRemove(int dataset, int nbrOfElementsToErase)
private void _setColorForDrawing(java.awt.Graphics graphics, int dataset, boolean forceExorWithBackground)
graphics
- The graphics context.dataset
- The index of the dataset.forceExorWithBackground
- Force to go into exor mode.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |