Header
And More


org.jfree.chart.axis
Class LogAxis

java.lang.Object
  extended by org.jfree.chart.axis.Axis
      extended by org.jfree.chart.axis.ValueAxis
          extended by org.jfree.chart.axis.LogAxis
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.jfree.util.PublicCloneable

public class LogAxis
extends ValueAxis

A numerical axis that uses a logarithmic scale. The class is an alternative to the LogarithmicAxis class.

Since:
1.0.7
See Also:
Serialized Form

Field Summary
 
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 class org.jfree.chart.axis.Axis
DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_LINE_PAINT, DEFAULT_AXIS_LINE_STROKE, 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
 
Constructor Summary
LogAxis()
          Creates a new LogAxis with no label.
LogAxis(java.lang.String label)
          Creates a new LogAxis with the given label.
 
Method Summary
protected  void autoAdjustRange()
          Adjusts the axis range to match the data range that the axis is required to display.
 double calculateLog(double value)
          Calculates the log of the given value, using the current base.
 double calculateValue(double log)
          Calculates the value from a given log.
 void configure()
          Configures the axis.
static TickUnitSource createLogTickUnits(java.util.Locale locale)
          Returns a collection of tick units for log (base 10) values.
protected  java.lang.String createTickLabel(double value)
          Creates a tick label for the specified value.
 AxisState draw(java.awt.Graphics2D g2, double cursor, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge, PlotRenderingInfo plotState)
          Draws the axis on a Java 2D graphics device (such as the screen or a printer).
 boolean equals(java.lang.Object obj)
          Tests this axis for equality with an arbitrary object.
protected  double estimateMaximumTickLabelHeight(java.awt.Graphics2D g2)
          Estimates the maximum tick label height.
protected  double estimateMaximumTickLabelWidth(java.awt.Graphics2D g2, TickUnit unit)
          Estimates the maximum width of the tick labels, assuming the specified tick unit is used.
 double exponentLengthToJava2D(double length, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)
          Converts a length in data coordinates into the corresponding length in Java2D coordinates.
 double getBase()
          Returns the base for the logarithm calculation.
 java.text.NumberFormat getNumberFormatOverride()
          Returns the number format override.
 double getSmallestValue()
          Returns the smallest value represented by the axis.
 NumberTickUnit getTickUnit()
          Returns the current tick unit.
 int hashCode()
          Returns a hash code for this instance.
 double java2DToValue(double java2DValue, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)
          Converts a Java2D coordinate to an axis value, assuming that the axis covers the specified edge of the area.
 void pan(double percent)
          Slides the axis range by the specified percentage.
 java.util.List refreshTicks(java.awt.Graphics2D g2, AxisState state, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
          Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).
