Class DensogramPlotter
- java.lang.Object
-
- uk.ac.starlink.ttools.plot2.layer.Pixel1dPlotter<DensogramPlotter.DensoStyle>
-
- uk.ac.starlink.ttools.plot2.layer.DensogramPlotter
-
- All Implemented Interfaces:
Plotter<DensogramPlotter.DensoStyle>
public class DensogramPlotter extends Pixel1dPlotter<DensogramPlotter.DensoStyle>
Plots a histogram-like density map - a one-dimensional colour bar indicating density on the horizontal axis.- Since:
- 20 Feb 2015
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DensogramPlotter.DensoStyle
Plotting style for this class.-
Nested classes/interfaces inherited from class uk.ac.starlink.ttools.plot2.layer.Pixel1dPlotter
Pixel1dPlotter.BinArray, Pixel1dPlotter.Pixel1dPlan
-
-
Field Summary
Fields Modifier and Type Field Description static ConfigKey<java.lang.Integer>
EXTENT_KEY
Config key for the height of the density bar.static ConfigKey<java.lang.Double>
POSITION_KEY
Config key for the position of the density bar.static RampKeySet
RAMP_KEYSET
Config keyset for the colour ramp.-
Fields inherited from class uk.ac.starlink.ttools.plot2.layer.Pixel1dPlotter
KERNEL_KEY, SMOOTHSIZER_KEY, SMOOTHWIDTH_KEY
-
-
Constructor Summary
Constructors Constructor Description DensogramPlotter(FloatingCoord xCoord, boolean hasWeight)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DensogramPlotter.DensoStyle
createStyle(ConfigMap config)
Creates a style that can be used when creating a plot layer.protected void
extendPixel1dCoordinateRanges(Range[] ranges, boolean[] logFlags, DensogramPlotter.DensoStyle style, DataSpec dataSpec, DataStore dataStore)
Performs any required range extension.protected Combiner
getCombiner(DensogramPlotter.DensoStyle style)
Returns the bin aggregation mode implied by a given style.protected LayerOpt
getLayerOpt(DensogramPlotter.DensoStyle style)
Returns the LayerOpt suitable for a given style for this plotter.protected ReportMap
getPixel1dReport(Pixel1dPlotter.Pixel1dPlan plan, DensogramPlotter.DensoStyle style, boolean xLog)
Returns information associated with the plot.protected int
getPixelPadding(DensogramPlotter.DensoStyle style, PlanarSurface surf)
Returns the padding required at both ends of the array of pixel bins for calculations.java.lang.String
getPlotterDescription()
Returns an XML description of this plotter.java.lang.Object
getRangeStyleKey(DensogramPlotter.DensoStyle style)
Returns an opaque object characterising the region of the plot surface covered when using a given plotter style.ConfigKey<?>[]
getStyleKeys()
Returns the configuration keys used to configure style for this plotter.protected void
paintBins(PlanarSurface surface, Pixel1dPlotter.BinArray binArray, DensogramPlotter.DensoStyle style, java.awt.Graphics2D g)
Draws the graphical representation of a given array of counts per horizontal pixel.-
Methods inherited from class uk.ac.starlink.ttools.plot2.layer.Pixel1dPlotter
createKernel, createLayer, getCombinerKey, getCoordGroup, getDataBins, getEffectiveExtent, getPixelWidth, getPlotterIcon, getPlotterName, getWeightCoordIndex, getWeightingDescription, hasReports, readBins
-
-
-
-
Field Detail
-
RAMP_KEYSET
public static final RampKeySet RAMP_KEYSET
Config keyset for the colour ramp.
-
EXTENT_KEY
public static final ConfigKey<java.lang.Integer> EXTENT_KEY
Config key for the height of the density bar.
-
POSITION_KEY
public static final ConfigKey<java.lang.Double> POSITION_KEY
Config key for the position of the density bar.
-
-
Constructor Detail
-
DensogramPlotter
public DensogramPlotter(FloatingCoord xCoord, boolean hasWeight)
Constructor.- Parameters:
xCoord
- X axis coordinatehasWeight
- true to permit histogram weighting
-
-
Method Detail
-
getPlotterDescription
public java.lang.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 thePlotter.createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap)
method.- Returns:
- keys used when creating a style for this plotter.
-
createStyle
public DensogramPlotter.DensoStyle 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 byPlotter.getStyleKeys()
. The return value can be used as input toPlotter.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
-
getRangeStyleKey
public java.lang.Object getRangeStyleKey(DensogramPlotter.DensoStyle style)
Description copied from interface:Plotter
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 (usingextendCoordinateRanges
).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
-
paintBins
protected void paintBins(PlanarSurface surface, Pixel1dPlotter.BinArray binArray, DensogramPlotter.DensoStyle style, java.awt.Graphics2D g)
Description copied from class:Pixel1dPlotter
Draws the graphical representation of a given array of counts per horizontal pixel.- Specified by:
paintBins
in classPixel1dPlotter<DensogramPlotter.DensoStyle>
- Parameters:
surface
- plotting surfacebinArray
- counts per X axis pixelstyle
- plotting styleg
- graphics context
-
getLayerOpt
protected LayerOpt getLayerOpt(DensogramPlotter.DensoStyle style)
Description copied from class:Pixel1dPlotter
Returns the LayerOpt suitable for a given style for this plotter.- Specified by:
getLayerOpt
in classPixel1dPlotter<DensogramPlotter.DensoStyle>
- Parameters:
style
- plot style- Returns:
- layer option flags
-
getPixelPadding
protected int getPixelPadding(DensogramPlotter.DensoStyle style, PlanarSurface surf)
Description copied from class:Pixel1dPlotter
Returns the padding required at both ends of the array of pixel bins for calculations.- Specified by:
getPixelPadding
in classPixel1dPlotter<DensogramPlotter.DensoStyle>
- Parameters:
style
- plotting stylesurf
- plotting surface- Returns:
- padding in pixels required in bin array
-
getCombiner
protected Combiner getCombiner(DensogramPlotter.DensoStyle style)
Description copied from class:Pixel1dPlotter
Returns the bin aggregation mode implied by a given style.- Specified by:
getCombiner
in classPixel1dPlotter<DensogramPlotter.DensoStyle>
- Parameters:
style
- plotting style- Returns:
- pixel bin aggregation mode
-
extendPixel1dCoordinateRanges
protected void extendPixel1dCoordinateRanges(Range[] ranges, boolean[] logFlags, DensogramPlotter.DensoStyle style, DataSpec dataSpec, DataStore dataStore)
Description copied from class:Pixel1dPlotter
Performs any required range extension. May be a no-op.- Specified by:
extendPixel1dCoordinateRanges
in classPixel1dPlotter<DensogramPlotter.DensoStyle>
- Parameters:
ranges
- array of data space dimension ranges to updatelogFlags
- array of linear/log flags corresponding to rangesstyle
- plotting styledataSpec
- data specificationdataStore
- data storage object- See Also:
PlotLayer.extendCoordinateRanges(uk.ac.starlink.ttools.plot.Range[], boolean[], uk.ac.starlink.ttools.plot2.data.DataStore)
-
getPixel1dReport
protected ReportMap getPixel1dReport(Pixel1dPlotter.Pixel1dPlan plan, DensogramPlotter.DensoStyle style, boolean xLog)
Description copied from class:Pixel1dPlotter
Returns information associated with the plot.- Specified by:
getPixel1dReport
in classPixel1dPlotter<DensogramPlotter.DensoStyle>
- Parameters:
plan
- plotting planstyle
- plot stylexLog
- true iff X axis is logarithmic- Returns:
- report info, may be null
- See Also:
Drawing.getReport(java.lang.Object)
-
-