|
Header
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jfree.chart.axis.Axis org.jfree.chart.axis.ValueAxis
public abstract class ValueAxis
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
.
Field Summary | |
---|---|
static boolean |
DEFAULT_AUTO_RANGE
The default auto-range value. |
static double |
DEFAULT_AUTO_RANGE_MINIMUM_SIZE
The default minimum auto range. |
static boolean |
DEFAULT_AUTO_TICK_UNIT_SELECTION
The default auto-tick-unit-selection value. |
static boolean |
DEFAULT_INVERTED
The default inverted flag setting. |
static double |
DEFAULT_LOWER_BOUND
Deprecated. From 1.0.5 onwards, the axis defines a defaultRange attribute (see getDefaultAutoRange() ). |
static double |
DEFAULT_LOWER_MARGIN
The default value for the lower margin (0.05 = 5%). |
static Range |
DEFAULT_RANGE
The default axis range. |
static double |
DEFAULT_UPPER_BOUND
Deprecated. From 1.0.5 onwards, the axis defines a defaultRange attribute (see getDefaultAutoRange() ). |
static double |
DEFAULT_UPPER_MARGIN
The default value for the upper margin (0.05 = 5%). |
static int |
MAXIMUM_TICK_COUNT
The maximum tick count. |
Constructor Summary | |
---|---|
protected |
ValueAxis(java.lang.String label,
TickUnitSource standardTickUnits)
Constructs a value axis. |
Method Summary | |
---|---|
protected abstract void |
autoAdjustRange()
Automatically sets the axis range to fit the range of values in the dataset. |
protected float[] |
calculateAnchorPoint(ValueTick tick,
double cursor,
java.awt.geom.Rectangle2D dataArea,
org.jfree.ui.RectangleEdge edge)
Calculates the anchor point for a tick label. |
void |
centerRange(double value)
Centers the axis range about the specified value and sends an AxisChangeEvent to all registered listeners. |
java.lang.Object |
clone()
Returns a clone of the object. |
protected void |
drawAxisLine(java.awt.Graphics2D g2,
double cursor,
java.awt.geom.Rectangle2D dataArea,
org.jfree.ui.RectangleEdge edge)
Draws an axis line at the current cursor position and edge. |
protected AxisState |
drawTickMarksAndLabels(java.awt.Graphics2D g2,
double cursor,
java.awt.geom.Rectangle2D plotArea,
java.awt.geom.Rectangle2D dataArea,
org.jfree.ui.RectangleEdge edge)
Draws the axis line, tick marks and tick mark labels. |
boolean |
equals(java.lang.Object obj)
Tests the axis for equality with an arbitrary object. |
protected double |
findMaximumTickLabelHeight(java.util.List ticks,
java.awt.Graphics2D g2,
java.awt.geom.Rectangle2D drawArea,
boolean vertical)
A utility method for determining the height of the tallest tick label. |
protected double |
findMaximumTickLabelWidth(java.util.List ticks,
java.awt.Graphics2D g2,
java.awt.geom.Rectangle2D drawArea,
boolean vertical)
A utility method for determining the width of the widest tick label. |
double |
getAutoRangeMinimumSize()
Returns the minimum size allowed for the axis range when it is automatically calculated. |
protected int |
getAutoTickIndex()
Returns the auto tick index. |
Range |
getDefaultAutoRange()
Returns the default auto range. |
java.awt.Shape |
getDownArrow()
Returns a shape that can be displayed as an arrow pointing downwards at the end of an axis line. |
double |
getFixedAutoRange()
Returns the fixed auto range. |
java.awt.Shape |
getLeftArrow()
Returns a shape that can be displayed as an arrow pointing left at the end of an axis line. |
double |
getLowerBound()
Returns the lower bound of the axis range. |
double |
getLowerMargin()
Returns the lower margin for the axis, expressed as a percentage of the axis range. |
int |
getMinorTickCount()
Returns the number of minor tick marks to display. |
Range |
getRange()
Returns the range for the axis. |
java.awt.Shape |
getRightArrow()
Returns a shape that can be displayed as an arrow pointing right at the end of an axis line. |
TickUnitSource |
getStandardTickUnits()
Returns the source for obtaining standard tick units for the axis. |
java.awt.Shape |
getUpArrow()
Returns a shape that can be displayed as an arrow pointing upwards at the end of an axis line. |
double |
getUpperBound()
Returns the upper bound for the axis range. |
double |
getUpperMargin()
Returns the upper margin for the axis, expressed as a percentage of the axis range. |
boolean |
isAutoRange()
Returns the flag that controls whether or not the axis range is automatically adjusted to fit the data values. |
boolean |
isAutoTickUnitSelection()
Returns a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units. |
boolean |
isInverted()
Returns a flag that controls the direction of values on the axis. |
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. |
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. |
boolean |
isVerticalTickLabels()
Returns true if the tick labels should be rotated (to
vertical), and false otherwise. |
abstract double |
java2DToValue(double java2DValue,
java.awt.geom.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. |
double |
lengthToJava2D(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. |
void |
pan(double percent)
Slides the axis range by the specified percentage. |
AxisSpace |
reserveSpace(java.awt.Graphics2D g2,
Plot plot,
java.awt.geom.Rectangle2D plotArea,
org.jfree.ui.RectangleEdge edge,
AxisSpace space)
Returns the space required to draw the axis. |
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. |
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. |
void |
resizeRange2(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. |
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. |
protected void |
setAutoRange(boolean auto,
boolean notify)
Sets the auto range attribute. |
void |
setAutoRangeMinimumSize(double size)
Sets the auto range minimum size and sends an AxisChangeEvent
to all registered listeners. |
void |
setAutoRangeMinimumSize(double size,
boolean notify)
Sets the minimum size allowed for the axis range when it is automatically calculated. |
protected void |
setAutoTickIndex(int index)
Sets the auto tick index. |
void |
setAutoTickUnitSelection(boolean flag)
Sets a flag indicating whether or not the tick unit is automatically selected from a range of standard tick units. |
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. |
void |
setDefaultAutoRange(Range range)
Sets the default auto range and sends an AxisChangeEvent to all
registered listeners. |
void |
setDownArrow(java.awt.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. |
void |
setFixedAutoRange(double length)
Sets the fixed auto range for the axis. |
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. |
void |
setLeftArrow(java.awt.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. |
void |
setLowerBound(double min)
Sets the lower bound for the axis range. |
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. |
void |
setMinorTickCount(int count)
Sets the number of minor tick marks to display, and sends an AxisChangeEvent to all registered listeners. |
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. |
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. |
void |
setRange(double lower,
double upper)
Sets the axis range and sends an AxisChangeEvent to all
registered listeners. |
void |
setRange(Range range)
Sets the range attribute and sends an AxisChangeEvent to all
registered listeners. |
void |
setRange(Range range,
boolean turnOffAutoRange,
boolean notify)
Sets the range for the axis, if requested, sends an AxisChangeEvent to all registered listeners. |
void |
setRangeAboutValue(double value,
double length)
Sets the axis range, where the new range is 'size' in length, and centered on 'value'. |
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. |
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. |
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. |
void |
setRightArrow(java.awt.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. |
void |
setStandardTickUnits(TickUnitSource source)
Sets the source for obtaining standard tick units for the axis and sends an AxisChangeEvent to all registered listeners. |
void |
setUpArrow(java.awt.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. |
void |
setUpperBound(double max)
Sets the upper bound for the axis range, and sends an AxisChangeEvent to all registered listeners. |
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. |
void |
setVerticalTickLabels(boolean flag)
Sets the flag that controls whether the tick labels are displayed vertically (that is, rotated 90 degrees from horizontal). |
abstract double |
valueToJava2D(double value,
java.awt.geom.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. |
void |
zoomRange(double lowerPercent,
double upperPercent)
Zooms in on the current range. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final Range DEFAULT_RANGE
public static final boolean DEFAULT_AUTO_RANGE
public static final boolean DEFAULT_INVERTED
public static final double DEFAULT_AUTO_RANGE_MINIMUM_SIZE
public static final double DEFAULT_LOWER_MARGIN
public static final double DEFAULT_UPPER_MARGIN
public static final double DEFAULT_LOWER_BOUND
getDefaultAutoRange()
).
public static final double DEFAULT_UPPER_BOUND
getDefaultAutoRange()
).
public static final boolean DEFAULT_AUTO_TICK_UNIT_SELECTION
public static final int MAXIMUM_TICK_COUNT
Constructor Detail |
---|
protected ValueAxis(java.lang.String label, TickUnitSource standardTickUnits)
label
- the axis label (null
permitted).standardTickUnits
- the source for standard tick units
(null
permitted).Method Detail |
---|
public boolean isVerticalTickLabels()
true
if the tick labels should be rotated (to
vertical), and false
otherwise.
true
or false
.setVerticalTickLabels(boolean)
public void setVerticalTickLabels(boolean flag)
AxisChangeEvent
is sent to all registered
listeners.
flag
- the flag.isVerticalTickLabels()
public boolean isPositiveArrowVisible()
setPositiveArrowVisible(boolean)
public void setPositiveArrowVisible(boolean visible)
AxisChangeEvent
to all registered listeners.
visible
- the flag.isPositiveArrowVisible()
public boolean isNegativeArrowVisible()
setNegativeArrowVisible(boolean)
public void setNegativeArrowVisible(boolean visible)
AxisChangeEvent
to all registered listeners.
visible
- the flag.setNegativeArrowVisible(boolean)
public java.awt.Shape getUpArrow()
null
).setUpArrow(Shape)
public void setUpArrow(java.awt.Shape arrow)
AxisChangeEvent
to all
registered listeners.
arrow
- the arrow shape (null
not permitted).getUpArrow()
public java.awt.Shape getDownArrow()
null
).setDownArrow(Shape)
public void setDownArrow(java.awt.Shape arrow)
AxisChangeEvent
to all
registered listeners.
arrow
- the arrow shape (null
not permitted).getDownArrow()
public java.awt.Shape getLeftArrow()
null
).setLeftArrow(Shape)
public void setLeftArrow(java.awt.Shape arrow)
AxisChangeEvent
to all
registered listeners.
arrow
- the arrow shape (null
not permitted).getLeftArrow()
public java.awt.Shape getRightArrow()
null
).setRightArrow(Shape)
public void setRightArrow(java.awt.Shape arrow)
AxisChangeEvent
to all
registered listeners.
arrow
- the arrow shape (null
not permitted).getRightArrow()
protected void drawAxisLine(java.awt.Graphics2D g2, double cursor, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
drawAxisLine
in class Axis
g2
- the graphics device.cursor
- the cursor position.dataArea
- the data area.edge
- the edge.protected float[] calculateAnchorPoint(ValueTick tick, double cursor, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
tick
- the tick.cursor
- the cursor.dataArea
- the data area.edge
- the edge on which the axis is drawn.
protected AxisState drawTickMarksAndLabels(java.awt.Graphics2D g2, double cursor, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
g2
- the graphics device.cursor
- the cursor.plotArea
- the plot area.dataArea
- the data area.edge
- the edge that the axis is aligned with.
public AxisSpace reserveSpace(java.awt.Graphics2D g2, Plot plot, java.awt.geom.Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge, AxisSpace space)
reserveSpace
in class Axis
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).
protected double findMaximumTickLabelHeight(java.util.List ticks, java.awt.Graphics2D g2, java.awt.geom.Rectangle2D drawArea, boolean vertical)
ticks
- the ticks.g2
- the graphics device.drawArea
- the area within which the plot and axes should be drawn.vertical
- a flag that indicates whether or not the tick labels
are 'vertical'.
protected double findMaximumTickLabelWidth(java.util.List ticks, java.awt.Graphics2D g2, java.awt.geom.Rectangle2D drawArea, boolean vertical)
ticks
- the ticks.g2
- the graphics device.drawArea
- the area within which the plot and axes should be drawn.vertical
- a flag that indicates whether or not the tick labels
are 'vertical'.
public boolean isInverted()
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.
setInverted(boolean)
public void setInverted(boolean flag)
flag
- the flag.isInverted()
public boolean isAutoRange()
setAutoRange(boolean)
public void setAutoRange(boolean auto)
auto
- the new value of the flag.isAutoRange()
protected void setAutoRange(boolean auto, boolean notify)
notify
flag is set,
an AxisChangeEvent
is sent to registered listeners.
auto
- the flag.notify
- notify listeners?isAutoRange()
public double getAutoRangeMinimumSize()
setAutoRangeMinimumSize(double)
public void setAutoRangeMinimumSize(double size)
AxisChangeEvent
to all registered listeners.
size
- the size.getAutoRangeMinimumSize()
public void setAutoRangeMinimumSize(double size, boolean notify)
If requested, an AxisChangeEvent
is forwarded to all registered
listeners.
size
- the new minimum.notify
- notify listeners?public Range getDefaultAutoRange()
null
).setDefaultAutoRange(Range)
public void setDefaultAutoRange(Range range)
AxisChangeEvent
to all
registered listeners.
range
- the range (null
not permitted).getDefaultAutoRange()
public double getLowerMargin()
setLowerMargin(double)
public void setLowerMargin(double margin)
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.
margin
- the margin percentage (for example, 0.05 is five percent).getLowerMargin()
,
setUpperMargin(double)
public double getUpperMargin()
setUpperMargin(double)
public void setUpperMargin(double margin)
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.
margin
- the margin percentage (for example, 0.05 is five percent).getLowerMargin()
,
setLowerMargin(double)
public double getFixedAutoRange()
setFixedAutoRange(double)
public void setFixedAutoRange(double length)
length
- the range length.getFixedAutoRange()
public double getLowerBound()
setLowerBound(double)
public void setLowerBound(double min)
AxisChangeEvent
is
sent to all registered listeners.
min
- the new minimum.getLowerBound()
public double getUpperBound()
setUpperBound(double)
public void setUpperBound(double max)
AxisChangeEvent
to all registered listeners.
max
- the new maximum.getUpperBound()
public Range getRange()
null
).setRange(Range)
public void setRange(Range range)
AxisChangeEvent
to all
registered listeners. As a side-effect, the auto-range flag is set to
false
.
range
- the range (null
not permitted).getRange()
public void setRange(Range range, boolean turnOffAutoRange, boolean notify)
AxisChangeEvent
to all registered listeners. As a side-effect,
the auto-range flag is set to false
(optional).
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.getRange()
public void setRange(double lower, double upper)
AxisChangeEvent
to all
registered listeners. As a side-effect, the auto-range flag is set to
false
.
lower
- the lower axis limit.upper
- the upper axis limit.getRange()
,
setRange(Range)
public void setRangeWithMargins(Range range)
AxisChangeEvent
to all
registered listeners.
range
- the range (null
not permitted).public void setRangeWithMargins(Range range, boolean turnOffAutoRange, boolean notify)
AxisChangeEvent
to all
registered listeners. As a side-effect, the auto-range flag is set to
false
(optional).
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.public void setRangeWithMargins(double lower, double upper)
AxisChangeEvent
to all registered listeners.
As a side-effect, the auto-range flag is set to false
.
lower
- the lower axis limit.upper
- the upper axis limit.public void setRangeAboutValue(double value, double length)
value
- the central value.length
- the range length.public boolean isAutoTickUnitSelection()
setAutoTickUnitSelection(boolean)
public void setAutoTickUnitSelection(boolean flag)
flag
- the new value of the flag.isAutoTickUnitSelection()
public void setAutoTickUnitSelection(boolean flag, boolean notify)
flag
- the new value of the flag.notify
- notify listeners?isAutoTickUnitSelection()
public TickUnitSource getStandardTickUnits()
null
).setStandardTickUnits(TickUnitSource)
public void setStandardTickUnits(TickUnitSource source)
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.
source
- the source for standard tick units (null
permitted).getStandardTickUnits()
public int getMinorTickCount()
setMinorTickCount(int)
public void setMinorTickCount(int count)
AxisChangeEvent
to all registered listeners.
count
- the count.getMinorTickCount()
public abstract double valueToJava2D(double value, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)
Note that it is possible for the coordinate to fall outside the area.
value
- the data value.area
- the area for plotting the data.edge
- the edge along which the axis lies.
java2DToValue(double, Rectangle2D, RectangleEdge)
public double lengthToJava2D(double length, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)
length
- the length.area
- the plot area.edge
- the edge along which the axis lies.
public abstract double java2DToValue(double java2DValue, java.awt.geom.Rectangle2D area, org.jfree.ui.RectangleEdge edge)
java2DValue
- the coordinate in Java2D space.area
- the area in which the data is plotted.edge
- the edge along which the axis lies.
valueToJava2D(double, Rectangle2D, RectangleEdge)
protected abstract void autoAdjustRange()
public void centerRange(double value)
AxisChangeEvent
to all registered listeners.
value
- the center value.public void resizeRange(double percent)
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).
percent
- the resize factor.resizeRange(double, double)
public void resizeRange(double percent, double anchorValue)
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).
percent
- the resize factor.anchorValue
- the new central value after the resize.resizeRange(double)
public void resizeRange2(double percent, double anchorValue)
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).
percent
- the resize factor.anchorValue
- the new central value after the resize.resizeRange(double)
public void zoomRange(double lowerPercent, double upperPercent)
lowerPercent
- the new lower bound.upperPercent
- the new upper bound.public void pan(double percent)
percent
- the percentage.protected int getAutoTickIndex()
setAutoTickIndex(int)
protected void setAutoTickIndex(int index)
index
- the new value.getAutoTickIndex()
public boolean equals(java.lang.Object obj)
equals
in class Axis
obj
- the object (null
permitted).
true
or false
.public java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in interface org.jfree.util.PublicCloneable
clone
in class Axis
java.lang.CloneNotSupportedException
- if some component of the axis does
not support cloning.
|
Footer
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |