All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Components |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sas.graphics.components.scatterplot
Class ScatterPlot

    com.sas.graphics.components.scatterplot.ScatterPlot

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

    @SASScope(value="ALL")
    public class ScatterPlot

The ScatterPlot component is a Swing component that produces scatter plots that support the visualization of multiple response variables by multiple independent variables. Two-dimensional scatter plots show the relationship of one variable to another, often revealing concentrations or trends in the data. Typically, each variable value on the horizontal axis can have any number of corresponding values on the vertical axis.

A ScatterPlot is similar to a LinePlot and differs as * follows:

- The defaults of a ScatterPlot are set for displaying plot points with no interpolation lines. The defaults of a LinePlot are set to connect plot points with an interpolated line. (Only the defaults differ; either plot can enable or disable the display of plot markers or interpolated lines.)
- A ScatterPlot can use a Size variable to set the size of plot markers. The Size variable is useful for producing Bubble plots. A LinePlot cannot use a Size variable and cannot produce Bubble plots.

Note. This class can be used to render client-side graphs in Java applications or applets. The com.sas.servlet.tbeans.graphics.html.ScatterPlot class can be used to render server-side graphs in Java servlets or JavaServer Pages (JSP). Both classes use the models in the com.sas.graphics.components package.

Topics:
  Minimum Specification
  Functional Overview
  Data Access
  Display Properties
  Titles and Footnotes
  Usage Examples
  Behavior
  Swing-based Samples

Since:
  SAS 9.1
See Also:
  `Variable`, `VariableList`, `PlotVariable`, `PlotVariableList`, `ClassificationVariable`, `ClassificationVariableList`, `ScatterPlotModel`, `ScatterPlotDataModel`, `ScatterPlotTableDataModel`, `ScatterPlotOLAPDataModel`, Serialized Form

Field Summary
`static java.lang.String` | `RB_KEY`
`protected java.awt.event.MouseListener` | `scrollBarListener`

Fields inherited from class com.sas.graphics.components.Graph
`footnoteContainer, titleContainer`

Constructor Summary
`ScatterPlot()` Construct a ScatterPlot applying the default GraphStyle (GraphStyle.STYLE_CONVENTION).
`ScatterPlot(ScatterPlotDataModel scatterPlotDataModel)` Construct a ScatterPlot, assigning scatterPlotDataModel, and using the default GraphStyle (GraphStyle.STYLE_CONVENTION).
`ScatterPlot(ScatterPlotDataModel scatterPlotDataModel, GraphStyle defaultGraphStyle)` Construct a ScatterPlot assigning scatterPlotDataModel and applying graphStyle.

Method Summary
`void` | `applyColorScheme(ColorScheme scheme)` Apply a color scheme on this Graph.
`protected void` | `applyDataModel()` Intended for internalUse only
`protected void` | `applyGraphModel()` For internal use only.
`void` | `applyGraphStyle(GraphStyle graphStyle)` Apply the display properties in the GraphStyle to the ScatterPlot.
`ScatterPlotDataModel` | `getDataModel()` Returns the ScatterPlotDataModel that provides a handle to the data along with any associated mapping properties.
`static com.sas.beans.ExtendedBeanInfo` | `getExtendedBeanInfo()` Returns information used by the `com.sas.beans.Introspector` to augment the automatically introspected information about this ScatterPlot.
`ScatterPlotModel` | `getGraphModel()` Returns the ScatterPlotModel that encapsulates most of the ScatterPlot's display properties.
`PlotImageMapInfo` | `getImageMapInfo()` The PlotImageMapInfo class encapsulates the mapping of regions associated with marker and line elements, labels (for both axes and legends) and values (for both axes and legends) as projected onto the display area along with their associated data.
`boolean` | `isAnimationEnabled()`
`boolean` | `isAutoRepaintEnabled()` Returns whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed.
`void` | `prepareToPaint()` Notify this component that an application is about to call paint directly.
`protected void` | `selectionChanged()` Internal use only.
`void` | `setAnimationEnabled(boolean enabled)`
`void` | `setAutoRepaintEnabled(boolean b)` Sets whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed.
`void` | `setDataModel(ScatterPlotDataModel newDataModel)` Sets the ScatterPlotDataModel which provides a handle to the data along with any associated mapping properties to define the number and arrangement of data elements (that is markers and lines), legend and axes.
`void` | `setDisplayPolicy(int newDisplayPolicy)` Set how the graph is to utilize the display area.
`void` | `setGraphModel(ScatterPlotModel newScatterPlotModel)` Sets a ScatterPlotModel to define most of the ScatterPlot's display properties.
`void` | `setLocale(java.util.Locale locale)` Sets the locale of this component.
`protected void` | `updateDataModelListeners()` Internal use only.

