Interface Plotter<S extends Style>

All Known Subinterfaces:
ModePlotter<S>, ShapeModePlotter
All Known Implementing Classes:
AbstractKernelDensityPlotter, AbstractPlotter, ArrayShapePlotter, CombineArrayPlotter, ContourPlotter, DensogramPlotter, FillPlotter, FixedKernelDensityPlotter, FunctionPlotter, GridPlotter, HealpixPlotter, HistogramPlotter, KnnKernelDensityPlotter, LabelPlotter, Line3dPlotter, LinearFitPlotter, LineCombineArrayPlotter, LinePlotter, MarkCombineArrayPlotter, Pixel1dPlotter, ShapePlotter, SimpleDecalPlotter, SkyDensityPlotter, SkyGridPlotter, SpectrogramPlotter, SphereGridPlotter, SpotPlotter, Stats1Plotter, TracePlotter

public interface Plotter<S extends Style>
A Plotter can produce PlotLayers given data and appropriate configuration. It can also report what data coordinates and style configuration information are needed for the plot. This self-describing nature means that a plotting framework can largely build a user interface automatically from a Plotter instance.

A Plotter also acts as part of an identifier for the type of plot being performed, which is necessary for determining PlotLayer equality; two PlotLayers are equivalent if they match in point of DataSpec, Style and Plotter.

Since:
11 Feb 2013
Author:
Mark Taylor
  • Method Summary

    Modifier and Type
    Method
    Description
    createLayer(DataGeom pointDataGeom, DataSpec dataSpec, S style)
    Creates a PlotLayer based on the given geometry, data and style.
    Creates a style that can be used when creating a plot layer.
    Returns an object describing which data coordinates are used for this plotter and how they are arranged in supplied DataSpec objects.
    Returns an XML description of this plotter.
    Returns an icon for this plotter for use in user interface.
    Returns the name of this plotter for use in user interface.
    Returns an opaque object characterising the region of the plot surface covered when using a given plotter style.
    Returns the configuration keys used to configure style for this plotter.
    boolean
    Indicates whether the drawings produced by this plotter will return general interest report information to upstream plotting code.
  • Method Details

    • getPlotterName

      String getPlotterName()
      Returns the name of this plotter for use in user interface.
      Returns:
      user-directed plotter name
    • getPlotterIcon

      Icon getPlotterIcon()
      Returns an icon for this plotter for use in user interface.
      Returns:
      plotter icon
    • getPlotterDescription

      String getPlotterDescription()
      Returns an XML description of this plotter.

      Note: really this should appear at the LayerType level.

      Returns:
      one or more <p> elements
    • getCoordGroup

      CoordGroup getCoordGroup()
      Returns an object describing which data coordinates are used for this plotter and how they are arranged in supplied DataSpec objects.
      Returns:
      coordinate group
    • getStyleKeys

      ConfigKey<?>[] getStyleKeys()
      Returns the configuration keys used to configure style for this plotter. The keys in the return value are used in the map supplied to the createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap) method.
      Returns:
      keys used when creating a style for this plotter.
    • createStyle

      S createStyle(ConfigMap config) throws ConfigException
      Creates a style that can be used when creating a plot layer. The keys that are significant in the supplied config map are those returned by getStyleKeys(). The return value can be used as input to createLayer(uk.ac.starlink.ttools.plot2.DataGeom, uk.ac.starlink.ttools.plot2.data.DataSpec, S).
      Parameters:
      config - map of style configuration items
      Returns:
      plotter-specific plot style
      Throws:
      ConfigException
    • hasReports

      boolean hasReports()
      Indicates whether the drawings produced by this plotter will return general interest report information to upstream plotting code.
      Returns:
      true if the plot report may return interesting information
      See Also:
    • getRangeStyleKey

      @Equality Object getRangeStyleKey(S style)
      Returns an opaque object characterising the region of the plot surface covered when using a given plotter style. If this object changes between layers produced by this plotter, it provides a hint that it may be necessary to redetermine the axis ranges (using extendCoordinateRanges).

      In many cases, such as scatter-plot-like plotters, the range is determined only by the coordinate data (managed by DataSpec inputs) so a null value may be returned. This method is chiefly required by histogram-like plotters for which the region on the plot surface is not the union of the input positions.

      Parameters:
      style - plot style to assess
      Returns:
      opaque object with equality semantics, or null if axis range is not a function of style
    • createLayer

      PlotLayer createLayer(DataGeom pointDataGeom, DataSpec dataSpec, S style)
      Creates a PlotLayer based on the given geometry, data and style.

      The style parameter is the result of a call to createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap).

      The dataSpec parameter must contain the coordinates defined by this plotter's CoordGroup.

      The pointDataGeom parameter is only used if the CoordGroup.getBasicPositionCount() or CoordGroup.getExtraPositionCount() method from this plotter's CoordGroup return a non-zero value, otherwise the plot does not have point positions.

      It is legal to supply null for any of the parameters; if insufficient data is supplied to generate a plot, then the method should return null.

      Creating a layer should be cheap; layers may be created and not used.

      Parameters:
      pointDataGeom - indicates base position coordinates and their mapping to points in the data space
      dataSpec - specifies the data required for the plot
      style - data style as obtained from createStyle
      Returns:
      new plot layer, or null if no drawing will take place