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(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(DataGeom, 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(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