Methods inherited from class com.sas.graphics.components.Graph
`addActionListener, addMouseListener, addMouseMotionListener, addMouseMotionListener, clearSelection, firePropertyChange, getActionProvider, getAppliedColorSchemeName, getAppliedGraphStyleName, getBackground, getBrushBounds, getChannel, getContentsChangedListener, getDefaultGraphStyle, getDefaultHeight, getDefaultWidth, getDisplayPolicy, getFooter, getFootnote, getFootnote1, getFootnote2, getHeader, getListSelectionListener, getLocale, getMessageModel, getMinimumSize, getPreferredSize, getTableModelListener, getTitle, getTitle1, getTitle2, getTitle3, getTitle4, isAppliedGraphStyleModified, paint, paintAll, paintBackground, pick, pick, pickSelected, removeActionListener, select, select, select, select, setActionProvider, setBackground, setBounds, setFooter, setFootnote, setFootnote1, setFootnote2, setHeader, setMessageModel, setPaintContext, setTitle, setTitle1, setTitle2, setTitle3, setTitle4, update, updateDataModelListeners, validateTree`

Field Detail

### RB_KEY

    public static final java.lang.String RB_KEY

See Also:
  Constant Field Values

### scrollBarListener

    protected java.awt.event.MouseListener scrollBarListener

Constructor Detail

### ScatterPlot

    public ScatterPlot()

  Construct a ScatterPlot applying the default GraphStyle (GraphStyle.STYLE_CONVENTION).

### ScatterPlot

    public ScatterPlot(ScatterPlotDataModel scatterPlotDataModel)

  Construct a ScatterPlot, assigning scatterPlotDataModel, and using the default GraphStyle (GraphStyle.STYLE_CONVENTION). The ScatterPlotGraphDataModel is accessible via the getDataModel method.

  A null ScatterPlotDataModel parameter is equivalent to using the default constructor.

  Parameters:
    `scatterPlotDataModel` - the data to be used by this graph
  See Also:
    `GraphStyle`, `ScatterPlotTableDataModel`, `ScatterPlotOLAPDataModel`

### ScatterPlot

    public ScatterPlot(ScatterPlotDataModel scatterPlotDataModel,
                       GraphStyle defaultGraphStyle)

  Construct a ScatterPlot assigning scatterPlotDataModel and applying graphStyle. The ScatterPlotDataModel is accessible via the getDataModel method. The ScatterPlotModel (whose properties are affected by the GraphStyle application) is accessible via the getGraphModel method. The NoteModels (whose properties are affected by the GraphStyle application) are accessible via the getTitle and getFootnote methods. A null ScatterPlotDataModel parameter is equivalent to setDataModel(null); If graphStyle is null then GraphStyle.STYLE_CONVENTION will be applied.

  Parameters:
    `scatterPlotDataModel` - provides a data handle with associated mapping properties
    `defaultGraphStyle` - the set of graph display properties
  See Also:
    `NoteModel`, `ScatterPlotModel`, `ScatterPlotTableDataModel`, `ScatterPlotOLAPDataModel`

Method Detail

### setAnimationEnabled

    public void setAnimationEnabled(boolean enabled)

### isAnimationEnabled

    public boolean isAnimationEnabled()

### setDisplayPolicy

    public void setDisplayPolicy(int newDisplayPolicy)
                          throws java.lang.IllegalArgumentException

  Set how the graph is to utilize the display area. The graph will always utilize all the display area supplied to it however there are occasions when the display area provided to the graph is less than optimal size to draw the graph well. Various factors can contribute to this including font selection, data assignments, number of data observations, the type of graph, wheter or not legends are displayed, etc.

  On the occasion when insufficient display area is available, the graph has to decide whether to use scroll bars and only display a portion of the graph or to draw the entire graph into the available space (shrinking and adjusting portions of the graph as best it can).

  To allow scroll bars use the GraphConstants.DISPLAY_SCROLL_AS_NEEDED or specify GraphConstants.DISPLAY_FIT_TO_SCREEN to force the entire graph into the available display area. Specify GraphConstants.DISPLAY_SCROLL_ENABLED shows zoom scrollbars which appear when the display area is moused over and the chart is forced to show the entire graph in the available display area, however the use can then zoom and scroll to investigate the data further.

  The default value is GraphConstants.DISPLAY_AUTOMATIC. Valid values are:
  GraphConstants.DISPLAY_FIT_TO_SCREEN GraphConstants.DISPLAY_SCROLL_AS_NEEDED GraphConstants.DISPLAY_SCROLL_ENABLED: GraphConstants.DISPLAY_AUTOMATIC:

  Overrides:
    `setDisplayPolicy` in class `Graph`
  Parameters:
    `newDisplayPolicy` - how the Graph should utilize the dislay area
  Throws:
    `java.lang.IllegalArgumentException` - if newDisplayPolicy is invalid.
  See Also:
    `Graph.getDisplayPolicy()`

