org.jfree.chart.axis
Class ValueAxis

java.lang.Object
  |
  +--org.jfree.chart.axis.Axis
        |
        +--org.jfree.chart.axis.ValueAxis
All Implemented Interfaces:
AxisConstants, java.io.Serializable
Direct Known Subclasses:
DateAxis, NumberAxis

public abstract class ValueAxis
extends Axis
implements java.io.Serializable

The base class for axes that display value data, where values are measured using the double primitive. There are subclasses that use Number and Date objects, but these values are eventually converted to a double representation.

Author:
David Gilbert
See Also:
Serialized Form

Field Summary
static boolean DEFAULT_AUTO_RANGE
          The default auto-range value.
static double DEFAULT_AUTO_RANGE_MINIMUM_SIZE
          The default minimum auto range.
static boolean DEFAULT_AUTO_TICK_UNIT_SELECTION
          The default auto-tick-unit-selection value.
static boolean DEFAULT_INVERTED
          The default inverted flag setting.
static double DEFAULT_LOWER_BOUND
          The default lower bound for the axis.
static double DEFAULT_LOWER_MARGIN
          The default value for the lower margin (0.05 = 5%).
static Range DEFAULT_RANGE
          The default axis range.
static double DEFAULT_UPPER_BOUND
          The default upper bound for the axis.
static double DEFAULT_UPPER_MARGIN
          The default value for the upper margin (0.05 = 5%).
static int MAXIMUM_TICK_COUNT
          The maximum tick count.
 
Fields inherited from interface org.jfree.chart.axis.AxisConstants
BOTTOM, DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_VISIBLE, DEFAULT_TICK_LABEL_FONT, DEFAULT_TICK_LABEL_INSETS, DEFAULT_TICK_LABEL_PAINT, DEFAULT_TICK_LABELS_VISIBLE, DEFAULT_TICK_MARK_INSIDE_LENGTH, DEFAULT_TICK_MARK_OUTSIDE_LENGTH, DEFAULT_TICK_MARK_PAINT, DEFAULT_TICK_MARK_STROKE, DEFAULT_TICK_MARKS_VISIBLE, LEFT, RIGHT, TOP
 
Constructor Summary
protected ValueAxis(java.lang.String label, TickUnits standardTickUnits)
          Constructs a value axis.
 
Method Summary
protected abstract  void autoAdjustRange()
          Automatically determines the maximum and minimum values on the axis to 'fit' the data.
 void centerRange(double value)
          Centers the axis range about the specified value.
 double getAnchorValue()
          Returns the anchor value for this axis.
 double getAutoRangeMinimumSize()
          Returns the minimum size allowed for the axis range when it is automatically calculated.
protected  int getAutoTickIndex()
          Returns the auto tick index.
 double getFixedAutoRange()
          Returns the fixed auto range.
 double getLowerMargin()
          Returns the margin (a percentage of the current range) by which the lower bound for the axis is less than the minimum data value.
 double getMaximumAxisValue()
          Returns the maximum value for the axis.
 double getMinimumAxisValue()
          Returns the minimum value for the axis.
 Range getRange()
          Returns the range for the axis.
 TickUnits getStandardTickUnits()
          Returns the standard tick units for the axis.
 double getUpperMargin()
          Returns the margin (a percentage of the current range) by which the upper bound for the axis exceeds the maximum data value.
 boolean isAutoRange()
          Returns true if the axis range is automatically adjusted to fit the data.
 boolean isAutoTickUnitSelection()
          Returns a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units.
 boolean isInverted()
          Returns a flag that controls the direction of values on the axis.
 void resizeRange(double percent)
          Increases or decreases the axis range by the specified percentage, about the central value.
 void resizeRange(double percent, double anchorValue)
          Increases or decreases the axis range by the specified percentage, about the specified anchor value.
 void setAnchoredRange(double range)
          Sets the axis range so the the anchor value is in the middle of the axis, and the overall range is equal to the value specified.
 void setAnchorValue(double value)
          Sets the anchor value for this axis.
protected  void setAnchorValueAttribute(double value)
          Sets the anchor value, with no other side effects.
 void setAutoRange(boolean auto)
          Sets a flag that determines whether or not the axis range is automatically adjusted to fit the data, and notifies registered listeners that the axis has been modified.