protected  java.util.List refreshTicksHorizontal(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
          Returns a list of ticks for an axis at the top or bottom of the chart.
protected  java.util.List refreshTicksVertical(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
          Returns a list of ticks for an axis at the left or right of the chart.
protected  void selectAutoTickUnit(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
          Selects an appropriate tick value for the axis.
protected  void selectHorizontalAutoTickUnit(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
          Selects an appropriate tick value for the axis.
protected  void selectVerticalAutoTickUnit(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
          Selects an appropriate tick value for the axis.
 void setBase(double base)
          Sets the base for the logarithm calculation and sends an AxisChangeEvent to all registered listeners.
 void setNumberFormatOverride(java.text.NumberFormat formatter)
          Sets the number format override.
 void setSmallestValue(double value)
          Sets the smallest value represented by the axis and sends an AxisChangeEvent to all registered listeners.
 void setTickUnit(NumberTickUnit unit)
          Sets the tick unit for the axis and sends an AxisChangeEvent to all registered listeners.
 void setTickUnit(NumberTickUnit unit, boolean notify, boolean turnOffAutoSelect)
          Sets the tick unit for the axis and, if requested, sends an AxisChangeEvent to all registered listeners.
 double valueToJava2D(double value, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)
          Converts a value on the axis scale to a Java2D coordinate relative to the given area, based on the axis running along the specified edge.
 void zoomRange(double lowerPercent, double upperPercent)
          Zooms in on the current range.
 
Methods inherited from class org.jfree.chart.axis.ValueAxis
calculateAnchorPoint, centerRange, clone, drawAxisLine, drawTickMarksAndLabels, findMaximumTickLabelHeight, findMaximumTickLabelWidth, getAutoRangeMinimumSize, getAutoTickIndex, getDefaultAutoRange, getDownArrow, getFixedAutoRange, getLeftArrow, getLowerBound, getLowerMargin, getMinorTickCount, getRange, getRightArrow, getStandardTickUnits, getUpArrow, getUpperBound, getUpperMargin, isAutoRange, isAutoTickUnitSelection, isInverted, isNegativeArrowVisible, isPositiveArrowVisible, isVerticalTickLabels, lengthToJava2D, reserveSpace, resizeRange, resizeRange, resizeRange2, setAutoRange, setAutoRange, setAutoRangeMinimumSize, setAutoRangeMinimumSize, setAutoTickIndex, setAutoTickUnitSelection, setAutoTickUnitSelection, setDefaultAutoRange, setDownArrow, setFixedAutoRange, setInverted, setLeftArrow, setLowerBound, setLowerMargin, setMinorTickCount, setNegativeArrowVisible, setPositiveArrowVisible, setRange, setRange, setRange, setRangeAboutValue, setRangeWithMargins, setRangeWithMargins, setRangeWithMargins, setRightArrow, setStandardTickUnits, setUpArrow, setUpperBound, setUpperMargin, setVerticalTickLabels
 
Methods inherited from class org.jfree.chart.axis.Axis
addChangeListener, createAndAddEntity, drawLabel, fireChangeEvent, getAxisLinePaint, getAxisLineStroke, getFixedDimension, getLabel, getLabelAngle, getLabelEnclosure, getLabelFont, getLabelInsets, getLabelPaint, getMinorTickMarkInsideLength, getMinorTickMarkOutsideLength, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, hasListener, isAxisLineVisible, isMinorTickMarksVisible, isTickLabelsVisible, isTickMarksVisible, isVisible, notifyListeners, removeChangeListener, setAxisLinePaint, setAxisLineStroke, setAxisLineVisible, setFixedDimension, setLabel, setLabelAngle, setLabelFont, setLabelInsets, setLabelInsets, setLabelPaint, setMinorTickMarkInsideLength, setMinorTickMarkOutsideLength, setMinorTickMarksVisible, setPlot, setTickLabelFont, setTickLabelInsets, setTickLabelPaint, setTickLabelsVisible, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarksVisible, setVisible
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LogAxis

public LogAxis()
Creates a new LogAxis with no label.


LogAxis

public LogAxis(java.lang.String label)
Creates a new LogAxis with the given label.

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

getBase

public double getBase()
Returns the base for the logarithm calculation.

Returns:
The base for the logarithm calculation.
See Also:
setBase(double)

setBase

public void setBase(double base)
Sets the base for the logarithm calculation and sends an AxisChangeEvent to all registered listeners.

Parameters:
base - the base value (must be > 1.0).
See Also:
getBase()

getSmallestValue

public double getSmallestValue()
Returns the smallest value represented by the axis.

Returns:
The smallest value represented by the axis.
See Also:
setSmallestValue(double)

setSmallestValue

public void setSmallestValue(double value)
Sets the smallest value represented by the axis and sends an AxisChangeEvent to all registered listeners.

Parameters:
value - the value.
See Also:
getSmallestValue()

getTickUnit

public NumberTickUnit getTickUnit()
Returns the current tick unit.

Returns:
The current tick unit.
See Also:
setTickUnit(NumberTickUnit)

setTickUnit

public void setTickUnit(NumberTickUnit unit)
Sets the tick unit for the axis and sends an AxisChangeEvent to all registered listeners. A side effect of calling this method is that the "auto-select" feature for tick units is switched off (you can restore it using the ValueAxis.setAutoTickUnitSelection(boolean) method).

Parameters:
unit - the new tick unit (null not permitted).
See Also:
getTickUnit()

setTickUnit

public void setTickUnit(NumberTickUnit unit,
                        boolean notify,
                        boolean turnOffAutoSelect)
Sets the tick unit for the axis and, if requested, sends an AxisChangeEvent to all registered listeners. In addition, an option is provided to turn off the "auto-select" feature for tick units (you can restore it using the ValueAxis.setAutoTickUnitSelection(boolean) method).

Parameters:
unit - the new tick unit (null not permitted).
notify - notify listeners?
turnOffAutoSelect - turn off the auto-tick selection?
See Also:
getTickUnit()

getNumberFormatOverride

public java.text.NumberFormat getNumberFormatOverride()
Returns the number format override. If this is non-null, then it will be used to format the numbers on the axis.

Returns:
The number formatter (possibly null).
See Also:
setNumberFormatOverride(NumberFormat)

setNumberFormatOverride

public void setNumberFormatOverride(java.text.NumberFormat formatter)
Sets the number format override. If this is non-null, then it will be used to format the numbers on the axis.

Parameters:
formatter - the number formatter (null permitted).
See Also:
getNumberFormatOverride()

calculateLog

public double calculateLog(double value)
Calculates the log of the given value, using the current base.

Parameters:
value - the value.
Returns:
The log of the given value.
See Also:
calculateValue(double), getBase()

calculateValue

public double calculateValue(double log)
Calculates the value from a given log.

Parameters:
log - the log value (must be > 0.0).
Returns:
The value with the given log.
See Also:
calculateLog(double), getBase()

java2DToValue

public double java2DToValue(double java2DValue,
                            java.awt.geom.Rectangle2D area,
                            org.jfree.ui.RectangleEdge edge)
Converts a Java2D coordinate to an axis value, assuming that the axis covers the specified edge of the area.

Specified by:
java2DToValue in class ValueAxis
Parameters:
java2DValue - the Java2D coordinate.
area - the area.
edge - the edge that the axis belongs to.
Returns:
A value along the axis scale.
See Also:
ValueAxis.valueToJava2D(double, Rectangle2D, RectangleEdge)

valueToJava2D

public double valueToJava2D(double value,
                            java.awt.geom.Rectangle2D area,
                            org.jfree.ui.RectangleEdge edge)
Converts a value on the axis scale to a Java2D coordinate relative to the given area, based on the axis running along the specified edge.

Specified by:
valueToJava2D in class ValueAxis
Parameters:
value - the data value.
area - the area.
edge - the edge.
Returns:
The Java2D coordinate corresponding to value.
See Also:
ValueAxis.java2DToValue(double, Rectangle2D, RectangleEdge)

configure

public void configure()
Configures the axis. This method is typically called when an axis is assigned to a new plot.

Specified by:
configure in class Axis

autoAdjustRange

protected void autoAdjustRange()
Adjusts the axis range to match the data range that the axis is required to display.

Specified by:
autoAdjustRange in class ValueAxis

draw

public AxisState draw(java.awt.Graphics2D g2,
                      double cursor,
                      java.awt.geom.Rectangle2D plotArea,
                      java.awt.geom.Rectangle2D dataArea,
                      org.jfree.ui.RectangleEdge edge,
                      PlotRenderingInfo plotState)
Draws the axis on a Java 2D graphics device (such as the screen or a printer).

Specified by:
draw in class Axis
Parameters:
g2 - the graphics device (null not permitted).
cursor - the cursor location (determines where to draw the axis).
plotArea - the area within which the axes and plot should be drawn.
dataArea - the area within which the data should be drawn.
edge - the axis location (null not permitted).
plotState - collects information about the plot (null permitted).
Returns:
The axis state (never null).

refreshTicks

public java.util.List refreshTicks(java.awt.Graphics2D g2,
                                   AxisState state,
                                   java.awt.geom.Rectangle2D dataArea,
                                   org.jfree.ui.RectangleEdge edge)
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.
state - the axis state.
dataArea - the area in which the plot should be drawn.
edge - the location of the axis.
Returns:
A list of ticks.

refreshTicksHorizontal

protected java.util.List refreshTicksHorizontal(java.awt.Graphics2D g2,
                                                java.awt.geom.Rectangle2D dataArea,
                                                org.jfree.ui.RectangleEdge edge)
Returns a list of ticks for an axis at the top or bottom of the chart.

Parameters:
g2 - the graphics device.
dataArea - the data area.
edge - the edge.
Returns:
A list of ticks.

refreshTicksVertical

protected java.util.List refreshTicksVertical(java.awt.Graphics2D g2,
                                              java.awt.geom.Rectangle2D dataArea,
                                              org.jfree.ui.RectangleEdge edge)
Returns a list of ticks for an axis at the left or right of the chart.

Parameters:
g2 - the graphics device.
dataArea - the data area.
edge - the edge.
Returns:
A list of ticks.

selectAutoTickUnit

protected void selectAutoTickUnit(java.awt.Graphics2D g2,
                                  java.awt.geom.Rectangle2D dataArea,
                                  org.jfree.ui.RectangleEdge edge)
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.
dataArea - the area defined by the axes.
edge - the axis location.
Since:
1.0.7

selectHorizontalAutoTickUnit

protected void selectHorizontalAutoTickUnit(java.awt.Graphics2D g2,
                                            java.awt.geom.Rectangle2D dataArea,
                                            org.jfree.ui.RectangleEdge edge)
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.
dataArea - the area defined by the axes.
edge - the axis location.
Since:
1.0.7

exponentLengthToJava2D

public double exponentLengthToJava2D(double length,
                                     java.awt.geom.Rectangle2D area,
                                     org.jfree.ui.RectangleEdge edge)
Converts a length in data coordinates into the corresponding length in Java2D coordinates.

Parameters:
length - the length.
area - the plot area.
edge - the edge along which the axis lies.
Returns:
The length in Java2D coordinates.
Since:
1.0.7

selectVerticalAutoTickUnit

protected void selectVerticalAutoTickUnit(java.awt.Graphics2D g2,
                                          java.awt.geom.Rectangle2D dataArea,
                                          org.jfree.ui.RectangleEdge edge)
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.
dataArea - the area in which the plot should be drawn.
edge - the axis location.
Since:
1.0.7

estimateMaximumTickLabelHeight

protected double estimateMaximumTickLabelHeight(java.awt.Graphics2D g2)
Estimates the maximum tick label height.

Parameters:
g2 - the graphics device.
Returns:
The maximum height.
Since:
1.0.7

estimateMaximumTickLabelWidth

protected double estimateMaximumTickLabelWidth(java.awt.Graphics2D g2,
                                               TickUnit unit)
Estimates the maximum width of the tick labels, assuming the specified tick unit is used.

Rather than computing the string bounds of every tick on the axis, we just look at two values: the lower bound and the upper bound for the axis. These two values will usually be representative.

Parameters:
g2 - the graphics device.
unit - the tick unit to use for calculation.
Returns:
The estimated maximum width of the tick labels.
Since:
1.0.7

zoomRange

public void zoomRange(double lowerPercent,
                      double upperPercent)
Zooms in on the current range.

Overrides:
zoomRange in class ValueAxis
Parameters:
lowerPercent - the new lower bound.
upperPercent - the new upper bound.

pan

public void pan(double percent)
Slides the axis range by the specified percentage.

Overrides:
pan in class ValueAxis
Parameters:
percent - the percentage.
Since:
1.0.13

createTickLabel

protected java.lang.String createTickLabel(double value)
Creates a tick label for the specified value. Note that this method was 'private' prior to version 1.0.10.

Parameters:
value - the value.
Returns:
The label.
Since:
1.0.10

equals

public boolean equals(java.lang.Object obj)
Tests this axis for equality with an arbitrary object.

Overrides:
equals in class ValueAxis
Parameters:
obj - the object (null permitted).
Returns:
A boolean.

hashCode

public int hashCode()
Returns a hash code for this instance.

Overrides:
hashCode in class java.lang.Object
Returns:
A hash code.

createLogTickUnits

public static TickUnitSource createLogTickUnits(java.util.Locale locale)
Returns a collection of tick units for log (base 10) values. Uses a given Locale to create the DecimalFormats.

Parameters:
locale - the locale to use to represent Numbers.
Returns:
A collection of tick units for integer values.
Since:
1.0.7

Footer
And More


Copyright © 2000-2009 by Object Refinery Limited. All Rights Reserved.