Class TracePlotter

All Implemented Interfaces:
Plotter<TracePlotter.TraceStyle>

public abstract class TracePlotter extends AbstractPlotter<TracePlotter.TraceStyle>
Plots a line through a cloud of points in 2d, tracing a given quantile or pair of quantiles at each column (or row) of pixels.
Since:
9 Dec 2016
Author:
Mark Taylor
  • Field Details

    • HORIZONTAL_KEY

      public static final ConfigKey<Boolean> HORIZONTAL_KEY
      Key to configure whether trace is vertical or horizontal.
    • THICK_KEY

      public static final ConfigKey<Integer> THICK_KEY
      Key to configure line thickness.
    • QUANTILES_KEY

      public static final ConfigKey<Subrange> QUANTILES_KEY
      Key to configure target quantile range.
    • SMOOTHWIDTH_KEY

      public static final ReportKey<Double> SMOOTHWIDTH_KEY
      Report key for smoothing width.
    • SMOOTHSIZER_KEY

      public static final ConfigKey<BinSizer> SMOOTHSIZER_KEY
      Config key for smoothing width configuration.
    • KERNEL_KEY

      public static final ConfigKey<Kernel1dShape> KERNEL_KEY
      Config key for smoothing kernel shape.
  • Constructor Details

    • TracePlotter

      public TracePlotter(String name, Icon icon, CoordGroup coordGrp, boolean hasVertical, String basicDescription, TracePlotter.QJoin dfltJoin)
      Constructor.
      Parameters:
      name - plotter name
      icon - plotter icon
      coordGrp - coordinate group
      hasVertical - true iff vertical fill is offered (otherwise only horizontal)
      basicDescription - main part of XML description, may be augmented by the base class
      dfltJoin - default join mode
  • Method Details

    • getJoinModeKey

      public ConfigKey<TracePlotter.QJoin> getJoinModeKey()
      Returns the config key for the Join Mode used by this plotter.
      Returns:
      join mode config key
    • getPlotterDescription

      public String getPlotterDescription()
      Description copied from interface: Plotter
      Returns an XML description of this plotter.

      Note: really this should appear at the LayerType level.

      Returns:
      one or more <p> elements
    • getStyleKeys

      public ConfigKey<?>[] getStyleKeys()
      Description copied from interface: Plotter
      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 Plotter.createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap) method.
      Returns:
      keys used when creating a style for this plotter.
    • createStyle

      public TracePlotter.TraceStyle createStyle(ConfigMap config)
      Description copied from interface: Plotter
      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 Plotter.getStyleKeys(). The return value can be used as input to Plotter.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
    • createLayer

      public PlotLayer createLayer(DataGeom geom, DataSpec dataSpec, TracePlotter.TraceStyle style)
      Description copied from interface: Plotter
      Creates a PlotLayer based on the given geometry, data and style.

      The style parameter is the result of a call to Plotter.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:
      geom - 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
    • createFillPlan

      @Slow protected abstract FillPlan createFillPlan(Surface surface, DataSpec dataSpec, DataGeom geom, TracePlotter.TraceStyle style, DataStore dataStore)
      Creates a plan object suitable for this layer.
      Parameters:
      surface - plot surface
      dataSpec - data spec
      geom - geom
      style - style
      dataStore - data store
      Returns:
      populated plan
    • createPointsTracePlotter

      public static TracePlotter createPointsTracePlotter(boolean hasVertical)
      Creates a TracePlotter instance for standard 2-d point cloud data.
      Parameters:
      hasVertical - true iff vertical fill is offered (otherwise only horizontal)
      Returns:
      plotter instance
    • createArraysTracePlotter

      public static TracePlotter createArraysTracePlotter(boolean hasVertical)
      Creates a TracePlotter instance for X/Y array data.
      Parameters:
      hasVertical - true iff vertical fill is offered (otherwise only horizontal)
      Returns:
      plotter instance