protected  void setAutoRange(boolean auto, boolean notify)
          Sets the auto range attribute.
 void setAutoRangeMinimumSize(double size)
          Sets the auto range minimum size, with no other side effects.
 void setAutoRangeMinimumSize(double size, boolean notify)
          Sets the minimum size allowed for the axis range when it is automatically calculated.
protected  void setAutoTickIndex(int index)
          Sets the auto tick index.
 void setAutoTickUnitSelection(boolean flag)
          Sets a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units.
 void setAutoTickUnitSelection(boolean flag, boolean notify)
          Sets a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units.
 void setFixedAutoRange(double length)
          Sets the fixed auto range for the axis.
 void setInverted(boolean flag)
          Sets a flag that controls the direction of values on the axis, and notifies registered listeners that the axis has changed.
 void setLowerMargin(double margin)
          Sets the lower margin for the axis, as a percentage of the current range.
 void setMaximumAxisValue(double max)
          Sets the maximum value for the axis.
 void setMinimumAxisValue(double min)
          Sets the minimum value for the axis.
 void setRange(double lower, double upper)
          Sets the axis range.
 void setRange(Range range)
          Sets the upper and lower bounds for the axis.
 void setRangeAboutValue(double value, double length)
          Sets the axis range, where the new range is 'size' in length, and centered on 'value'.
protected  void setRangeAttribute(Range range)
          Sets the range attribute without any other side effects.
 void setStandardTickUnits(TickUnits collection)
          Sets the collection of tick units for the axis, and notifies registered listeners that the axis has changed.
 void setUpperMargin(double margin)
          Sets the upper margin for the axis, as a percentage of the current range.
abstract  double translateJava2DtoValue(float java2DValue, java.awt.geom.Rectangle2D dataArea)
          Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified dataArea.
abstract  double translateValueToJava2D(double dataValue, java.awt.geom.Rectangle2D dataArea)
          Converts a data value to a coordinate in Java2D space, assuming that the axis runs along one edge of the specified dataArea.
 
Methods inherited from class org.jfree.chart.axis.Axis
addChangeListener, configure, draw, drawHorizontalLabel, drawVerticalLabel, equals, getFixedDimension, getLabel, getLabelFont, getLabelInsets, getLabelPaint, getMaxTickLabelWidth, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, getTicks, isCompatiblePlot, isTickLabelsVisible, isTickMarksVisible, isVisible, notifyListeners, refreshTicks, removeChangeListener, setFixedDimension, setLabel, setLabelFont, setLabelInsets, setLabelPaint, setPlot, setTickLabelFont, setTickLabelInsets, setTickLabelPaint, setTickLabelsVisible, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarksVisible, setVisible
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_RANGE

public static final Range DEFAULT_RANGE
The default axis range.


DEFAULT_AUTO_RANGE

public static final boolean DEFAULT_AUTO_RANGE
The default auto-range value.

See Also:
Constant Field Values

DEFAULT_INVERTED

public static final boolean DEFAULT_INVERTED
The default inverted flag setting.

See Also:
Constant Field Values

DEFAULT_AUTO_RANGE_MINIMUM_SIZE

public static final double DEFAULT_AUTO_RANGE_MINIMUM_SIZE
The default minimum auto range.

See Also:
Constant Field Values

DEFAULT_LOWER_MARGIN

public static final double DEFAULT_LOWER_MARGIN
The default value for the lower margin (0.05 = 5%).

See Also:
Constant Field Values

DEFAULT_UPPER_MARGIN

public static final double DEFAULT_UPPER_MARGIN
The default value for the upper margin (0.05 = 5%).

See Also:
Constant Field Values

DEFAULT_LOWER_BOUND

public static final double DEFAULT_LOWER_BOUND
The default lower bound for the axis.

See Also:
Constant Field Values

DEFAULT_UPPER_BOUND

public static final double DEFAULT_UPPER_BOUND
The default upper bound for the axis.

See Also:
Constant Field Values

DEFAULT_AUTO_TICK_UNIT_SELECTION

