Class CategoryAxis

java.lang.Object
org.jfree.chart.axis.Axis
org.jfree.chart.axis.CategoryAxis
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
CategoryAxis3D, ExtendedCategoryAxis, SubCategoryAxis

public class CategoryAxis
extends Axis
implements Cloneable, Serializable
An axis that displays categories.
See Also:
Serialized Form
  • Field Details

    • DEFAULT_AXIS_MARGIN

      public static final double DEFAULT_AXIS_MARGIN
      The default margin for the axis (used for both lower and upper margins).
      See Also:
      Constant Field Values
    • DEFAULT_CATEGORY_MARGIN

      public static final double DEFAULT_CATEGORY_MARGIN
      The default margin between categories (a percentage of the overall axis length).
      See Also:
      Constant Field Values
  • Constructor Details

    • CategoryAxis

      public CategoryAxis()
      Creates a new category axis with no label.
    • CategoryAxis

      public CategoryAxis​(String label)
      Constructs a category axis, using default values where necessary.
      Parameters:
      label - the axis label (null permitted).
  • Method Details

    • getLowerMargin

      public double getLowerMargin()
      Returns the lower margin for the axis.
      Returns:
      the margin.
    • setLowerMargin

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

      public double getUpperMargin()
      Returns the upper margin for the axis.
      Returns:
      the margin.
    • setUpperMargin

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

      public double getCategoryMargin()
      Returns the category margin.
      Returns:
      the margin.
    • setCategoryMargin

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

      public float getMaxCategoryLabelWidthRatio()
      Returns the category label width ratio.
      Returns:
      the ratio.
    • setMaxCategoryLabelWidthRatio

      public void setMaxCategoryLabelWidthRatio​(float ratio)
      Sets the maximum category label width ratio and sends an AxisChangeEvent to all registered listeners.
      Parameters:
      ratio - the ratio.
    • 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).
    • setCategoryLabelPositionOffset

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

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

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

      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). @param tooltip the tooltip text (null permitted).
    • removeCategoryLabelToolTip

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

      public void clearCategoryLabelToolTips()
      Clears the category label tooltips and sends an AxisChangeEvent to all registered listeners.
    • getCategoryJava2DCoordinate

      public double getCategoryJava2DCoordinate​(CategoryAnchor anchor, int category, int categoryCount, Rectangle2D area, org.jfree.ui.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, org.jfree.ui.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.
    • getCategoryMiddle

      public double getCategoryMiddle​(int category, int categoryCount, Rectangle2D area, org.jfree.ui.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.
    • getCategoryEnd

      public double getCategoryEnd​(int category, int categoryCount, Rectangle2D area, org.jfree.ui.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.
    • reserveSpace

      public AxisSpace reserveSpace​(Graphics2D g2, Plot plot, Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge, AxisSpace space, boolean isOpositeAxisVisible)
      Estimates the space required for the axis, given a specific drawing area.
      Specified by:
      reserveSpace in class Axis
      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.
      Specified by:
      configure in class Axis
    • draw

      public AxisState draw​(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge, PlotRenderingInfo plotState)
      Draws the axis on a Java 2D graphics device (such as the screen or a printer).
      Specified by:
      draw in class Axis
      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).
    • setSkipLabels

      public void setSkipLabels​(int skipValue)
    • refreshTicks

      public List refreshTicks​(Graphics2D g2, AxisState state, Rectangle2D plotArea, Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
      Creates a temporary list of ticks that can be used when drawing the axis.
      Specified by:
      refreshTicks in class Axis
      Parameters:
      g2 - the graphics device (used to get font measurements).
      state - the axis state.
      plotArea - the area where the plot and axes will be drawn.
      dataArea - the area inside the axes.
      edge - the location of the axis.
      Returns:
      A list of ticks.
    • clone

      public Object clone() throws CloneNotSupportedException
      Creates a clone of the axis.
      Overrides:
      clone in class Axis
      Returns:
      a clone.
      Throws:
      CloneNotSupportedException - if some component of the axis does not support cloning.
    • equals

      public boolean equals​(Object obj)
      Tests this axis for equality with an arbitrary object.
      Overrides:
      equals in class Axis
      Parameters:
      obj - the object (null permitted).
      Returns:
      a boolean.
    • isVerticalCategoryLabels

      public boolean isVerticalCategoryLabels()
      Deprecated.
      Use the get/setXXXCategoryLabelPosition methods.
      Returns a flag indicating whether the category labels are rotated to vertical.
      Returns:
      The flag.
    • setVerticalCategoryLabels

      public void setVerticalCategoryLabels​(boolean flag)
      Deprecated.
      Use the get/setXXXCategoryLabelPosition methods.
      Sets the flag that determines whether the category labels are rotated to vertical.
      Parameters:
      flag - the flag.
    • getSkipCategoryLabelsToFit

      public boolean getSkipCategoryLabelsToFit()
      Deprecated.
      No longer supported.
      Returns the flag that determines whether the category labels are to be skipped to avoid overlapping.
      Returns:
      The flag.
    • setSkipCategoryLabelsToFit

      public void setSkipCategoryLabelsToFit​(boolean flag)
      Deprecated.
      No longer supported.
      Sets the flag that determines whether the category labels are to be skipped to avoid overlapping.
      Parameters:
      flag - the new value of the flag.
    • getTopCategoryLabelPosition

      public CategoryLabelPosition getTopCategoryLabelPosition()
      Deprecated.
      Use getCategoryLabelPositions().getLabelPosition(RectangleEdge.TOP).
      Returns the category label positioning info that applies when the axis is displayed at the top of the plot area.
      Returns:
      the position info.
    • setTopCategoryLabelPosition

      public void setTopCategoryLabelPosition​(CategoryLabelPosition position)
      Deprecated.
      Use setCategoryLabelPositions(...).
      Sets the position info that applies when the axis is displayed at the top of the plot area.
      Parameters:
      position - the position info.
    • getBottomCategoryLabelPosition

      public CategoryLabelPosition getBottomCategoryLabelPosition()
      Deprecated.
      Use getCategoryLabelPositions().getLabelPosition(RectangleEdge.BOTTOM).
      Returns the category label positioning info that applies when the axis is displayed at the bottom of the plot area.
      Returns:
      the position info.
    • setBottomCategoryLabelPosition

      public void setBottomCategoryLabelPosition​(CategoryLabelPosition position)
      Deprecated.
      Use setCategoryLabelPositions(...).
      Sets the position info that applies when the axis is displayed at the bottom of the plot area.
      Parameters:
      position - the position info.
    • getLeftCategoryLabelPosition

      public CategoryLabelPosition getLeftCategoryLabelPosition()
      Deprecated.
      Use getCategoryLabelPositions().getLabelPosition(RectangleEdge.LEFT).
      Returns the category label positioning info that applies when the axis is displayed at the left of the plot area.
      Returns:
      the position info.
    • setLeftCategoryLabelPosition

      public void setLeftCategoryLabelPosition​(CategoryLabelPosition position)
      Deprecated.
      Use setCategoryLabelPositions(...).
      Sets the position info that applies when the axis is displayed at the left of the plot area.
      Parameters:
      position - the position info.
    • getRightCategoryLabelPosition

      public CategoryLabelPosition getRightCategoryLabelPosition()
      Deprecated.
      Use getCategoryLabelPositions().getLabelPosition(RectangleEdge.RIGHT).
      Returns the category label positioning info that applies when the axis is displayed at the right of the plot area.
      Returns:
      the position info.
    • setRightCategoryLabelPosition

      public void setRightCategoryLabelPosition​(CategoryLabelPosition position)
      Deprecated.
      Use setLabelPositions(...).
      Sets the position info that applies when the axis is displayed at the right of the plot area.
      Parameters:
      position - the position info.