public class

LogarithmicAxis

extends NumberAxis
java.lang.Object
   ↳ org.jfree.chart.axis.Axis
     ↳ org.jfree.chart.axis.ValueAxis
       ↳ org.jfree.chart.axis.NumberAxis
         ↳ org.jfree.chart.axis.LogarithmicAxis

Class Overview

A numerical axis that uses a logarithmic scale.

Summary

Constants
double SMALL_LOG_VALUE Smallest arbitrarily-close-to-zero value allowed.
[Expand]
Inherited Constants
From class org.jfree.chart.axis.NumberAxis
From class org.jfree.chart.axis.ValueAxis
From class org.jfree.chart.axis.Axis
Fields
public static final double LOG10_VALUE Useful constant for log(10).
protected boolean allowNegativesFlag Flag set true to allow negative values in data.
protected boolean autoRangeNextLogFlag True to make 'autoAdjustRange()' select "10^n" values.
protected boolean expTickLabelsFlag Flag set true for "1e#"-style tick labels.
protected boolean log10TickLabelsFlag Flag set true for "10^n"-style tick labels.
protected final NumberFormat numberFormatterObj Number formatter for generating numeric strings.
protected boolean smallLogFlag Helper flag for log axis processing.
protected boolean strictValuesFlag Flag set true make axis throw exception if any values are <= 0 and 'allowNegativesFlag' is false.
[Expand]
Inherited Fields
From class org.jfree.chart.axis.NumberAxis
From class org.jfree.chart.axis.ValueAxis
From class org.jfree.chart.axis.Axis
Public Constructors
LogarithmicAxis(String label)
Creates a new axis.
Public Methods
double adjustedLog10(double val)
Returns an adjusted log10 value for graphing purposes.
double adjustedPow10(double val)
Returns an adjusted power of 10 value for graphing purposes.
void autoAdjustRange()
Rescales the axis to ensure that all data is visible.
boolean getAllowNegativesFlag()
Returns the 'allowNegativesFlag' flag; true to allow negative values in data, false to be able to plot positive values arbitrarily close to zero.
boolean getAutoRangeNextLogFlag()
Returns the 'autoRangeNextLogFlag' flag.
boolean getExpTickLabelsFlag()
Returns the 'expTickLabelsFlag' flag.
boolean getLog10TickLabelsFlag()
Returns the 'log10TickLabelsFlag' flag.
boolean getStrictValuesFlag()
Returns the 'strictValuesFlag' flag; if true and 'allowNegativesFlag' is false then this axis will throw a runtime exception if any of its values are less than or equal to zero; if false then the axis will adjust for values less than or equal to zero as needed.
double java2DToValue(double java2DValue, Rectangle2D plotArea, RectangleEdge edge)
Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified plotArea.
void setAllowNegativesFlag(boolean flgVal)
Sets the 'allowNegativesFlag' flag; true to allow negative values in data, false to be able to plot positive values arbitrarily close to zero.
void setAutoRangeNextLogFlag(boolean flag)
Sets the 'autoRangeNextLogFlag' flag.
void setExpTickLabelsFlag(boolean flgVal)
Sets the 'expTickLabelsFlag' flag.
void setLog10TickLabelsFlag(boolean flag)
Sets the 'log10TickLabelsFlag' flag.
void setRange(Range range)
Overridden version that calls original and then sets up flag for log axis processing.
void setStrictValuesFlag(boolean flgVal)
Sets the 'strictValuesFlag' flag; if true and 'allowNegativesFlag' is false then this axis will throw a runtime exception if any of its values are less than or equal to zero; if false then the axis will adjust for values less than or equal to zero as needed.
double switchedPow10(double val)
Returns a power of 10, depending on if values between 0 and 1 are being plotted.
double valueToJava2D(double value, Rectangle2D plotArea, RectangleEdge edge)
Converts a data value to a coordinate in Java2D space, assuming that the axis runs along one edge of the specified plotArea.
void zoomRange(double lowerPercent, double upperPercent)
Zooms in on the current range.
Protected Methods
double computeLogCeil(double upper)
Returns the smallest (closest to negative infinity) double value that is not less than the argument, is equal to a mathematical integer and satisfying the condition that log base 10 of the value is an integer (i.e., the value returned will be a power of 10: 1, 10, 100, 1000, etc.).
double computeLogFloor(double lower)
Returns the largest (closest to positive infinity) double value that is not greater than the argument, is equal to a mathematical integer and satisfying the condition that log base 10 of the value is an integer (i.e., the value returned will be a power of 10: 1, 10, 100, 1000, etc.).
String makeTickLabel(double val)
Converts the given value to a tick label string.
String makeTickLabel(double val, boolean forceFmtFlag)
Converts the given value to a tick label string.
List refreshTicksHorizontal(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).
List refreshTicksVertical(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).
void setupNumberFmtObj()
Sets up the number formatter object according to the 'expTickLabelsFlag' flag.
void setupSmallLogFlag()
Sets up flag for log axis processing.
double switchedLog10(double val)
Returns the log10 value, depending on if values between 0 and 1 are being plotted.
[Expand]
Inherited Methods
From class org.jfree.chart.axis.NumberAxis
From class org.jfree.chart.axis.ValueAxis
From class org.jfree.chart.axis.Axis
From class java.lang.Object

