org.jfree.chart.axis
Class VerticalNumberAxis

java.lang.Object
  |
  +--org.jfree.chart.axis.Axis
        |
        +--org.jfree.chart.axis.ValueAxis
              |
              +--org.jfree.chart.axis.NumberAxis
                    |
                    +--org.jfree.chart.axis.VerticalNumberAxis
All Implemented Interfaces:
AxisConstants, java.io.Serializable, VerticalAxis
Direct Known Subclasses:
VerticalColorBarAxis, VerticalLogarithmicAxis, VerticalNumberAxis3D, VerticalSymbolicAxis

public class VerticalNumberAxis
extends NumberAxis
implements VerticalAxis, java.io.Serializable

A standard linear value axis, for values displayed vertically.

Note that bug 4273469 on the Java Developer Connection talks about why the grid lines don't always line up with the tick marks precisely.

Author:
David Gilbert
See Also:
Serialized Form

Field Summary
static boolean DEFAULT_VERTICAL_LABEL
          The default setting for the vertical-label flag.
 
Fields inherited from class org.jfree.chart.axis.NumberAxis
DEFAULT_AUTO_RANGE_INCLUDES_ZERO, DEFAULT_AUTO_RANGE_STICKY_ZERO, DEFAULT_TICK_UNIT
 
Fields inherited from class org.jfree.chart.axis.ValueAxis
DEFAULT_AUTO_RANGE, DEFAULT_AUTO_RANGE_MINIMUM_SIZE, DEFAULT_AUTO_TICK_UNIT_SELECTION, DEFAULT_INVERTED, DEFAULT_LOWER_BOUND, DEFAULT_LOWER_MARGIN, DEFAULT_RANGE, DEFAULT_UPPER_BOUND, DEFAULT_UPPER_MARGIN, 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
VerticalNumberAxis(java.lang.String label)
          Constructs a vertical number axis, using default attribute values where necessary.
 
Method Summary
protected  void autoAdjustRange()
          Sets the axis minimum and maximum values so that all the data is visible.
 void configure()
          Configures the axis to work with the specified plot.
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, int location)
          Draws the plot on a Java 2D graphics device (such as the screen or a printer).
protected  boolean isCompatiblePlot(Plot plot)
          Returns true if the specified plot is compatible with the axis.
 boolean isVerticalLabel()
          Returns a flag indicating whether or not the axis label is drawn vertically.
 void refreshTicks(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, int location)
          Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).
 double reserveWidth(java.awt.Graphics2D g2, Plot plot, java.awt.geom.Rectangle2D drawArea, int location)
          Returns the width required to draw the axis in the specified draw area.
 double reserveWidth(java.awt.Graphics2D g2, Plot plot, java.awt.geom.Rectangle2D plotArea, int location, double reservedHeight, int horizontalAxisLocation)
          Returns area in which the axis will be displayed.
