public class

CategoryAxis

extends Axis
implements Serializable Cloneable
java.lang.Object
   ↳ org.jfree.chart.axis.Axis
     ↳ org.jfree.chart.axis.CategoryAxis
Known Direct Subclasses

Class Overview

An axis that displays categories.

Summary

Constants
double DEFAULT_AXIS_MARGIN The default margin for the axis (used for both lower and upper margins).
double DEFAULT_CATEGORY_MARGIN The default margin between categories (a percentage of the overall axis length).
[Expand]
Inherited Constants
From class org.jfree.chart.axis.Axis
[Expand]
Inherited Fields
From class org.jfree.chart.axis.Axis
Public Constructors
CategoryAxis()
Creates a new category axis with no label.
CategoryAxis(String label)
Constructs a category axis, using default values where necessary.
Public Methods
void addCategoryLabelToolTip(Comparable category, String tooltip)
Adds a tooltip to the specified category and sends an AxisChangeEvent to all registered listeners.
void clearCategoryLabelToolTips()
Clears the category label tooltips and sends an AxisChangeEvent to all registered listeners.
Object clone()
Creates a clone of the axis.
void configure()
Configures the axis against the current plot.
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).
void drawTickMarks(Graphics2D g2, double cursor, Rectangle2D dataArea, RectangleEdge edge, AxisState state)
Draws the tick marks.
boolean equals(Object obj)
Tests this axis for equality with an arbitrary object.
double getCategoryEnd(int category, int categoryCount, Rectangle2D area, RectangleEdge edge)
Returns the end coordinate for the specified category.
double getCategoryJava2DCoordinate(CategoryAnchor anchor, int category, int categoryCount, Rectangle2D area, RectangleEdge edge)
Returns the Java 2D coordinate for a category.
int getCategoryLabelPositionOffset()
Returns the offset between the axis and the category labels (before label positioning is taken into account).
CategoryLabelPositions getCategoryLabelPositions()
Returns the category label position specification (this contains label positioning info for all four possible axis locations).
String getCategoryLabelToolTip(Comparable category)
Returns the tool tip text for the label belonging to the specified category.
double getCategoryMargin()
Returns the category margin.
double getCategoryMiddle(Comparable category, List categories, Rectangle2D area, RectangleEdge edge)
A convenience method that returns the axis coordinate for the centre of a category.
double getCategoryMiddle(int category, int categoryCount, Rectangle2D area, RectangleEdge edge)
Returns the middle coordinate for the specified category.
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.
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.
double getCategoryStart(int category, int categoryCount, Rectangle2D area, RectangleEdge edge)
Returns the starting coordinate for the specified category.
double getLowerMargin()
Returns the lower margin for the axis.
int getMaximumCategoryLabelLines()
Returns the maximum number of lines to use for each category label.
float getMaximumCategoryLabelWidthRatio()
Returns the category label width ratio.
Font getTickLabelFont(Comparable category)
Returns the font for the tick label for the given category.
Paint getTickLabelPaint(Comparable category)
Returns the paint for the tick label for the given category.
double getUpperMargin()
Returns the upper margin for the axis.
int hashCode()
Returns a hash code for this object.
List refreshTicks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Creates a temporary list of ticks that can be used when drawing the axis.
void removeCategoryLabelToolTip(Comparable category)
Removes the tooltip for the specified category and sends an AxisChangeEvent to all registered listeners.
AxisSpace reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space)
Estimates the space required for the axis, given a specific drawing area.
void setCategoryLabelPositionOffset(int offset)
Sets the offset between the axis and the category labels (before label positioning is taken into account).
void setCategoryLabelPositions(CategoryLabelPositions positions)
Sets the category label position specification for the axis and sends an AxisChangeEvent to all registered listeners.
void setCategoryMargin(double margin)
Sets the category margin and sends an AxisChangeEvent to all registered listeners.
void setLowerMargin(double margin)
Sets the lower margin for the axis and sends an AxisChangeEvent to all registered listeners.
void setMaximumCategoryLabelLines(int lines)
Sets the maximum number of lines to use for each category label and sends an AxisChangeEvent to all registered listeners.
void setMaximumCategoryLabelWidthRatio(float ratio)
Sets the maximum category label width ratio and sends an AxisChangeEvent to all registered listeners.
void setTickLabelFont(Comparable category, Font font)
Sets the font for the tick label for the specified category and sends an AxisChangeEvent to all registered listeners.
void setTickLabelPaint(Comparable category, Paint paint)
Sets the paint for the tick label for the specified category and sends an AxisChangeEvent to all registered listeners.
void setUpperMargin(double margin)
Sets the upper margin for the axis and sends an AxisChangeEvent to all registered listeners.
Protected Methods
double calculateCategoryGapSize(int categoryCount, Rectangle2D area, RectangleEdge edge)
Calculates the size (width or height, depending on the location of the axis) of a category gap.
double calculateCategorySize(int categoryCount, Rectangle2D area, RectangleEdge edge)
Calculates the size (width or height, depending on the location of the axis) of a category.
double calculateTextBlockHeight(TextBlock block, CategoryLabelPosition position, Graphics2D g2)
A utility method for determining the height of a text block.
double calculateTextBlockWidth(TextBlock block, CategoryLabelPosition position, Graphics2D g2)
A utility method for determining the width of a text block.
TextBlock createLabel(Comparable category, float width, RectangleEdge edge, Graphics2D g2)
Creates a label.
AxisState drawCategoryLabels(Graphics2D g2, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, AxisState state, PlotRenderingInfo plotState)
Draws the category labels and returns the updated axis state.
AxisState drawCategoryLabels(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge, AxisState state, PlotRenderingInfo plotState)
[Expand]
Inherited Methods
From class org.jfree.chart.axis.Axis
From class java.lang.Object

