java.lang.Object
org.jfree.chart.axis.Axis
org.jfree.chart.axis.CategoryAxis
- All Implemented Interfaces:
Serializable,Cloneable
- Direct Known Subclasses:
ExtendedCategoryAxis,SubCategoryAxis
An axis that displays categories.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleThe default margin for the axis (used for both lower and upper margins).static final doubleThe default margin between categories (a percentage of the overall axis length).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
ConstructorsConstructorDescriptionCreates a new category axis with no label.CategoryAxis(String label) Constructs a category axis, using default values where necessary. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCategoryLabelToolTip(Comparable category, String tooltip) Adds a tooltip to the specified category and sends anAxisChangeEventto all registered listeners.voidaddCategoryLabelURL(Comparable category, String url) Adds a URL (to be used in image maps) to the specified category and sends anAxisChangeEventto all registered listeners.protected doublecalculateCategoryGapSize(int categoryCount, Rectangle2D area, RectangleEdge edge) Calculates the size (width or height, depending on the location of the axis) of a category gap.protected doublecalculateCategorySize(int categoryCount, Rectangle2D area, RectangleEdge edge) Calculates the size (width or height, depending on the location of the axis) of a category.protected doublecalculateTextBlockHeight(TextBlock block, CategoryLabelPosition position, Graphics2D g2) A utility method for determining the height of a text block.protected doublecalculateTextBlockWidth(TextBlock block, CategoryLabelPosition position, Graphics2D g2) A utility method for determining the width of a text block.voidClears the category label tooltips and sends anAxisChangeEventto all registered listeners.voidClears the category label URLs and sends anAxisChangeEventto all registered listeners.clone()Creates a clone of the axis.voidConfigures the axis against the current plot.protected TextBlockcreateLabel(Comparable category, float width, RectangleEdge edge, Graphics2D g2) Creates a label.draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState) Draws the axis on a Java 2D graphics device (such as the screen or a printer).protected AxisStatedrawCategoryLabels(Graphics2D g2, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, AxisState state, PlotRenderingInfo plotState) Draws the category labels and returns the updated axis state.voiddrawTickMarks(Graphics2D g2, double cursor, Rectangle2D dataArea, RectangleEdge edge, AxisState state) Draws the tick marks.booleanTests this axis for equality with an arbitrary object.doublegetCategoryEnd(int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the end coordinate for the specified category.doublegetCategoryJava2DCoordinate(CategoryAnchor anchor, int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the Java 2D coordinate for a category.intReturns the offset between the axis and the category labels (before label positioning is taken into account).Returns the category label position specification (this contains label positioning info for all four possible axis locations).getCategoryLabelToolTip(Comparable category) Returns the tool tip text for the label belonging to the specified category.getCategoryLabelURL(Comparable category) Returns the URL for the label belonging to the specified category.doubleReturns the category margin.doublegetCategoryMiddle(int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the middle coordinate for the specified category.doublegetCategoryMiddle(Comparable category, List categories, Rectangle2D area, RectangleEdge edge) A convenience method that returns the axis coordinate for the centre of a category.doublegetCategorySeriesMiddle(int categoryIndex, int categoryCount, int seriesIndex, int seriesCount, double itemMargin, Rectangle2D area, RectangleEdge edge) Returns the middle coordinate (in Java2D space) for a series within a category.doublegetCategorySeriesMiddle(Comparable category, Comparable seriesKey, CategoryDataset dataset, double itemMargin, Rectangle2D area, RectangleEdge edge) Returns the middle coordinate (in Java2D space) for a series within a category.doublegetCategoryStart(int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the starting coordinate for the specified category.doubleReturns the lower margin for the axis.intReturns the maximum number of lines to use for each category label.floatReturns the category label width ratio.getTickLabelFont(Comparable category) Returns the font for the tick label for the given category.getTickLabelPaint(Comparable category) Returns the paint for the tick label for the given category.doubleReturns the upper margin for the axis.inthashCode()Returns a hash code for this object.refreshTicks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge) Creates a temporary list of ticks that can be used when drawing the axis.voidremoveCategoryLabelToolTip(Comparable category) Removes the tooltip for the specified category and, if there was a value associated with that category, sends anAxisChangeEventto all registered listeners.voidremoveCategoryLabelURL(Comparable category) Removes the URL for the specified category and, if there was a URL associated with that category, sends anAxisChangeEventto all registered listeners.reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space) Estimates the space required for the axis, given a specific drawing area.voidsetCategoryLabelPositionOffset(int offset) Sets the offset between the axis and the category labels (before label positioning is taken into account) and sends a change event to all registered listeners.voidsetCategoryLabelPositions(CategoryLabelPositions positions) Sets the category label position specification for the axis and sends anAxisChangeEventto all registered listeners.voidsetCategoryMargin(double margin) Sets the category margin and sends anAxisChangeEventto all registered listeners.voidsetLowerMargin(double margin) Sets the lower margin for the axis and sends anAxisChangeEventto all registered listeners.voidsetMaximumCategoryLabelLines(int lines) Sets the maximum number of lines to use for each category label and sends anAxisChangeEventto all registered listeners.voidsetMaximumCategoryLabelWidthRatio(float ratio) Sets the maximum category label width ratio and sends anAxisChangeEventto all registered listeners.voidsetTickLabelFont(Comparable category, Font font) Sets the font for the tick label for the specified category and sends anAxisChangeEventto all registered listeners.voidsetTickLabelPaint(Comparable category, Paint paint) Sets the paint for the tick label for the specified category and sends anAxisChangeEventto all registered listeners.voidsetUpperMargin(double margin) Sets the upper margin for the axis and sends anAxisChangeEventto all registered listeners.Methods inherited from class org.jfree.chart.axis.Axis
addChangeListener, createAndAddEntity, createAttributedLabel, drawAttributedLabel, drawAxisLine, 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
-
Field Details
-
DEFAULT_AXIS_MARGIN
public static final double DEFAULT_AXIS_MARGINThe default margin for the axis (used for both lower and upper margins).- See Also:
-
DEFAULT_CATEGORY_MARGIN
public static final double DEFAULT_CATEGORY_MARGINThe default margin between categories (a percentage of the overall axis length).- See Also:
-
-
Constructor Details
-
CategoryAxis
public CategoryAxis()Creates a new category axis with no label. -
CategoryAxis
Constructs a category axis, using default values where necessary.- Parameters:
label- the axis label (nullpermitted).
-
-
Method Details
-
getLowerMargin
public double getLowerMargin()Returns the lower margin for the axis.- Returns:
- The margin.
- See Also:
-
setLowerMargin
public void setLowerMargin(double margin) Sets the lower margin for the axis and sends anAxisChangeEventto all registered listeners.- Parameters:
margin- the margin as a percentage of the axis length (for example, 0.05 is five percent).- See Also:
-
getUpperMargin
public double getUpperMargin()Returns the upper margin for the axis.- Returns:
- The margin.
- See Also:
-
setUpperMargin
public void setUpperMargin(double margin) Sets the upper margin for the axis and sends anAxisChangeEventto all registered listeners.- Parameters:
margin- the margin as a percentage of the axis length (for example, 0.05 is five percent).- See Also:
-
getCategoryMargin
public double getCategoryMargin()Returns the category margin.- Returns:
- The margin.
- See Also:
-
setCategoryMargin
public void setCategoryMargin(double margin) Sets the category margin and sends anAxisChangeEventto all registered listeners. The overall category margin is distributed over N-1 gaps, where N is the number of categories on the axis.- Parameters:
margin- the margin as a percentage of the axis length (for example, 0.05 is five percent).- See Also:
-
getMaximumCategoryLabelLines
public int getMaximumCategoryLabelLines()Returns the maximum number of lines to use for each category label.- Returns:
- The maximum number of lines.
- See Also:
-
setMaximumCategoryLabelLines
public void setMaximumCategoryLabelLines(int lines) Sets the maximum number of lines to use for each category label and sends anAxisChangeEventto all registered listeners.- Parameters:
lines- the maximum number of lines.- See Also:
-
getMaximumCategoryLabelWidthRatio
public float getMaximumCategoryLabelWidthRatio()Returns the category label width ratio.- Returns:
- The ratio.
- See Also:
-
setMaximumCategoryLabelWidthRatio
public void setMaximumCategoryLabelWidthRatio(float ratio) Sets the maximum category label width ratio and sends anAxisChangeEventto all registered listeners.- Parameters:
ratio- the ratio.- See Also:
-
getCategoryLabelPositionOffset
public int getCategoryLabelPositionOffset()Returns the offset between the axis and the category labels (before label positioning is taken into account).- Returns:
- The offset (in Java2D units).
- See Also:
-
setCategoryLabelPositionOffset
public void setCategoryLabelPositionOffset(int offset) Sets the offset between the axis and the category labels (before label positioning is taken into account) and sends a change event to all registered listeners.- Parameters:
offset- the offset (in Java2D units).- See Also:
-
getCategoryLabelPositions
Returns the category label position specification (this contains label positioning info for all four possible axis locations).- Returns:
- The positions (never
null). - See Also:
-
setCategoryLabelPositions
Sets the category label position specification for the axis and sends anAxisChangeEventto all registered listeners.- Parameters:
positions- the positions (nullnot permitted).- See Also:
-
getTickLabelFont
Returns the font for the tick label for the given category.- Parameters:
category- the category (nullnot permitted).- Returns:
- The font (never
null). - See Also:
-
setTickLabelFont
Sets the font for the tick label for the specified category and sends anAxisChangeEventto all registered listeners.- Parameters:
category- the category (nullnot permitted).font- the font (nullpermitted).- See Also:
-
getTickLabelPaint
Returns the paint for the tick label for the given category.- Parameters:
category- the category (nullnot permitted).- Returns:
- The paint (never
null). - See Also:
-
setTickLabelPaint
Sets the paint for the tick label for the specified category and sends anAxisChangeEventto all registered listeners.- Parameters:
category- the category (nullnot permitted).paint- the paint (nullpermitted).- See Also:
-
addCategoryLabelToolTip
Adds a tooltip to the specified category and sends anAxisChangeEventto all registered listeners.- Parameters:
category- the category (nullnot permitted).tooltip- the tooltip text (nullpermitted).- See Also:
-
getCategoryLabelToolTip
Returns the tool tip text for the label belonging to the specified category.- Parameters:
category- the category (nullnot permitted).- Returns:
- The tool tip text (possibly
null). - See Also:
-
removeCategoryLabelToolTip
Removes the tooltip for the specified category and, if there was a value associated with that category, sends anAxisChangeEventto all registered listeners.- Parameters:
category- the category (nullnot permitted).- See Also:
-
clearCategoryLabelToolTips
public void clearCategoryLabelToolTips()Clears the category label tooltips and sends anAxisChangeEventto all registered listeners.- See Also:
-
addCategoryLabelURL
Adds a URL (to be used in image maps) to the specified category and sends anAxisChangeEventto all registered listeners.- Parameters:
category- the category (nullnot permitted).url- the URL text (nullpermitted).- See Also:
-
getCategoryLabelURL
Returns the URL for the label belonging to the specified category.- Parameters:
category- the category (nullnot permitted).- Returns:
- The URL text (possibly
null). - See Also:
-
removeCategoryLabelURL
Removes the URL for the specified category and, if there was a URL associated with that category, sends anAxisChangeEventto all registered listeners.- Parameters:
category- the category (nullnot permitted).- See Also:
-
clearCategoryLabelURLs
public void clearCategoryLabelURLs()Clears the category label URLs and sends anAxisChangeEventto all registered listeners.- See Also:
-
getCategoryJava2DCoordinate
public double getCategoryJava2DCoordinate(CategoryAnchor anchor, int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the Java 2D coordinate for a category.- Parameters:
anchor- the anchor point.category- the category index.categoryCount- the category count.area- the data area.edge- the location of the axis.- Returns:
- The coordinate.
-
getCategoryStart
public double getCategoryStart(int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the starting coordinate for the specified category.- Parameters:
category- the category.categoryCount- the number of categories.area- the data area.edge- the axis location.- Returns:
- The coordinate.
- See Also:
-
getCategoryMiddle
public double getCategoryMiddle(int category, int categoryCount, Rectangle2D area, RectangleEdge edge) Returns the middle coordinate for the specified category.- Parameters:
category- the category.categoryCount- the number of categories.area- the data area.edge- the axis location.- Returns:
- The coordinate.
- See Also:
-
getCategoryEnd
Returns the end coordinate for the specified category.- Parameters:
category- the category.categoryCount- the number of categories.area- the data area.edge- the axis location.- Returns:
- The coordinate.
- See Also:
-
getCategoryMiddle
public double getCategoryMiddle(Comparable category, List categories, Rectangle2D area, RectangleEdge edge) A convenience method that returns the axis coordinate for the centre of a category.- Parameters:
category- the category key (nullnot permitted).categories- the categories (nullnot permitted).area- the data area (nullnot permitted).edge- the edge along which the axis lies (nullnot permitted).- Returns:
- The centre coordinate.
- See Also:
-
getCategorySeriesMiddle
public double getCategorySeriesMiddle(Comparable category, Comparable seriesKey, CategoryDataset dataset, double itemMargin, Rectangle2D area, RectangleEdge edge) Returns the middle coordinate (in Java2D space) for a series within a category.- Parameters:
category- the category (nullnot permitted).seriesKey- the series key (nullnot permitted).dataset- the dataset (nullnot permitted).itemMargin- the item margin (0.0 <= itemMargin < 1.0);area- the area (nullnot permitted).edge- the edge (nullnot permitted).- Returns:
- The coordinate in Java2D space.
-
getCategorySeriesMiddle
public double getCategorySeriesMiddle(int categoryIndex, int categoryCount, int seriesIndex, int seriesCount, double itemMargin, Rectangle2D area, RectangleEdge edge) Returns the middle coordinate (in Java2D space) for a series within a category.- Parameters:
categoryIndex- the category index.categoryCount- the category count.seriesIndex- the series index.seriesCount- the series count.itemMargin- the item margin (0.0 <= itemMargin < 1.0);area- the area (nullnot permitted).edge- the edge (nullnot permitted).- Returns:
- The coordinate in Java2D space.
-
calculateCategorySize
Calculates the size (width or height, depending on the location of the axis) of a category.- Parameters:
categoryCount- the number of categories.area- the area within which the categories will be drawn.edge- the axis location.- Returns:
- The category size.
-
calculateCategoryGapSize
Calculates the size (width or height, depending on the location of the axis) of a category gap.- Parameters:
categoryCount- the number of categories.area- the area within which the categories will be drawn.edge- the axis location.- Returns:
- The category gap width.
-
reserveSpace
public AxisSpace reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space) Estimates the space required for the axis, given a specific drawing area.- Specified by:
reserveSpacein classAxis- Parameters:
g2- the graphics device (used to obtain font information).plot- the plot that the axis belongs to.plotArea- the area within which the axis should be drawn.edge- the axis location (top or bottom).space- the space already reserved.- Returns:
- The space required to draw the axis.
-
configure
public void configure()Configures the axis against the current plot. -
draw
public AxisState draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState) Draws the axis on a Java 2D graphics device (such as the screen or a printer).- Specified by:
drawin classAxis- Parameters:
g2- the graphics device (nullnot permitted).cursor- the cursor location.plotArea- the area within which the axis should be drawn (nullnot permitted).dataArea- the area within which the plot is being drawn (nullnot permitted).edge- the location of the axis (nullnot permitted).plotState- collects information about the plot (nullpermitted).- Returns:
- The axis state (never
null).
-
drawCategoryLabels
protected AxisState drawCategoryLabels(Graphics2D g2, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, AxisState state, PlotRenderingInfo plotState) Draws the category labels and returns the updated axis state.- Parameters:
g2- the graphics device (nullnot permitted).plotArea- the plot area (nullnot permitted).dataArea- the area inside the axes (nullnot permitted).edge- the axis location (nullnot permitted).state- the axis state (nullnot permitted).plotState- collects information about the plot (nullpermitted).- Returns:
- The updated axis state (never
null).
-
refreshTicks
Creates a temporary list of ticks that can be used when drawing the axis.- Specified by:
refreshTicksin classAxis- Parameters:
g2- the graphics device (used to get font measurements).state- the axis state.dataArea- the area inside the axes.edge- the location of the axis.- Returns:
- A list of ticks.
-
drawTickMarks
public void drawTickMarks(Graphics2D g2, double cursor, Rectangle2D dataArea, RectangleEdge edge, AxisState state) Draws the tick marks.- Parameters:
g2- the graphics target.cursor- the cursor position (an offset when drawing multiple axes)dataArea- the area for plotting the data.edge- the location of the axis.state- the axis state.
-
createLabel
protected TextBlock createLabel(Comparable category, float width, RectangleEdge edge, Graphics2D g2) Creates a label.- Parameters:
category- the category.width- the available width.edge- the edge on which the axis appears.g2- the graphics device.- Returns:
- A label.
-
calculateTextBlockWidth
protected double calculateTextBlockWidth(TextBlock block, CategoryLabelPosition position, Graphics2D g2) A utility method for determining the width of a text block.- Parameters:
block- the text block.position- the position.g2- the graphics device.- Returns:
- The width.
-
calculateTextBlockHeight
protected double calculateTextBlockHeight(TextBlock block, CategoryLabelPosition position, Graphics2D g2) A utility method for determining the height of a text block.- Parameters:
block- the text block.position- the label position.g2- the graphics device.- Returns:
- The height.
-
clone
Creates a clone of the axis.- Overrides:
clonein classAxis- Returns:
- A clone.
- Throws:
CloneNotSupportedException- if some component of the axis does not support cloning.
-
equals
Tests this axis for equality with an arbitrary object. -
hashCode
public int hashCode()Returns a hash code for this object.
-