### prepareToPaint

    public void prepareToPaint()

  Notify this component that an application is about to call paint directly. This method is useful when attempting to get the Graph to draw into an image (or other application provided GraphicsContext).

  As per java standard practices; "paint" should never be called directly by an application. However if it is necessary to render the Graph directly then the use of paintAll(Graphics) or printAll(Graphics) is acceptable.

  Graphs asynchronously update to keep their view in sync with their model properties (Graphmodel, DataModel, NoteModel etc.). A direct call to paintAll or printAll does not allow for the graph to asynchronously sync up with their model proeprties. prepareToPaint provides this synchronization point necessary for the Graphs to update their component structure as needed.

  Note: Used in a headless environment, Graphs will never asynchronously update and therefore require a call to prepareToPaint to render into a GraphicsContext.

  The headless and non-headless cases can be handled slightly differently. In the non-headless case the asynchronous updating needs to be halted. This is done by setting the "autoRepaintEnabled" property to false. The default for autoRepaintEnabled is true, allowing the graph to automatically resync and repaint as model properties are modified.

  Example writing to an image. Note for readability exception handling has been ignored.

       static public void main(String args[])
       {
          BufferedImage bi = new BufferedImage(640,480,BufferedImage.TYPE_INT_RGB);
          Graphics ig = bi.createGraphics();

          // Create Graph
          ScatterPlot graph = new ScatterPlot();

          // This call is not necessary if you are running in a headless environment.
          graph.setAutoRepaintEnabled(false);

          // ... assign data and model properties here ...
          graph.setDataModel(newGraphData());

          {// Render sequence
              graph.setBounds(0,0,bi.getWidth(null),bi.getHeight(null)); // Define the size of the Graph
              graph.addNotify(); // Makes the component displayable.
              graph.prepareToPaint(); // do property synchronization
              graph.paintAll(ig); // render into some graphics context
          }

          // Dispose of image graphics context
          ig.dispose();

          // Save immage to disk
          File file = new File("graph.jpg");
          try
          {
              ImageIO.write(bi, "jpg", file);
          }
          catch (IOException e)
          {
              System.out.println("ImageIO.write failed.");
          }
       }

  Specified by:
    `prepareToPaint` in class `Graph`

### setAutoRepaintEnabled

    public void setAutoRepaintEnabled(boolean b)

  Sets whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed. The default value is true.

  The setting of this property to false implies that the application will be responsible for synchronizing the graph with its models using the prepareToPaint method.

  This method was added to support rendering into an off screen graphics context such as an image.

  Specified by:
    `setAutoRepaintEnabled` in class `Graph`
  Parameters:
    `b` - true means to automatically update
  See Also:
    `isAutoRepaintEnabled()`

### isAutoRepaintEnabled

    public boolean isAutoRepaintEnabled()

  Returns whether or not the graph automatically repaints when any of its properties (contained in associated models GraphModel, DataModel, NoteModel, etc) has changed.

  Specified by:
    `isAutoRepaintEnabled` in class `Graph`
  See Also:
    `setAutoRepaintEnabled(boolean)`

### getExtendedBeanInfo

    public static com.sas.beans.ExtendedBeanInfo getExtendedBeanInfo()

  Returns information used by the `com.sas.beans.Introspector` to augment the automatically introspected information about this ScatterPlot.

  Returns:
    the ExtendedBeanInfo for this class

### setLocale

    public void setLocale(java.util.Locale locale)

  Sets the locale of this component. This is a bound property.

  Overrides:
    `setLocale` in class `java.awt.Component`
  Parameters:
    `locale` - the locale to become this component's locale
  See Also:
    `Graph.getLocale()`

### setGraphModel

    public void setGraphModel(ScatterPlotModel newScatterPlotModel)
                       throws java.lang.IllegalArgumentException

  Sets a ScatterPlotModel to define most of the ScatterPlot's display properties. Modifying any ScatterPlotModel property triggers the ScatterPlot to update. The update is asynchronous and delayed so modifying multiple properties in quick succession will result in only a single update. Use the FullPaintInterface if greater control over the ScatterPlot's paint behavior is necessary.

  Typically applyGraphStyle is used to modify the graphs display properties.

  Parameters:
    `newScatterPlotModel` - the model that encapsulates the ScatterPlot's display properties
  Throws:
    `java.lang.IllegalArgumentException` - if newScatterPlotModel is null.
  See Also:
    `getGraphModel()`, `ScatterPlotModel.apply(com.sas.graphics.components.scatterplot.ScatterPlotModel)`, `GraphStyle`

