public class LogarithmicAxis extends NumberAxis
Modifier and Type | Field and Description |
---|---|
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.
|
static double |
LOG10_VALUE
Useful constant for log(10).
|
protected boolean |
log10TickLabelsFlag
Flag set true for "10^n"-style tick labels.
|
protected java.text.NumberFormat |
numberFormatterObj
Number formatter for generating numeric strings.
|
static double |
SMALL_LOG_VALUE
Smallest arbitrarily-close-to-zero value allowed.
|
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.
|
DEFAULT_AUTO_RANGE_INCLUDES_ZERO, DEFAULT_AUTO_RANGE_STICKY_ZERO, DEFAULT_TICK_UNIT, DEFAULT_VERTICAL_TICK_LABELS
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
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 and Description |
---|
LogarithmicAxis(java.lang.String label)
Creates a new axis.
|
Modifier and Type | Method and Description |
---|---|
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.
|
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.).
|
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.).
|
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,
java.awt.geom.Rectangle2D plotArea,
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
plotArea.
|
protected java.lang.String |
makeTickLabel(double val)
Converts the given value to a tick label string.
|
protected java.lang.String |
makeTickLabel(double val,
boolean forceFmtFlag)
Converts the given value to a tick label string.
|
protected java.util.List |
refreshTicksHorizontal(java.awt.Graphics2D g2,
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 |
refreshTicksVertical(java.awt.Graphics2D g2,
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).
|
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.
|
protected void |
setupNumberFmtObj()
Sets up the number formatter object according to the
'expTickLabelsFlag' flag.
|
protected void |
setupSmallLogFlag()
Sets up flag for log axis processing.
|
protected double |
switchedLog10(double val)
Returns the log10 value, depending on if values between 0 and
1 are being plotted.
|
double |
switchedPow10(double val)
Returns a power of 10, depending on if values between 0 and
1 are being plotted.
|
double |
valueToJava2D(double value,
java.awt.geom.Rectangle2D plotArea,
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 plotArea.
|
void |
zoomRange(double lowerPercent,
double upperPercent)
Zooms in on the current range.
|
calculateHighestVisibleTickValue, calculateLowestVisibleTickValue, calculateVisibleTickCount, clone, configure, createIntegerTickUnits, createIntegerTickUnits, createStandardTickUnits, createStandardTickUnits, draw, equals, estimateMaximumTickLabelHeight, estimateMaximumTickLabelWidth, getAutoRangeIncludesZero, getAutoRangeStickyZero, getMarkerBand, getNumberFormatOverride, getRangeType, getTickUnit, hashCode, refreshTicks, selectAutoTickUnit, selectHorizontalAutoTickUnit, selectVerticalAutoTickUnit, setAutoRangeIncludesZero, setAutoRangeStickyZero, setMarkerBand, setNumberFormatOverride, setRangeType, setTickUnit, setTickUnit
calculateAnchorPoint, centerRange, 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, pan, reserveSpace, resizeRange, resizeRange, resizeRange2, setAutoRange, setAutoRange, setAutoRangeMinimumSize, setAutoRangeMinimumSize, setAutoTickIndex, setAutoTickUnitSelection, setAutoTickUnitSelection, setDefaultAutoRange, setDownArrow, setFixedAutoRange, setInverted, setLeftArrow, setLowerBound, setLowerMargin, setMinorTickCount, setNegativeArrowVisible, setPositiveArrowVisible, setRange, setRange, setRangeAboutValue, setRangeWithMargins, setRangeWithMargins, setRangeWithMargins, setRightArrow, setStandardTickUnits, setUpArrow, setUpperBound, setUpperMargin, setVerticalTickLabels
addChangeListener, createAndAddEntity, createAttributedLabel, drawAttributedLabel, drawLabel, fireChangeEvent, getAttributedLabel, getAxisLinePaint, getAxisLineStroke, getFixedDimension, getLabel, getLabelAngle, getLabelEnclosure, getLabelFont, getLabelInsets, getLabelLocation, getLabelPaint, getMinorTickMarkInsideLength, getMinorTickMarkOutsideLength, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, hasListener, isAxisLineVisible, isMinorTickMarksVisible, isTickLabelsVisible, isTickMarksVisible, isVisible, labelAnchorH, labelAnchorV, labelLocationX, labelLocationY, notifyListeners, removeChangeListener, setAttributedLabel, setAttributedLabel, setAxisLinePaint, setAxisLineStroke, setAxisLineVisible, setFixedDimension, setLabel, setLabelAngle, setLabelFont, setLabelInsets, setLabelInsets, setLabelLocation, setLabelPaint, setMinorTickMarkInsideLength, setMinorTickMarkOutsideLength, setMinorTickMarksVisible, setPlot, setTickLabelFont, setTickLabelInsets, setTickLabelPaint, setTickLabelsVisible, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarksVisible, setVisible
public static final double LOG10_VALUE
public static final double SMALL_LOG_VALUE
protected boolean allowNegativesFlag
protected boolean strictValuesFlag
protected final java.text.NumberFormat numberFormatterObj
protected boolean expTickLabelsFlag
protected boolean log10TickLabelsFlag
protected boolean autoRangeNextLogFlag
protected boolean smallLogFlag
public LogarithmicAxis(java.lang.String label)
label
- the axis label.public void setAllowNegativesFlag(boolean flgVal)
flgVal
- the new value of the flag.public boolean getAllowNegativesFlag()
public void setStrictValuesFlag(boolean flgVal)
flgVal
- true for strict enforcement.public boolean getStrictValuesFlag()
true
if strict enforcement is enabled.public void setExpTickLabelsFlag(boolean flgVal)
flgVal
- true for "1e#"-style tick labels, false for
log10 or regular numeric tick labels.public boolean getExpTickLabelsFlag()
true
for "1e#"-style tick labels,
false
for log10 or regular numeric tick labels.public void setLog10TickLabelsFlag(boolean flag)
flag
- true for "10^n"-style tick labels, false for "1e#"-style
or regular numeric tick labels.public boolean getLog10TickLabelsFlag()
true
for "10^n"-style tick labels,
false
for "1e#"-style or regular numeric tick
labels.public void setAutoRangeNextLogFlag(boolean flag)
flag
- true
to make the 'autoAdjustRange()'
method select the next "10^n" values, false
to not.public boolean getAutoRangeNextLogFlag()
true
if the 'autoAdjustRange()' method will
select the next "10^n" values, false
if not.public void setRange(Range range)
setRange
in class ValueAxis
range
- the new range.ValueAxis.getRange()
protected void setupSmallLogFlag()
protected void setupNumberFmtObj()
protected double switchedLog10(double val)
val
- the value.switchedPow10(double)
public double switchedPow10(double val)
val
- the value.switchedLog10(double)
public double adjustedLog10(double val)
val
- value for which log10 should be calculated.adjustedPow10(double)
public double adjustedPow10(double val)
val
- value for which power of 10 should be calculated.adjustedLog10(double)
protected double computeLogFloor(double lower)
lower
- a double value below which a floor will be calcualted.protected double computeLogCeil(double upper)
upper
- a double value above which a ceiling will be calcualted.public void autoAdjustRange()
autoAdjustRange
in class NumberAxis
public double valueToJava2D(double value, java.awt.geom.Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge)
valueToJava2D
in class NumberAxis
value
- the data value.plotArea
- the area for plotting the data.edge
- the axis location.NumberAxis.java2DToValue(double, Rectangle2D, RectangleEdge)
public double java2DToValue(double java2DValue, java.awt.geom.Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge)
java2DToValue
in class NumberAxis
java2DValue
- the coordinate in Java2D space.plotArea
- the area in which the data is plotted.edge
- the axis location.NumberAxis.valueToJava2D(double, Rectangle2D, RectangleEdge)
public void zoomRange(double lowerPercent, double upperPercent)
protected java.util.List refreshTicksHorizontal(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
refreshTicksHorizontal
in class NumberAxis
g2
- the graphics device.dataArea
- the area in which the plot should be drawn.edge
- the location of the axis.protected java.util.List refreshTicksVertical(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
refreshTicksVertical
in class NumberAxis
g2
- the graphics device.dataArea
- the area in which the plot should be drawn.edge
- the location of the axis.protected java.lang.String makeTickLabel(double val, boolean forceFmtFlag)
val
- the value to convert.forceFmtFlag
- true to force the number-formatter object
to be used.protected java.lang.String makeTickLabel(double val)
val
- the value to convert.