Class FunctionPlotter
- java.lang.Object
-
- uk.ac.starlink.ttools.plot2.layer.AbstractPlotter<FunctionPlotter.FunctionStyle>
-
- uk.ac.starlink.ttools.plot2.layer.FunctionPlotter
-
- All Implemented Interfaces:
Plotter<FunctionPlotter.FunctionStyle>
public class FunctionPlotter extends AbstractPlotter<FunctionPlotter.FunctionStyle>
Dataless plotter that plots an analytic function. JEL expressions are supplied to define the function. The geometry is parameterised by theFunctionPlotter.FuncAxis
interface, which in principle allows functions of any geometric variable to be specified.- Since:
- 15 Feb 2013
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
FunctionPlotter.FuncAxis
Defines the geometric role of the dependent and independent variables for a function.static class
FunctionPlotter.FunctionStyle
Style class associated with this plotter.
-
Field Summary
Fields Modifier and Type Field Description static ConfigKey<java.lang.String>
FEXPR_KEY
Config key for the function expression.static FunctionPlotter
PLANE
FunctionPlotter instance for a 2-d plotting surface.static ConfigKey<java.lang.String>
XNAME_KEY
Config key for the independent variable name.
-
Constructor Summary
Constructors Constructor Description FunctionPlotter(FunctionPlotter.FuncAxis[] axes)
Constructs a plotter with a given set of axis geometry options.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PlotLayer
createLayer(DataGeom geom, DataSpec dataSpec, FunctionPlotter.FunctionStyle style)
Creates a PlotLayer based on the given geometry, data and style.FunctionPlotter.FunctionStyle
createStyle(ConfigMap config)
Creates a style that can be used when creating a plot layer.ConfigKey<?>[]
getFunctionStyleKeys()
Returns the subset of the style keys which defines the function itself.java.lang.String
getPlotterDescription()
Returns an XML description of this plotter.ConfigKey<?>[]
getStyleKeys()
Returns the configuration keys used to configure style for this plotter.-
Methods inherited from class uk.ac.starlink.ttools.plot2.layer.AbstractPlotter
getCoordGroup, getPlotterIcon, getPlotterName, getRangeStyleKey, hasReports
-
-
-
-
Field Detail
-
PLANE
public static final FunctionPlotter PLANE
FunctionPlotter instance for a 2-d plotting surface.
-
XNAME_KEY
public static final ConfigKey<java.lang.String> XNAME_KEY
Config key for the independent variable name.
-
FEXPR_KEY
public static final ConfigKey<java.lang.String> FEXPR_KEY
Config key for the function expression.
-
-
Constructor Detail
-
FunctionPlotter
public FunctionPlotter(FunctionPlotter.FuncAxis[] axes)
Constructs a plotter with a given set of axis geometry options.- Parameters:
axes
- options for function variable definitions
-
-
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.
-
getFunctionStyleKeys
public ConfigKey<?>[] getFunctionStyleKeys()
Returns the subset of the style keys which defines the function itself.- Returns:
- style keys for function definition
-
createStyle
public FunctionPlotter.FunctionStyle createStyle(ConfigMap config) throws ConfigException
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
- Throws:
ConfigException
-
createLayer
public PlotLayer createLayer(DataGeom geom, DataSpec dataSpec, FunctionPlotter.FunctionStyle 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 toPlotter.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 theCoordGroup.getBasicPositionCount()
orCoordGroup.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 spacedataSpec
- specifies the data required for the plotstyle
- data style as obtained fromcreateStyle
- Returns:
- new plot layer, or null if no drawing will take place
-
-