protected  void selectAutoTickUnit(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea)
          Selects an appropriate tick value for the axis.
 void setVerticalLabel(boolean flag)
          Sets a flag indicating whether or not the axis label is drawn vertically.
 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.
 double translateValueToJava2D(double value, 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.NumberAxis
autoRangeIncludesZero, autoRangeStickyZero, calculateHighestVisibleTickValue, calculateLowestVisibleTickValue, calculateVisibleTickCount, createIntegerTickUnits, createIntegerTickUnits, createStandardTickUnits, createStandardTickUnits, getNumberFormatOverride, getTickUnit, setAutoRangeIncludesZero, setAutoRangeStickyZero, setNumberFormatOverride, setTickUnit, setTickUnit
 
Methods inherited from class org.jfree.chart.axis.ValueAxis
centerRange, getAnchorValue, getAutoRangeMinimumSize, getAutoTickIndex, getFixedAutoRange, getLowerMargin, getMaximumAxisValue, getMinimumAxisValue, getRange, getStandardTickUnits, getUpperMargin, isAutoRange, isAutoTickUnitSelection, isInverted, resizeRange, resizeRange, setAnchoredRange, setAnchorValue, setAnchorValueAttribute, setAutoRange, setAutoRange, setAutoRangeMinimumSize, setAutoRangeMinimumSize, setAutoTickIndex, setAutoTickUnitSelection, setAutoTickUnitSelection, setFixedAutoRange, setInverted, setLowerMargin, setMaximumAxisValue, setMinimumAxisValue, setRange, setRange, setRangeAboutValue, setRangeAttribute, setStandardTickUnits, setUpperMargin
 
Methods inherited from class org.jfree.chart.axis.Axis
addChangeListener, drawHorizontalLabel, drawVerticalLabel, equals, getFixedDimension, getLabel, getLabelFont, getLabelInsets, getLabelPaint, getMaxTickLabelWidth, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, getTicks, isTickLabelsVisible, isTickMarksVisible, isVisible, notifyListeners, 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_VERTICAL_LABEL

public static final boolean DEFAULT_VERTICAL_LABEL
The default setting for the vertical-label flag.

See Also:
Constant Field Values
Constructor Detail

VerticalNumberAxis

public VerticalNumberAxis(java.lang.String label)
Constructs a vertical number axis, using default attribute values where necessary.

Parameters:
label - the axis label (null permitted).
Method Detail

isVerticalLabel

public boolean isVerticalLabel()
Returns a flag indicating whether or not the axis label is drawn vertically.

Returns:
the flag.

setVerticalLabel

public void setVerticalLabel(boolean flag)
Sets a flag indicating whether or not the axis label is drawn vertically. If the setting is changed, registered listeners are notified that the axis has changed.

Parameters:
flag - the new flag.

configure

public void configure()
Configures the axis to work with the specified plot. If the axis has auto-scaling, then sets the maximum and minimum values.

Specified by:
configure in class Axis

translateValueToJava2D

public double translateValueToJava2D(double value,
                                     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.

Specified by:
translateValueToJava2D in class ValueAxis
Parameters:
value - the data value.
dataArea - the area for plotting the data.
Returns:
the Java2D coordinate.

translateJava2DtoValue

public 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.

Specified by:
translateJava2DtoValue in class ValueAxis
Parameters:
java2DValue - the coordinate in Java2D space.
dataArea - the area in which the data is plotted.
Returns:
the data value.

autoAdjustRange

protected void autoAdjustRange()
Sets the axis minimum and maximum values so that all the data is visible.

You can control the range calculation in several ways. First, you can define upper and lower margins as a percentage of the data range (the default is a 5% margin for each). Second, you can set a flag that forces the range to include zero. Finally, you can set another flag, the 'sticky zero' flag, that only affects the range when zero falls within the axis margins. When this happens, the margin is truncated so that zero is the upper or lower limit for the axis.

Specified by:
autoAdjustRange in class ValueAxis

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D plotArea,
                 java.awt.geom.Rectangle2D dataArea,
                 int location)
Draws the plot on a Java 2D graphics device (such as the screen or a printer).

Specified by:
draw in class Axis
Parameters:
g2 - the graphics device.
plotArea - the area within which the plot and axes should be drawn.
dataArea - the area within which the data should be drawn.
location - the axis location.

reserveWidth

public double reserveWidth(java.awt.Graphics2D g2,
                           Plot plot,
                           java.awt.geom.Rectangle2D drawArea,
                           int location)
Returns the width required to draw the axis in the specified draw area.

Specified by:
reserveWidth in interface VerticalAxis
Parameters:
g2 - the graphics device.
plot - a reference to the plot;
drawArea - the area within which the plot should be drawn.
location - the axis location.
Returns:
width required to draw the axis.

reserveWidth

public double reserveWidth(java.awt.Graphics2D g2,
                           Plot plot,
                           java.awt.geom.Rectangle2D plotArea,
                           int location,
                           double reservedHeight,
                           int horizontalAxisLocation)
Returns area in which the axis will be displayed.

Specified by:
reserveWidth in interface VerticalAxis
Parameters:
g2 - the graphics device.
plot - a reference to the plot.
plotArea - the area in which the plot and axes should be drawn.
location - the axis location.
reservedHeight - the height reserved for the horizontal axis.
horizontalAxisLocation - the horizontal axis location.
Returns:
area in which the axis will be displayed.

selectAutoTickUnit

protected void selectAutoTickUnit(java.awt.Graphics2D g2,
                                  java.awt.geom.Rectangle2D plotArea,
                                  java.awt.geom.Rectangle2D dataArea)
Selects an appropriate tick value for the axis. The strategy is to display as many ticks as possible (selected from an array of 'standard' tick units) without the labels overlapping.

Parameters:
g2 - the graphics device.
plotArea - the area in which the plot and axes should be drawn.
dataArea - the area in which the plot should be drawn.

refreshTicks

public void refreshTicks(java.awt.Graphics2D g2,
                         java.awt.geom.Rectangle2D plotArea,
                         java.awt.geom.Rectangle2D dataArea,
                         int location)
Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).

Specified by:
refreshTicks in class Axis
Parameters:
g2 - the graphics device.
plotArea - the area in which the plot and the axes should be drawn.
dataArea - the area in which the plot should be drawn.
location - the location of the axis.

isCompatiblePlot

protected boolean isCompatiblePlot(Plot plot)
Returns true if the specified plot is compatible with the axis.

This class (VerticalNumberAxis) requires that the plot implements the VerticalValuePlot interface.

Specified by:
isCompatiblePlot in class Axis
Parameters:
plot - the plot.
Returns:
true if the specified plot is compatible with the axis.