public static final boolean DEFAULT_AUTO_TICK_UNIT_SELECTION
The default auto-tick-unit-selection value.

See Also:
Constant Field Values

MAXIMUM_TICK_COUNT

public static final int MAXIMUM_TICK_COUNT
The maximum tick count.

See Also:
Constant Field Values
Constructor Detail

ValueAxis

protected ValueAxis(java.lang.String label,
                    TickUnits standardTickUnits)
Constructs a value axis.

Parameters:
label - the axis label.
standardTickUnits - a collection of standard tick units.
Method Detail

isInverted

public boolean isInverted()
Returns a flag that controls the direction of values on the axis.

For a regular axis, values increase from left to right (for a horizontal axis) and bottom to top (for a vertical axis). When the axis is 'inverted', the values increase in the opposite direction.

Returns:
the flag.

setInverted

public void setInverted(boolean flag)
Sets a flag that controls the direction of values on the axis, and notifies registered listeners that the axis has changed.

Parameters:
flag - the flag.

isAutoRange

public boolean isAutoRange()
Returns true if the axis range is automatically adjusted to fit the data.

Returns:
the auto-range flag.

setAutoRange

public void setAutoRange(boolean auto)
Sets a flag that determines whether or not the axis range is automatically adjusted to fit the data, and notifies registered listeners that the axis has been modified.

Parameters:
auto - the new value of the flag.

setAutoRange

protected void setAutoRange(boolean auto,
                            boolean notify)
Sets the auto range attribute. If the notify flag is set, an AxisChangeEvent is sent to registered listeners.

Parameters:
auto - the new value of the flag.
notify - notify listeners?

getAutoRangeMinimumSize

public double getAutoRangeMinimumSize()
Returns the minimum size allowed for the axis range when it is automatically calculated.

Returns:
the minimum range.

setAutoRangeMinimumSize

public void setAutoRangeMinimumSize(double size)
Sets the auto range minimum size, with no other side effects.

Parameters:
size - the new size.

setAutoRangeMinimumSize

public void setAutoRangeMinimumSize(double size,
                                    boolean notify)
Sets the minimum size allowed for the axis range when it is automatically calculated.

If requested, an AxisChangeEvent is forwarded to all registered listeners.

Parameters:
size - the new minimum.
notify - notify listeners?

getUpperMargin

public double getUpperMargin()
Returns the margin (a percentage of the current range) by which the upper bound for the axis exceeds the maximum data value.

Returns:
the upper margin.

setUpperMargin

public void setUpperMargin(double margin)
Sets the upper margin for the axis, as a percentage of the current range.

This margin is added only when the axis range is auto-calculated.

The default is 5 percent.

Parameters:
margin - the new margin.

getLowerMargin

public double getLowerMargin()
Returns the margin (a percentage of the current range) by which the lower bound for the axis is less than the minimum data value.

Returns:
the lower margin.

setLowerMargin

public void setLowerMargin(double margin)
Sets the lower margin for the axis, as a percentage of the current range.

This margin is added only when the axis range is auto-calculated.

The default is 5 percent.

Parameters:
margin - the new margin.

getFixedAutoRange

public double getFixedAutoRange()
Returns the fixed auto range.

Returns:
the length.

setFixedAutoRange

public void setFixedAutoRange(double length)
Sets the fixed auto range for the axis.

Parameters:
length - the range length.

getMinimumAxisValue

public double getMinimumAxisValue()
Returns the minimum value for the axis.

Returns:
the minimum value for the axis.

setMinimumAxisValue

public void setMinimumAxisValue(double min)
Sets the minimum value for the axis.

Registered listeners are notified that the axis has been modified.

Parameters:
min - the new minimum.

getMaximumAxisValue

public double getMaximumAxisValue()
Returns the maximum value for the axis.

Returns:
the maximum value.

setMaximumAxisValue

public void setMaximumAxisValue(double max)
Sets the maximum value for the axis.

Registered listeners are notified that the axis has been modified.

Parameters:
max - the new maximum.

getRange

public Range getRange()
Returns the range for the axis.

Returns:
the axis range.

setRange

public void setRange(Range range)
Sets the upper and lower bounds for the axis. Registered listeners are notified of the change.