Constants

public static final double SMALL_LOG_VALUE

Smallest arbitrarily-close-to-zero value allowed.

Constant Value: 1.0E-100

Fields

public static final double LOG10_VALUE

Useful constant for log(10).

protected boolean allowNegativesFlag

Flag set true to allow negative values in data.

protected boolean autoRangeNextLogFlag

True to make 'autoAdjustRange()' select "10^n" values.

protected boolean expTickLabelsFlag

Flag set true for "1e#"-style tick labels.

protected boolean log10TickLabelsFlag

Flag set true for "10^n"-style tick labels.

protected final NumberFormat numberFormatterObj

Number formatter for generating numeric strings.

protected boolean smallLogFlag

Helper flag for log axis processing.

protected boolean strictValuesFlag

Flag set true make axis throw exception if any values are <= 0 and 'allowNegativesFlag' is false.

Public Constructors

public LogarithmicAxis (String label)

Creates a new axis.

Parameters
label the axis label.

Public Methods

public double adjustedLog10 (double val)

Returns an adjusted log10 value for graphing purposes. The first adjustment is that negative values are changed to positive during the calculations, and then the answer is negated at the end. The second is that, for values less than 10, an increasingly large (0 to 1) scaling factor is added such that at 0 the value is adjusted to 1, resulting in a returned result of 0.

Parameters
val value for which log10 should be calculated.
Returns
  • An adjusted log10(val).

public double adjustedPow10 (double val)

Returns an adjusted power of 10 value for graphing purposes. The first adjustment is that negative values are changed to positive during the calculations, and then the answer is negated at the end. The second is that, for values less than 1, a progressive logarithmic offset is subtracted such that at 0 the returned result is also 0.

Parameters
val value for which power of 10 should be calculated.
Returns
  • An adjusted 10val.

public void autoAdjustRange ()

Rescales the axis to ensure that all data is visible.

public boolean getAllowNegativesFlag ()

Returns the 'allowNegativesFlag' flag; true to allow negative values in data, false to be able to plot positive values arbitrarily close to zero.

Returns
  • The flag.

public boolean getAutoRangeNextLogFlag ()

Returns the 'autoRangeNextLogFlag' flag.

Returns
  • true if the 'autoAdjustRange()' method will select the next "10^n" values, false if not.

public boolean getExpTickLabelsFlag ()

Returns the 'expTickLabelsFlag' flag.

Returns
  • true for "1e#"-style tick labels, false for log10 or regular numeric tick labels.

public boolean getLog10TickLabelsFlag ()

Returns the 'log10TickLabelsFlag' flag.

Returns
  • true for "10^n"-style tick labels, false for "1e#"-style or regular numeric tick labels.

public boolean getStrictValuesFlag ()

Returns the 'strictValuesFlag' flag; if true and 'allowNegativesFlag' is false then this axis will throw a runtime exception if any of its values are less than or equal to zero; if false then the axis will adjust for values less than or equal to zero as needed.

Returns
  • true if strict enforcement is enabled.

public double java2DToValue (double java2DValue, Rectangle2D plotArea, RectangleEdge edge)

Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified plotArea.

Parameters
java2DValue the coordinate in Java2D space.
plotArea the area in which the data is plotted.
edge the axis location.
Returns
  • The data value.

public void setAllowNegativesFlag (boolean flgVal)

Sets the 'allowNegativesFlag' flag; true to allow negative values in data, false to be able to plot positive values arbitrarily close to zero.