Constants

public static final double DEFAULT_AXIS_MARGIN

The default margin for the axis (used for both lower and upper margins).

Constant Value: 0.05

public static final double DEFAULT_CATEGORY_MARGIN

The default margin between categories (a percentage of the overall axis length).

Constant Value: 0.2

Public Constructors

public CategoryAxis ()

Creates a new category axis with no label.

public CategoryAxis (String label)

Constructs a category axis, using default values where necessary.

Parameters
label the axis label (null permitted).

Public Methods

public void addCategoryLabelToolTip (Comparable category, String tooltip)

Adds a tooltip to the specified category and sends an AxisChangeEvent to all registered listeners.

Parameters
category the category (null not permitted).
tooltip the tooltip text (null permitted).

public void clearCategoryLabelToolTips ()

Clears the category label tooltips and sends an AxisChangeEvent to all registered listeners.

public Object clone ()

Creates a clone of the axis.

Returns
  • A clone.
Throws
CloneNotSupportedException if some component of the axis does not support cloning.

public void configure ()

Configures the axis against the current plot.

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).

Parameters
g2 the graphics device (null not permitted).
cursor the cursor location.
plotArea the area within which the axis should be drawn (null not permitted).
dataArea the area within which the plot is being drawn (null not permitted).
edge the location of the axis (null not permitted).
plotState collects information about the plot (null permitted).
Returns
  • The axis state (never null).

public void drawTickMarks (Graphics2D g2, double cursor, Rectangle2D dataArea, RectangleEdge edge, AxisState state)

Draws the tick marks.

public boolean equals (Object obj)

Tests this axis for equality with an arbitrary object.

Parameters
obj the object (null permitted).
Returns
  • A boolean.

public double getCategoryEnd (int category, int categoryCount, Rectangle2D area, RectangleEdge edge)

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.

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.

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).

public CategoryLabelPositions getCategoryLabelPositions ()

Returns the category label position specification (this contains label positioning info for all four possible axis locations).

Returns
  • The positions (never null).

public String getCategoryLabelToolTip (Comparable category)

Returns the tool tip text for the label belonging to the specified category.

Parameters
category the category (null not permitted).
Returns
  • The tool tip text (possibly null).

public double getCategoryMargin ()

Returns the category margin.

Returns
  • The margin.

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 (null not permitted).
categories the categories (null not permitted).
area the data area (null not permitted).
edge the edge along which the axis lies (null not permitted).
Returns
  • The centre coordinate.

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.

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 (null not permitted).
seriesKey the series key (null not permitted).
dataset the dataset (null not permitted).
itemMargin the item margin (0.0 <= itemMargin < 1.0);
area the area (null not permitted).
edge the edge (null not permitted).
Returns
  • The coordinate in Java2D space.

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 (null not permitted).
edge the edge (null not permitted).
Returns
  • The coordinate in Java2D space.

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.