As a side-effect, the auto-range flag is set to false.

Parameters:
range - the new range.

setRangeAttribute

protected void setRangeAttribute(Range range)
Sets the range attribute without any other side effects.

Parameters:
range - the range.

setRange

public void setRange(double lower,
                     double upper)
Sets the axis range.

Parameters:
lower - the lower axis limit.
upper - the upper axis limit.

setRangeAboutValue

public void setRangeAboutValue(double value,
                               double length)
Sets the axis range, where the new range is 'size' in length, and centered on 'value'.

Parameters:
value - the central value.
length - the range length.

isAutoTickUnitSelection

public boolean isAutoTickUnitSelection()
Returns a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units.

Returns:
a flag indicating whether or not the tick unit is automatically selected.

setAutoTickUnitSelection

public void setAutoTickUnitSelection(boolean flag)
Sets a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units. If the flag is changed, registered listeners are notified that the chart has changed.

Parameters:
flag - the new value of the flag.

setAutoTickUnitSelection

public void setAutoTickUnitSelection(boolean flag,
                                     boolean notify)
Sets a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units.

Parameters:
flag - the new value of the flag.
notify - notify listeners?

getStandardTickUnits

public TickUnits getStandardTickUnits()
Returns the standard tick units for the axis.

If autoTickUnitSelection is on, the tick unit for the axis will be automatically selected from this collection.

Returns:
the standard tick units.

setStandardTickUnits

public void setStandardTickUnits(TickUnits collection)
Sets the collection of tick units for the axis, and notifies registered listeners that the axis has changed.

If the autoTickUnitSelection flag is true, a tick unit will be selected from this collection automatically (to ensure that labels do not overlap).

Parameters:
collection - the tick unit collection.

getAnchorValue

public double getAnchorValue()
Returns the anchor value for this axis.

Returns:
the anchor value.

setAnchorValue

public void setAnchorValue(double value)
Sets the anchor value for this axis.

Parameters:
value - the new anchor value.

setAnchorValueAttribute

protected void setAnchorValueAttribute(double value)
Sets the anchor value, with no other side effects.

Parameters:
value - the value.

translateValueToJava2D

public abstract double translateValueToJava2D(double dataValue,
                                              java.awt.geom.Rectangle2D dataArea)
Converts a data value to a coordinate in Java2D space, assuming that the axis runs along one edge of the specified dataArea.

Note that it is possible for the coordinate to fall outside the plotArea.

Parameters:
dataValue - the data value.
dataArea - the area for plotting the data.
Returns:
the Java2D coordinate.

translateJava2DtoValue

public abstract double translateJava2DtoValue(float java2DValue,
                                              java.awt.geom.Rectangle2D dataArea)
Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified dataArea.

Parameters:
java2DValue - the coordinate in Java2D space.
dataArea - the area in which the data is plotted.
Returns:
the data value.

autoAdjustRange

protected abstract void autoAdjustRange()
Automatically determines the maximum and minimum values on the axis to 'fit' the data.


setAnchoredRange

public void setAnchoredRange(double range)
Sets the axis range so the the anchor value is in the middle of the axis, and the overall range is equal to the value specified.

Parameters:
range - the range.

centerRange

public void centerRange(double value)
Centers the axis range about the specified value.

Parameters:
value - the center value.

resizeRange

public void resizeRange(double percent)
Increases or decreases the axis range by the specified percentage, about the central value.

To double the length of the axis range, use 200% (2.0). To halve the length of the axis range, use 50% (0.5).

Parameters:
percent - the resize factor.

resizeRange

public void resizeRange(double percent,
                        double anchorValue)
Increases or decreases the axis range by the specified percentage, about the specified anchor value.

To double the length of the axis range, use 200% (2.0). To halve the length of the axis range, use 50% (0.5).

Parameters:
percent - the resize factor.
anchorValue - the new central value after the resize.

getAutoTickIndex

protected int getAutoTickIndex()
Returns the auto tick index.

Returns:
the auto tick index.

setAutoTickIndex

protected void setAutoTickIndex(int index)
Sets the auto tick index.

Parameters:
index - the new value.