Parameters
flgVal the new value of the flag.

public void setAutoRangeNextLogFlag (boolean flag)

Sets the 'autoRangeNextLogFlag' flag. This determines whether or not the 'autoAdjustRange()' method will select the next "10^n" values when determining the upper and lower bounds. The default value is false.

Parameters
flag true to make the 'autoAdjustRange()' method select the next "10^n" values, false to not.

public void setExpTickLabelsFlag (boolean flgVal)

Sets the 'expTickLabelsFlag' flag. If the 'log10TickLabelsFlag' is false then this will set whether or not "1e#"-style tick labels are used. The default is to use regular numeric tick labels.

Parameters
flgVal true for "1e#"-style tick labels, false for log10 or regular numeric tick labels.

public void setLog10TickLabelsFlag (boolean flag)

Sets the 'log10TickLabelsFlag' flag. The default value is false.

Parameters
flag true for "10^n"-style tick labels, false for "1e#"-style or regular numeric tick labels.

public void setRange (Range range)

Overridden version that calls original and then sets up flag for log axis processing.

Parameters
range the new range.

public void setStrictValuesFlag (boolean flgVal)

Sets the 'strictValuesFlag' flag; if true and 'allowNegativesFlag' is false then this axis will throw a runtime exception if any of its values are less than or equal to zero; if false then the axis will adjust for values less than or equal to zero as needed.

Parameters
flgVal true for strict enforcement.

public double switchedPow10 (double val)

Returns a power of 10, depending on if values between 0 and 1 are being plotted. If negative values are not allowed and the lower bound is between 0 and 10 then a normal power is returned; otherwise the returned value is adjusted if the given value is less than 1.

Parameters
val the value.
Returns
  • 10val.

public double valueToJava2D (double value, Rectangle2D plotArea, RectangleEdge edge)

Converts a data value to a coordinate in Java2D space, assuming that the axis runs along one edge of the specified plotArea. Note that it is possible for the coordinate to fall outside the plotArea.

Parameters
value the data value.
plotArea the area for plotting the data.
edge the axis location.
Returns
  • The Java2D coordinate.

public void zoomRange (double lowerPercent, double upperPercent)

Zooms in on the current range.

Parameters
lowerPercent the new lower bound.
upperPercent the new upper bound.

Protected Methods

protected double computeLogCeil (double upper)

Returns the smallest (closest to negative infinity) double value that is not less than the argument, is equal to a mathematical integer and satisfying the condition that log base 10 of the value is an integer (i.e., the value returned will be a power of 10: 1, 10, 100, 1000, etc.).

Parameters
upper a double value above which a ceiling will be calcualted.
Returns
  • 10N with N .. { 1 ... }

protected double computeLogFloor (double lower)

Returns the largest (closest to positive infinity) double value that is not greater than the argument, is equal to a mathematical integer and satisfying the condition that log base 10 of the value is an integer (i.e., the value returned will be a power of 10: 1, 10, 100, 1000, etc.).

Parameters
lower a double value below which a floor will be calcualted.
Returns
  • 10N with N .. { 1 ... }

protected String makeTickLabel (double val)

Converts the given value to a tick label string.

Parameters
val the value to convert.
Returns
  • The tick label string.

protected String makeTickLabel (double val, boolean forceFmtFlag)

Converts the given value to a tick label string.

Parameters
val the value to convert.
forceFmtFlag true to force the number-formatter object to be used.
Returns
  • The tick label string.

protected List refreshTicksHorizontal (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).

Parameters
g2 the graphics device.
dataArea the area in which the plot should be drawn.
edge the location of the axis.
Returns
  • A list of ticks.

protected List refreshTicksVertical (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).

Parameters
g2 the graphics device.
dataArea the area in which the plot should be drawn.
edge the location of the axis.
Returns
  • A list of ticks.

protected void setupNumberFmtObj ()

Sets up the number formatter object according to the 'expTickLabelsFlag' flag.

protected void setupSmallLogFlag ()

Sets up flag for log axis processing. Set true if negative values not allowed and the lower bound is between 0 and 10.

protected double switchedLog10 (double val)

Returns the log10 value, depending on if values between 0 and 1 are being plotted. If negative values are not allowed and the lower bound is between 0 and 10 then a normal log is returned; otherwise the returned value is adjusted if the given value is less than 10.

Parameters
val the value.
Returns
  • log10(val).