### getGraphModel

    public ScatterPlotModel getGraphModel()

  Returns the ScatterPlotModel that encapsulates most of the ScatterPlot's display properties.

  Returns:
    the ScatterPlotModel that encapsulates most of the ScatterPlot's display properties
  See Also:
    `setGraphModel(com.sas.graphics.components.scatterplot.ScatterPlotModel)`, `ScatterPlotModel.apply(com.sas.graphics.components.scatterplot.ScatterPlotModel)`

### setDataModel

    public void setDataModel(ScatterPlotDataModel newDataModel)

  Sets the ScatterPlotDataModel which provides a handle to the data along with any associated mapping properties to define the number and arrangement of data elements (that is markers and lines), legend and axes.

  Any change in the ScatterPlotDataModel properties will cause the ScatterPlot to update. The update is asynchronous and delayed so modifying multiple properties in quick succession will result in only a single update. The FullPaintInterface can be used if greater control over the ScatterPlot's paint behavior is needed.

  Note: Data value changes will also trigger ScatterPlot to update.

  A valid ScatterPlotDataModel is required to draw a graph.

  Parameters:
    `newDataModel` - provides a handle to the data along with any associated mapping properties
  See Also:
    `getDataModel()`, `ScatterPlotTableDataModel`, `ScatterPlotOLAPDataModel`

### getDataModel

    public ScatterPlotDataModel getDataModel()

  Returns the ScatterPlotDataModel that provides a handle to the data along with any associated mapping properties.

  Returns:
    the ScatterPlotDataModel that provides a handle to the data along with any associated mapping properties
  See Also:
    `setDataModel(com.sas.graphics.components.scatterplot.ScatterPlotDataModel)`, `ScatterPlotTableDataModel`, `ScatterPlotOLAPDataModel`

### applyGraphStyle

    public void applyGraphStyle(GraphStyle graphStyle)

  Apply the display properties in the GraphStyle to the ScatterPlot. The use of this method is a convenient way to quickly and easily affect the ScatterPlot's appearance is strongly encouraged.

  Some GraphStyle properties like the background fill style will be applied to the ScatterPlot's ScatterPlotModel (thus affecting the ScatterPlotAppearance). Other GraphStyle properties like the title1 text style will be applied to properties on other ScatterPlot models such as the ScatterPlot's title1 NoteModel in this example.

  The GraphStyle enforces certain constraints that are not enforced on a Graph. For example the ScatterPlot supports setting different axis value text styles on different axes (via the ScatterPlotModel's x and y AxisModels) whereas a GraphStyle only supports a single axis value text style property. When a GraphStyle is applied to a ScatterPlot all of the ScatterPlot's axes values use the GraphStyle axis value setting (thus easily enforcing that all axes values are represented in the same font and color). The use of the GraphStyle allows for easier graph customizations while the ScatterPlot models allow for greater customizations when desired.

  Modifying any of the properties in the GraphStyle after this call will have no affect on the ScatterPlot. Likewise modifying any ScatterPlot properties after this call will have no affect on the GraphStyle. This method simply conveys the properties in the GraphStyle onto the ScatterPlot properties.

  A blind PropertyChangeEvent will be fired by the ScatterPlot after the apply is made.

  No action will be taken if a null GraphStyle is passed in.

  Overrides:
    `applyGraphStyle` in class `Graph`
  Parameters:
    `graphStyle` - the set of graph display properties

### applyColorScheme

    public void applyColorScheme(ColorScheme scheme)

  Apply a color scheme on this Graph.

  Overrides:
    `applyColorScheme` in class `Graph`
  Parameters:
    `scheme` - ColorScheme object containing a set of colors for the charts.

### getImageMapInfo

    public PlotImageMapInfo getImageMapInfo()

  The PlotImageMapInfo class encapsulates the mapping of regions associated with marker and line elements, labels (for both axes and legends) and values (for both axes and legends) as projected onto the display area along with their associated data.

  Returns:
    the mapping of regions associated with marker and line elements, labels (for both axes and legends) and values (for both axes and legends) as projected onto the display area along with their associated data.

### applyDataModel

    protected void applyDataModel()

  Description copied from class: `Graph`
  Intended for internalUse only

  Specified by:
    `applyDataModel` in class `Graph`

### applyGraphModel

    protected void applyGraphModel()

  For internal use only.

  Overrides:
    `applyGraphModel` in class `Graph`

### selectionChanged

    protected void selectionChanged()

  Internal use only.

  Specified by:
    `selectionChanged` in class `Graph`

### updateDataModelListeners

    protected void updateDataModelListeners()

  Internal use only.

  Specified by:
    `updateDataModelListeners` in class `Graph`
  See Also:
    `Graph.updateDataModelListeners(Object model, Object selectionModel)`

All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Components |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009 SAS Institute Inc. All Rights Reserved.