Class ValueAxis

java.lang.Object
org.jfree.chart.axis.Axis
org.jfree.chart.axis.ValueAxis
All Implemented Interfaces:
Serializable, Cloneable, org.jfree.util.PublicCloneable
Direct Known Subclasses:
DateAxis, NumberAxis

public abstract class ValueAxis
extends Axis
implements Cloneable, org.jfree.util.PublicCloneable, Serializable
The base class for axes that display value data, where values are measured using the double primitive. The two key subclasses are DateAxis and NumberAxis.
See Also:
Serialized Form
  • Field Details

    • 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
  • Method Details

    • isVerticalTickLabels

      public boolean isVerticalTickLabels()
      Returns true if the tick labels should be rotated (to vertical), and false otherwise.
      Returns:
      true or false.
    • setVerticalTickLabels

      public void setVerticalTickLabels​(boolean flag)
      Sets the flag that controls whether the tick labels are displayed vertically (that is, rotated 90 degrees from horizontal).

      If the flag is changed, an AxisChangeEvent is sent to all registered listeners.

      Parameters:
      flag - the flag.
    • isPositiveArrowVisible

      public boolean isPositiveArrowVisible()
      Returns a flag that controls whether or not the axis line has an arrow drawn that points in the positive direction for the axis.
      Returns:
      A boolean.
    • setPositiveArrowVisible

      public void setPositiveArrowVisible​(boolean visible)
      Sets a flag that controls whether or not the axis lines has an arrow drawn that points in the positive direction for the axis, and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      visible - the flag.
    • isNegativeArrowVisible

      public boolean isNegativeArrowVisible()
      Returns a flag that controls whether or not the axis line has an arrow drawn that points in the negative direction for the axis.
      Returns:
      A boolean.
    • setNegativeArrowVisible

      public void setNegativeArrowVisible​(boolean visible)
      Sets a flag that controls whether or not the axis lines has an arrow drawn that points in the negative direction for the axis, and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      visible - the flag.
    • getUpArrow

      public Shape getUpArrow()
      Returns a shape that can be displayed as an arrow pointing upwards at the end of an axis line.
      Returns:
      A shape (never null).
    • setUpArrow

      public void setUpArrow​(Shape arrow)
      Sets the shape that can be displayed as an arrow pointing upwards at the end of an axis line and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      arrow - the arrow shape (null not permitted).
    • getDownArrow

      public Shape getDownArrow()
      Returns a shape that can be displayed as an arrow pointing downwards at the end of an axis line.
      Returns:
      A shape (never null).
    • setDownArrow

      public void setDownArrow​(Shape arrow)
      Sets the shape that can be displayed as an arrow pointing downwards at the end of an axis line and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      arrow - the arrow shape (null not permitted).
    • getLeftArrow

      public Shape getLeftArrow()
      Returns a shape that can be displayed as an arrow pointing left at the end of an axis line.
      Returns:
      A shape (never null).
    • setLeftArrow

      public void setLeftArrow​(Shape arrow)
      Sets the shape that can be displayed as an arrow pointing left at the end of an axis line and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      arrow - the arrow shape (null not permitted).
    • getRightArrow

      public Shape getRightArrow()
      Returns a shape that can be displayed as an arrow pointing right at the end of an axis line.
      Returns:
      A shape (never null).
    • setRightArrow

      public void setRightArrow​(Shape arrow)
      Sets the shape that can be displayed as an arrow pointing rightwards at the end of an axis line and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      arrow - the arrow shape (null not permitted).
    • reserveSpace

      public AxisSpace reserveSpace​(Graphics2D g2, Plot plot, Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge, AxisSpace space, boolean isOpositeAxisVisible)
      Returns the space required to draw the axis.
      Specified by:
      reserveSpace in class Axis
      Parameters:
      g2 - the graphics device.
      plot - the plot that the axis belongs to.
      plotArea - the area within which the plot should be drawn.
      edge - the axis location.
      space - the space already reserved (for other axes).
      Returns:
      The space required to draw the axis (including pre-reserved space).
    • 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.
    • 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 and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      size - the 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?
    • getLowerMargin

      public double getLowerMargin()
      Returns the lower margin for the axis, expressed as a percentage of the axis range. This controls the space added to the lower end of the axis when the axis range is automatically calculated (it is ignored when the axis range is set explicitly). The default value is 0.05 (five percent).
      Returns:
      The lower margin.
    • setLowerMargin

      public void setLowerMargin​(double margin)
      Sets the lower margin for the axis (as a percentage of the axis range) and sends an AxisChangeEvent to all registered listeners. This margin is added only when the axis range is auto-calculated - if you set the axis range manually, the margin is ignored.
      Parameters:
      margin - the margin percentage (for example, 0.05 is five percent).
    • getUpperMargin

      public double getUpperMargin()
      Returns the upper margin for the axis, expressed as a percentage of the axis range. This controls the space added to the lower end of the axis when the axis range is automatically calculated (it is ignored when the axis range is set explicitly). The default value is 0.05 (five percent).
      Returns:
      The upper margin.
    • setUpperMargin

      public void setUpperMargin​(double margin)
      Sets the upper margin for the axis (as a percentage of the axis range) and sends an AxisChangeEvent to all registered listeners. This margin is added only when the axis range is auto-calculated - if you set the axis range manually, the margin is ignored.
      Parameters:
      margin - the margin percentage (for example, 0.05 is five percent).
    • 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.
    • getLowerBound

      public double getLowerBound()
      Returns the lower bound of the axis range.
      Returns:
      The lower bound.
    • setLowerBound

      public void setLowerBound​(double min)
      Sets the lower bound for the axis range. An AxisChangeEvent is sent to all registered listeners.
      Parameters:
      min - the new minimum.
    • getUpperBound

      public double getUpperBound()
      Returns the upper bound for the axis range.
      Returns:
      The upper bound.
    • setUpperBound

      public void setUpperBound​(double max)
      Sets the upper bound for the axis range. An AxisChangeEvent is sent to all registered listeners.
      Parameters:
      max - the new maximum.
    • getRange

      public Range getRange()
      Returns the range for the axis.
      Returns:
      The axis range (never null).
    • setRange

      public void setRange​(Range range)
      Sets the range attribute and sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false.
      Parameters:
      range - the range (null not permitted).
    • setRange

      public void setRange​(Range range, boolean turnOffAutoRange, boolean notify)
      Sets the range for the axis, if requested, sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false (optional).
      Parameters:
      range - the range (null not permitted).
      turnOffAutoRange - a flag that controls whether or not the auto range is turned off.
      notify - a flag that controls whether or not listeners are notified.
    • setRange

      public void setRange​(double lower, double upper)
      Sets the axis range and sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false.
      Parameters:
      lower - the lower axis limit.
      upper - the upper axis limit.
    • setRangeWithMargins

      public void setRangeWithMargins​(Range range)
      Sets the range for the axis (after first adding the current margins to the specified range) and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      range - the range (null not permitted).
    • setRangeWithMargins

      public void setRangeWithMargins​(Range range, boolean turnOffAutoRange, boolean notify)
      Sets the range for the axis after first adding the current margins to the range and, if requested, sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false (optional).
      Parameters:
      range - the range (excluding margins, null not permitted).
      turnOffAutoRange - a flag that controls whether or not the auto range is turned off.
      notify - a flag that controls whether or not listeners are notified.
    • setRangeWithMargins

      public void setRangeWithMargins​(double lower, double upper)
      Sets the axis range (after first adding the current margins to the range) and sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false.
      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 TickUnitSource getStandardTickUnits()
      Returns the source for obtaining standard tick units for the axis.
      Returns:
      the source (possibly null).
    • setStandardTickUnits

      public void setStandardTickUnits​(TickUnitSource source)
      Sets the source for obtaining standard tick units for the axis and sends an AxisChangeEvent to all registered listeners. The axis will try to select the smallest tick unit from the source that does not cause the tick labels to overlap (see also the setAutoTickUnitSelection(boolean) method.
      Parameters:
      source - the source for standard tick units (null permitted).
    • valueToJava2D

      public abstract double valueToJava2D​(double value, Rectangle2D area, org.jfree.ui.RectangleEdge edge)
      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 area.

      Parameters:
      value - the data value.
      area - the area for plotting the data.
      edge - the edge along which the axis lies.
      Returns:
      the Java2D coordinate.
    • java2DToValue

      public abstract double java2DToValue​(double java2DValue, Rectangle2D area, org.jfree.ui.RectangleEdge edge)
      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.
      area - the area in which the data is plotted.
      edge - the edge along which the axis lies.
      Returns:
      the data value.
    • centerRange

      public void centerRange​(double value)
      Centers the axis range about the specified value and sends an AxisChangeEvent to all registered listeners.
      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 and sends an AxisChangeEvent to all registered listeners.

      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 and sends an AxisChangeEvent to all registered listeners.

      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.
    • zoomRange

      public void zoomRange​(double lowerPercent, double upperPercent)
      Zooms in on the current range.
      Parameters:
      lowerPercent - the new lower bound.
      upperPercent - the new upper bound.
    • equals

      public boolean equals​(Object obj)
      Tests the axis for equality with an arbitrary object.
      Overrides:
      equals in class Axis
      Parameters:
      obj - the object (null permitted).
      Returns:
      true or false.
    • clone

      public Object clone() throws CloneNotSupportedException
      Returns a clone of the object.
      Specified by:
      clone in interface org.jfree.util.PublicCloneable
      Overrides:
      clone in class Axis
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if some component of the axis does not support cloning.
    • getMinimumAxisValue

      public double getMinimumAxisValue()
      Deprecated.
      Use getLowerBound().
      Returns the minimum value for the axis.
      Returns:
      the minimum value for the axis.
    • setMinimumAxisValue

      public void setMinimumAxisValue​(double min)
      Deprecated.
      Use setLowerBound(...).
      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()
      Deprecated.
      Use getUpperBound().
      Returns the maximum value for the axis.
      Returns:
      the maximum value.
    • setMaximumAxisValue

      public void setMaximumAxisValue​(double max)
      Deprecated.
      Use setUpperBound(...).
      Sets the maximum value for the axis.

      Registered listeners are notified that the axis has been modified.

      Parameters:
      max - the new maximum.
    • translateValueToJava2D

      public double translateValueToJava2D​(double value, Rectangle2D area, org.jfree.ui.RectangleEdge edge)
      Deprecated.
      Use valueToJava2D instead.
      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:
      value - the data value.
      area - the area for plotting the data.
      edge - the edge along which the axis lies.
      Returns:
      The Java2D coordinate.
    • translateJava2DtoValue

      public double translateJava2DtoValue​(float java2DValue, Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
      Deprecated.
      Use translateJava2DToValue(double, ...).
      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.
      edge - the edge along which the axis lies.
      Returns:
      the data value.
    • translateJava2DToValue

      public double translateJava2DToValue​(double java2DValue, Rectangle2D area, org.jfree.ui.RectangleEdge edge)
      Deprecated.
      Use java2DToValue instead.
      Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified area.
      Parameters:
      java2DValue - the coordinate in Java2D space.
      area - the area in which the data is plotted.
      edge - the edge along which the axis lies.
      Returns:
      the data value.