public double getLowerMargin ()

Returns the lower margin for the axis.

Returns
  • The margin.

public int getMaximumCategoryLabelLines ()

Returns the maximum number of lines to use for each category label.

Returns
  • The maximum number of lines.

public float getMaximumCategoryLabelWidthRatio ()

Returns the category label width ratio.

Returns
  • The ratio.

public Font getTickLabelFont (Comparable category)

Returns the font for the tick label for the given category.

Parameters
category the category (null not permitted).
Returns
  • The font (never null).

public Paint getTickLabelPaint (Comparable category)

Returns the paint for the tick label for the given category.

Parameters
category the category (null not permitted).
Returns
  • The paint (never null).

public double getUpperMargin ()

Returns the upper margin for the axis.

Returns
  • The margin.

public int hashCode ()

Returns a hash code for this object.

Returns
  • A hash code.

public List refreshTicks (Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)

Creates a temporary list of ticks that can be used when drawing the axis.

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.

public void removeCategoryLabelToolTip (Comparable category)

Removes the tooltip for the specified category and sends an AxisChangeEvent to all registered listeners.

Parameters
category the category (null not permitted).

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.

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.

public void setCategoryLabelPositionOffset (int offset)

Sets the offset between the axis and the category labels (before label positioning is taken into account).

Parameters
offset the offset (in Java2D units).

public void setCategoryLabelPositions (CategoryLabelPositions positions)

Sets the category label position specification for the axis and sends an AxisChangeEvent to all registered listeners.

Parameters
positions the positions (null not permitted).

public void setCategoryMargin (double margin)

Sets the category margin and sends an AxisChangeEvent to 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).

public void setLowerMargin (double margin)

Sets the lower margin for the axis and sends an AxisChangeEvent to all registered listeners.

Parameters
margin the margin as a percentage of the axis length (for example, 0.05 is five percent).
See Also

public void setMaximumCategoryLabelLines (int lines)

Sets the maximum number of lines to use for each category label and sends an AxisChangeEvent to all registered listeners.

Parameters
lines the maximum number of lines.

public void setMaximumCategoryLabelWidthRatio (float ratio)

Sets the maximum category label width ratio and sends an AxisChangeEvent to all registered listeners.

Parameters
ratio the ratio.

public void setTickLabelFont (Comparable category, Font font)

Sets the font for the tick label for the specified category and sends an AxisChangeEvent to all registered listeners.

Parameters
category the category (null not permitted).
font the font (null permitted).

public void setTickLabelPaint (Comparable category, Paint paint)

Sets the paint for the tick label for the specified category and sends an AxisChangeEvent to all registered listeners.

Parameters
category the category (null not permitted).
paint the paint (null permitted).

public void setUpperMargin (double margin)

Sets the upper margin for the axis and sends an AxisChangeEvent to all registered listeners.

Parameters
margin the margin as a percentage of the axis length (for example, 0.05 is five percent).
See Also

Protected Methods

protected double calculateCategoryGapSize (int categoryCount, Rectangle2D area, RectangleEdge edge)

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.

protected double calculateCategorySize (int categoryCount, Rectangle2D area, RectangleEdge edge)

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.

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.

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.

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.

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 (null not permitted).
plotArea the plot area (null not permitted).
dataArea the area inside the axes (null not permitted).
edge the axis location (null not permitted).
state the axis state (null not permitted).
plotState collects information about the plot (null permitted).
Returns
  • The updated axis state (never null).

protected AxisState drawCategoryLabels (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge, AxisState state, PlotRenderingInfo plotState)

This method is deprecated.
Use drawCategoryLabels(Graphics2D, Rectangle2D, Rectangle2D, RectangleEdge, AxisState, PlotRenderingInfo).

Draws the category labels and returns the updated axis state.

Parameters
g2 the graphics device (null not permitted).
dataArea the area inside the axes (null not permitted).
edge the axis location (null not permitted).
state the axis state (null not permitted).
plotState collects information about the plot (null permitted).
Returns
  • The updated axis state (never null).