# Class Axis<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.chart.Axis<T>

Type Parameters:
  `T` - the axis data type

All Implemented Interfaces:
  `Styleable, EventTarget`

Direct Known Subclasses:
  `CategoryAxis, ValueAxis`

public abstract class Axis<T> extends Region
Base class for all axes in JavaFX that represents an axis drawn on a chart area. It holds properties for axis auto ranging, ticks and labels along the axis.

Some examples of concrete subclasses include `NumberAxis` whose axis plots data in numbers and `CategoryAxis` whose values / ticks represent string categories along its axis.

Since:
  JavaFX 2.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `Axis.TickMark<T>`
  TickMark represents the label text, its associated properties for each tick along the Axis.

- ## Property Summary

  Properties
  Type
  Property
  Description
  `final BooleanProperty`
  `animated`
  When true any changes to the axis and its range will be animated.
  `final BooleanProperty`
  `autoRanging`
  This is true when the axis determines its range from the data automatically
  `final ObjectProperty<String>`
  `label`
  The axis label
  `final ObjectProperty<Side>`
  `side`
  The side of the plot which this axis is being drawn on
  `final ObjectProperty<Paint>`
  `tickLabelFill`
  The fill for all tick labels
  `final ObjectProperty<Font>`
  `tickLabelFont`
  The font for all tick labels
  `final DoubleProperty`
  `tickLabelGap`
  The gap between tick labels and the tick mark lines
  `final DoubleProperty`
  `tickLabelRotation`
  Rotation in degrees of tick mark labels from their normal horizontal.
  `final BooleanProperty`
  `tickLabelsVisible`
  true if tick mark labels should be displayed
  `final DoubleProperty`
  `tickLength`
  The length of tick mark lines
  `final BooleanProperty`
  `tickMarkVisible`
  true if tick marks should be displayed

  ### Properties declared in class Region

  `background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

  ### Properties declared in class Parent

  `needsLayout`

  ### Properties declared in class Node

  `accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragDone, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible`

- ## Field Summary

  ### Fields declared in class Region

  `USE_COMPUTED_SIZE, USE_PREF_SIZE`

  ### Fields declared in class Node

  `BASELINE_OFFSET_SAME_AS_HEIGHT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Axis()`
  Creates and initializes a new instance of the Axis class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final BooleanProperty`
  `animatedProperty()`
  When true any changes to the axis and its range will be animated.
  `protected abstract Object`
  `autoRange(double length)`
  This calculates the upper and lower bound based on the data provided to invalidateRange() method.
  `final BooleanProperty`
  `autoRangingProperty()`
  This is true when the axis determines its range from the data automatically
  `protected abstract List<T>`
  `calculateTickValues(double length, Object range)`
  Calculate a list of all the data values for each tick mark in range
  `protected double`
  `computePrefHeight(double width)`
  Computes the preferred height of this axis for the given width.
  `protected double`
  `computePrefWidth(double height)`
  Computes the preferred width of this axis for the given height.
  `final boolean`
  `getAnimated()`
  Indicates whether the changes to axis range will be animated or not.
  `static List<CssMetaData<? extends Styleable, ?>>`
  `getClassCssMetaData()`
  Gets the `CssMetaData` associated with this class, which may include the `CssMetaData` of its superclasses.
  `List<CssMetaData<? extends Styleable, ?>>`
  `getCssMetaData()`
  This method should delegate to `Node.getClassCssMetaData()` so that a Node's CssMetaData can be accessed without the need for reflection.
  `abstract double`
  `getDisplayPosition(T value)`
  Get the display position along this axis for a given value.
  `final String`
  `getLabel()`
  Gets the value of the `label` property.
  `protected abstract Object`
  `getRange()`
  Called to get the current axis range.
  `final Side`
  `getSide()`
  Gets the value of the `side` property.
  `final Paint`
  `getTickLabelFill()`
  Gets the value of the `tickLabelFill` property.
  `final Font`
  `getTickLabelFont()`
  Gets the value of the `tickLabelFont` property.
  `final double`
  `getTickLabelGap()`
  Gets the value of the `tickLabelGap` property.
  `final double`
  `getTickLabelRotation()`
  Gets the value of the `tickLabelRotation` property.
  `final double`
  `getTickLength()`
  Gets the value of the `tickLength` property.
  `protected abstract String`
  `getTickMarkLabel(T value)`
  Get the string label name for a tick mark with the given value
  `ObservableList<Axis.TickMark<T>>`
  `getTickMarks()`
  Unmodifiable observable list of tickmarks, each TickMark directly representing a tickmark on this axis.
  `abstract T`
  `getValueForDisplay(double displayPosition)`
  Get the data value for the given display position on this axis.
  `abstract double`
  `getZeroPosition()`
  Get the display position of the zero line along this axis.
  `protected final void`
  `invalidateRange()`
  Mark the current range invalid, this will cause anything that depends on the range to be recalculated on the next layout.
  `void`
  `invalidateRange(List<T> data)`
  Called when data has changed and the range may not be valid any more.
  `final boolean`
  `isAutoRanging()`
  Gets the value of the `autoRanging` property.
  `protected final boolean`
  `isRangeValid()`
  See if the current range is valid, if it is not then any range dependent calculations need to redone on the next layout pass
  `final boolean`
  `isTickLabelsVisible()`
  Gets the value of the `tickLabelsVisible` property.
  `final boolean`
  `isTickMarkVisible()`
  Gets the value of the `tickMarkVisible` property.
  `abstract boolean`
  `isValueOnAxis(T value)`
  Checks if the given value is plottable on this axis
  `final ObjectProperty<String>`
  `labelProperty()`
  The axis label
  `protected void`
  `layoutChildren()`
  Invoked during the layout pass to layout this axis and all its content.
  `protected final Dimension2D`
  `measureTickMarkLabelSize(String labelText, double rotation)`
  Measure the size of the label for given tick mark value.
  `protected final Dimension2D`
  `measureTickMarkSize(T value, double rotation)`
  Measure the size of the label for given tick mark value.
  `protected Dimension2D`
  `measureTickMarkSize(T value, Object range)`
  Measure the size of the label for given tick mark value.
  `void`
  `requestAxisLayout()`
  Request that the axis is laid out in the next layout pass.
  `void`
  `requestLayout()`
  We suppress requestLayout() calls here by doing nothing as we don't want changes to our children to cause layout.
  `final void`
  `setAnimated(boolean value)`
  Sets the value of the `animated` property.
  `final void`
  `setAutoRanging(boolean value)`
  Sets the value of the `autoRanging` property.
  `final void`
  `setLabel(String value)`
  Sets the value of the `label` property.
  `protected abstract void`
  `setRange(Object range, boolean animate)`
  Called to set the current axis range to the given range.
  `final void`
  `setSide(Side value)`
  Sets the value of the `side` property.
  `final void`
  `setTickLabelFill(Paint value)`
  Sets the value of the `tickLabelFill` property.
  `final void`
  `setTickLabelFont(Font value)`
  Sets the value of the `tickLabelFont` property.
  `final void`
  `setTickLabelGap(double value)`
  Sets the value of the `tickLabelGap` property.
  `final void`
  `setTickLabelRotation(double value)`
  Sets the value of the `tickLabelRotation` property.
  `final void`
  `setTickLabelsVisible(boolean value)`
  Sets the value of the `tickLabelsVisible` property.
  `final void`
  `setTickLength(double value)`
  Sets the value of the `tickLength` property.
  `final void`
  `setTickMarkVisible(boolean value)`
  Sets the value of the `tickMarkVisible` property.
  `protected final boolean`
  `shouldAnimate()`
  This is used to check if any given animation should run.
  `final ObjectProperty<Side>`
  `sideProperty()`
  The side of the plot which this axis is being drawn on
  `final ObjectProperty<Paint>`
  `tickLabelFillProperty()`
  The fill for all tick labels
  `final ObjectProperty<Font>`
  `tickLabelFontProperty()`
  The font for all tick labels
  `final DoubleProperty`
  `tickLabelGapProperty()`
  The gap between tick labels and the tick mark lines
  `final DoubleProperty`
  `tickLabelRotationProperty()`
  Rotation in degrees of tick mark labels from their normal horizontal.
  `final BooleanProperty`
  `tickLabelsVisibleProperty()`
  true if tick mark labels should be displayed
  `final DoubleProperty`
  `tickLengthProperty()`
  The length of tick mark lines
  `protected void`
  `tickMarksUpdated()`
  Called during layout if the tickmarks have been updated, allowing subclasses to do anything they need to in reaction.
  `final BooleanProperty`
  `tickMarkVisibleProperty()`
  true if tick marks should be displayed
  `abstract double`
  `toNumericValue(T value)`
  All axis values must be representable by some numeric value.
  `abstract T`
  `toRealValue(double value)`
  All axis values must be representable by some numeric value.

  ### Methods declared in class Region

  `backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty`

  ### Methods declared in class Parent

  `getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, needsLayoutProperty, requestParentLayout, setNeedsLayout, updateBounds`

  ### Methods declared in class Node

  `accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragDone, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragDoneProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragDone, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty`

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods declared in interface Styleable

  `getStyleableNode`

- ## Property Details

  - ### side

    public final ObjectProperty<Side> sideProperty
    The side of the plot which this axis is being drawn on
    See Also:
      - `getSide()`
      - `setSide(Side)`
      - `sideProperty()`

  - ### label

    public final ObjectProperty<String> labelProperty
    The axis label
    See Also:
      - `getLabel()`
      - `setLabel(String)`
      - `labelProperty()`

  - ### tickMarkVisible

    public final BooleanProperty tickMarkVisibleProperty
    true if tick marks should be displayed
    See Also:
      - `isTickMarkVisible()`
      - `setTickMarkVisible(boolean)`
      - `tickMarkVisibleProperty()`

  - ### tickLabelsVisible

    public final BooleanProperty tickLabelsVisibleProperty
    true if tick mark labels should be displayed
    See Also:
      - `isTickLabelsVisible()`
      - `setTickLabelsVisible(boolean)`
      - `tickLabelsVisibleProperty()`

  - ### tickLength

    public final DoubleProperty tickLengthProperty
    The length of tick mark lines
    See Also:
      - `getTickLength()`
      - `setTickLength(double)`
      - `tickLengthProperty()`

  - ### autoRanging

    public final BooleanProperty autoRangingProperty
    This is true when the axis determines its range from the data automatically
    See Also:
      - `isAutoRanging()`
      - `setAutoRanging(boolean)`
      - `autoRangingProperty()`

  - ### tickLabelFont

    public final ObjectProperty<Font> tickLabelFontProperty
    The font for all tick labels
    See Also:
      - `getTickLabelFont()`
      - `setTickLabelFont(Font)`
      - `tickLabelFontProperty()`

  - ### tickLabelFill

    public final ObjectProperty<Paint> tickLabelFillProperty
    The fill for all tick labels
    See Also:
      - `getTickLabelFill()`
      - `setTickLabelFill(Paint)`
      - `tickLabelFillProperty()`

  - ### tickLabelGap

    public final DoubleProperty tickLabelGapProperty
    The gap between tick labels and the tick mark lines
    See Also:
      - `getTickLabelGap()`
      - `setTickLabelGap(double)`
      - `tickLabelGapProperty()`

  - ### animated

    public final BooleanProperty animatedProperty
    When true any changes to the axis and its range will be animated.
    See Also:
      - `getAnimated()`
      - `setAnimated(boolean)`
      - `animatedProperty()`

  - ### tickLabelRotation

    public final DoubleProperty tickLabelRotationProperty
    Rotation in degrees of tick mark labels from their normal horizontal.
    See Also:
      - `getTickLabelRotation()`
      - `setTickLabelRotation(double)`
      - `tickLabelRotationProperty()`

- ## Constructor Details

  - ### Axis

    public Axis()
    Creates and initializes a new instance of the Axis class.

- ## Method Details

  - ### getTickMarks

    public ObservableList<Axis.TickMark<T>> getTickMarks()
    Unmodifiable observable list of tickmarks, each TickMark directly representing a tickmark on this axis. This is updated whenever the displayed tickmarks changes.
    Returns:
      Unmodifiable observable list of TickMarks on this axis

  - ### getSide

    public final Side getSide()
    Gets the value of the `side` property.
    Property description:
      The side of the plot which this axis is being drawn on
    Returns:
      the value of the `side` property
    See Also:
      - `setSide(Side)`
      - `sideProperty()`

  - ### setSide

    public final void setSide(Side value)
    Sets the value of the `side` property.
    Property description:
      The side of the plot which this axis is being drawn on
    Parameters:
      `value` - the value for the `side` property
    See Also:
      - `getSide()`
      - `sideProperty()`

  - ### sideProperty

    public final ObjectProperty<Side> sideProperty()
    The side of the plot which this axis is being drawn on
    Returns:
      the `side` property
    See Also:
      - `getSide()`
      - `setSide(Side)`

  - ### getLabel

    public final String getLabel()
    Gets the value of the `label` property.
    Property description:
      The axis label
    Returns:
      the value of the `label` property
    See Also:
      - `setLabel(String)`
      - `labelProperty()`

  - ### setLabel

    public final void setLabel(String value)
    Sets the value of the `label` property.
    Property description:
      The axis label
    Parameters:
      `value` - the value for the `label` property
    See Also:
      - `getLabel()`
      - `labelProperty()`

  - ### labelProperty

    public final ObjectProperty<String> labelProperty()
    The axis label
    Returns:
      the `label` property
    See Also:
      - `getLabel()`
      - `setLabel(String)`

  - ### isTickMarkVisible

    public final boolean isTickMarkVisible()
    Gets the value of the `tickMarkVisible` property.
    Property description:
      true if tick marks should be displayed
    Returns:
      the value of the `tickMarkVisible` property
    See Also:
      - `setTickMarkVisible(boolean)`
      - `tickMarkVisibleProperty()`

  - ### setTickMarkVisible

    public final void setTickMarkVisible(boolean value)
    Sets the value of the `tickMarkVisible` property.
    Property description:
      true if tick marks should be displayed
    Parameters:
      `value` - the value for the `tickMarkVisible` property
    See Also:
      - `isTickMarkVisible()`
      - `tickMarkVisibleProperty()`

  - ### tickMarkVisibleProperty

    public final BooleanProperty tickMarkVisibleProperty()
    true if tick marks should be displayed
    Returns:
      the `tickMarkVisible` property
    See Also:
      - `isTickMarkVisible()`
      - `setTickMarkVisible(boolean)`

  - ### isTickLabelsVisible

    public final boolean isTickLabelsVisible()
    Gets the value of the `tickLabelsVisible` property.
    Property description:
      true if tick mark labels should be displayed
    Returns:
      the value of the `tickLabelsVisible` property
    See Also:
      - `setTickLabelsVisible(boolean)`
      - `tickLabelsVisibleProperty()`

  - ### setTickLabelsVisible

    public final void setTickLabelsVisible(boolean value)
    Sets the value of the `tickLabelsVisible` property.
    Property description:
      true if tick mark labels should be displayed
    Parameters:
      `value` - the value for the `tickLabelsVisible` property
    See Also:
      - `isTickLabelsVisible()`
      - `tickLabelsVisibleProperty()`

  - ### tickLabelsVisibleProperty

    public final BooleanProperty tickLabelsVisibleProperty()
    true if tick mark labels should be displayed
    Returns:
      the `tickLabelsVisible` property
    See Also:
      - `isTickLabelsVisible()`
      - `setTickLabelsVisible(boolean)`

  - ### getTickLength

    public final double getTickLength()
    Gets the value of the `tickLength` property.
    Property description:
      The length of tick mark lines
    Returns:
      the value of the `tickLength` property
    See Also:
      - `setTickLength(double)`
      - `tickLengthProperty()`

  - ### setTickLength

    public final void setTickLength(double value)
    Sets the value of the `tickLength` property.
    Property description:
      The length of tick mark lines
    Parameters:
      `value` - the value for the `tickLength` property
    See Also:
      - `getTickLength()`
      - `tickLengthProperty()`

  - ### tickLengthProperty

    public final DoubleProperty tickLengthProperty()
    The length of tick mark lines
    Returns:
      the `tickLength` property
    See Also:
      - `getTickLength()`
      - `setTickLength(double)`

  - ### isAutoRanging

    public final boolean isAutoRanging()
    Gets the value of the `autoRanging` property.
    Property description:
      This is true when the axis determines its range from the data automatically
    Returns:
      the value of the `autoRanging` property
    See Also:
      - `setAutoRanging(boolean)`
      - `autoRangingProperty()`

  - ### setAutoRanging

    public final void setAutoRanging(boolean value)
    Sets the value of the `autoRanging` property.
    Property description:
      This is true when the axis determines its range from the data automatically
    Parameters:
      `value` - the value for the `autoRanging` property
    See Also:
      - `isAutoRanging()`
      - `autoRangingProperty()`

  - ### autoRangingProperty

    public final BooleanProperty autoRangingProperty()
    This is true when the axis determines its range from the data automatically
    Returns:
      the `autoRanging` property
    See Also:
      - `isAutoRanging()`
      - `setAutoRanging(boolean)`

  - ### getTickLabelFont

    public final Font getTickLabelFont()
    Gets the value of the `tickLabelFont` property.
    Property description:
      The font for all tick labels
    Returns:
      the value of the `tickLabelFont` property
    See Also:
      - `setTickLabelFont(Font)`
      - `tickLabelFontProperty()`

  - ### setTickLabelFont

    public final void setTickLabelFont(Font value)
    Sets the value of the `tickLabelFont` property.
    Property description:
      The font for all tick labels
    Parameters:
      `value` - the value for the `tickLabelFont` property
    See Also:
      - `getTickLabelFont()`
      - `tickLabelFontProperty()`

  - ### tickLabelFontProperty

    public final ObjectProperty<Font> tickLabelFontProperty()
    The font for all tick labels
    Returns:
      the `tickLabelFont` property
    See Also:
      - `getTickLabelFont()`
      - `setTickLabelFont(Font)`

  - ### getTickLabelFill

    public final Paint getTickLabelFill()
    Gets the value of the `tickLabelFill` property.
    Property description:
      The fill for all tick labels
    Returns:
      the value of the `tickLabelFill` property
    See Also:
      - `setTickLabelFill(Paint)`
      - `tickLabelFillProperty()`

  - ### setTickLabelFill

    public final void setTickLabelFill(Paint value)
    Sets the value of the `tickLabelFill` property.
    Property description:
      The fill for all tick labels
    Parameters:
      `value` - the value for the `tickLabelFill` property
    See Also:
      - `getTickLabelFill()`
      - `tickLabelFillProperty()`

  - ### tickLabelFillProperty

    public final ObjectProperty<Paint> tickLabelFillProperty()
    The fill for all tick labels
    Returns:
      the `tickLabelFill` property
    See Also:
      - `getTickLabelFill()`
      - `setTickLabelFill(Paint)`

  - ### getTickLabelGap

    public final double getTickLabelGap()
    Gets the value of the `tickLabelGap` property.
    Property description:
      The gap between tick labels and the tick mark lines
    Returns:
      the value of the `tickLabelGap` property
    See Also:
      - `setTickLabelGap(double)`
      - `tickLabelGapProperty()`

  - ### setTickLabelGap

    public final void setTickLabelGap(double value)
    Sets the value of the `tickLabelGap` property.
    Property description:
      The gap between tick labels and the tick mark lines
    Parameters:
      `value` - the value for the `tickLabelGap` property
    See Also:
      - `getTickLabelGap()`
      - `tickLabelGapProperty()`

  - ### tickLabelGapProperty

    public final DoubleProperty tickLabelGapProperty()
    The gap between tick labels and the tick mark lines
    Returns:
      the `tickLabelGap` property
    See Also:
      - `getTickLabelGap()`
      - `setTickLabelGap(double)`

  - ### getAnimated

    public final boolean getAnimated()
    Indicates whether the changes to axis range will be animated or not.
    Returns:
      true if axis range changes will be animated and false otherwise

  - ### setAnimated

    public final void setAnimated(boolean value)
    Sets the value of the `animated` property.
    Property description:
      When true any changes to the axis and its range will be animated.
    Parameters:
      `value` - the value for the `animated` property
    See Also:
      - `getAnimated()`
      - `animatedProperty()`

  - ### animatedProperty

    public final BooleanProperty animatedProperty()
    When true any changes to the axis and its range will be animated.
    Returns:
      the `animated` property
    See Also:
      - `getAnimated()`
      - `setAnimated(boolean)`

  - ### getTickLabelRotation

    public final double getTickLabelRotation()
    Gets the value of the `tickLabelRotation` property.
    Property description:
      Rotation in degrees of tick mark labels from their normal horizontal.
    Returns:
      the value of the `tickLabelRotation` property
    See Also:
      - `setTickLabelRotation(double)`
      - `tickLabelRotationProperty()`

  - ### setTickLabelRotation

    public final void setTickLabelRotation(double value)
    Sets the value of the `tickLabelRotation` property.
    Property description:
      Rotation in degrees of tick mark labels from their normal horizontal.
    Parameters:
      `value` - the value for the `tickLabelRotation` property
    See Also:
      - `getTickLabelRotation()`
      - `tickLabelRotationProperty()`

  - ### tickLabelRotationProperty

    public final DoubleProperty tickLabelRotationProperty()
    Rotation in degrees of tick mark labels from their normal horizontal.
    Returns:
      the `tickLabelRotation` property
    See Also:
      - `getTickLabelRotation()`
      - `setTickLabelRotation(double)`

  - ### isRangeValid

    protected final boolean isRangeValid()
    See if the current range is valid, if it is not then any range dependent calculations need to redone on the next layout pass
    Returns:
      true if current range calculations are valid

  - ### invalidateRange

    protected final void invalidateRange()
    Mark the current range invalid, this will cause anything that depends on the range to be recalculated on the next layout.

  - ### shouldAnimate

    protected final boolean shouldAnimate()
    This is used to check if any given animation should run. It returns true if animation is enabled and the node is visible and in a scene.
    Returns:
      true if animations should happen

  - ### requestLayout

    public void requestLayout()
    We suppress requestLayout() calls here by doing nothing as we don't want changes to our children to cause layout. If you really need to request layout then call requestAxisLayout().
    Overrides:
      `requestLayout` in class `Parent`

  - ### requestAxisLayout

    public void requestAxisLayout()
    Request that the axis is laid out in the next layout pass. This replaces requestLayout() as it has been overridden to do nothing so that changes to children's bounds etc do not cause a layout. This was done as a optimization as the Axis knows the exact minimal set of changes that really need layout to be updated. So we only want to request layout then, not on any child change.

  - ### invalidateRange

    public void invalidateRange(List<T> data)
    Called when data has changed and the range may not be valid any more. This is only called by the chart if isAutoRanging() returns true. If we are auto ranging it will cause layout to be requested and auto ranging to happen on next layout pass.
    Parameters:
      `data` - The current set of all data that needs to be plotted on this axis

  - ### autoRange

    protected abstract Object autoRange(double length)
    This calculates the upper and lower bound based on the data provided to invalidateRange() method. This must not effect the state of the axis, changing any properties of the axis. Any results of the auto-ranging should be returned in the range object. This will we passed to setRange() if it has been decided to adopt this range for this axis.
    Parameters:
      `length` - The length of the axis in screen coordinates
    Returns:
      Range information, this is implementation dependent

  - ### setRange

    protected abstract void setRange(Object range, boolean animate)
    Called to set the current axis range to the given range. If isAnimating() is true then this method should animate the range to the new range.
    Parameters:
      `range` - A range object returned from autoRange()
      `animate` - If true animate the change in range

  - ### getRange

    protected abstract Object getRange()
    Called to get the current axis range.
    Returns:
      A range object that can be passed to setRange() and calculateTickValues()

  - ### getZeroPosition

    public abstract double getZeroPosition()
    Get the display position of the zero line along this axis.
    Returns:
      display position or Double.NaN if zero is not in current range;

  - ### getDisplayPosition

    public abstract double getDisplayPosition(T value)
    Get the display position along this axis for a given value. If the value is not in the current range, the returned value will be an extrapolation of the display position. If the value is not valid for this Axis and the axis cannot display such value in any range, Double.NaN is returned
    Parameters:
      `value` - The data value to work out display position for
    Returns:
      display position or Double.NaN if value not valid

  - ### getValueForDisplay

    public abstract T getValueForDisplay(double displayPosition)
    Get the data value for the given display position on this axis. If the axis is a CategoryAxis this will be the nearest value.
    Parameters:
      `displayPosition` - A pixel position on this axis
    Returns:
      the nearest data value to the given pixel position or null if not on axis;

  - ### isValueOnAxis

    public abstract boolean isValueOnAxis(T value)
    Checks if the given value is plottable on this axis
    Parameters:
      `value` - The value to check if its on axis
    Returns:
      true if the given value is plottable on this axis

  - ### toNumericValue

    public abstract double toNumericValue(T value)
    All axis values must be representable by some numeric value. This gets the numeric value for a given data value.
    Parameters:
      `value` - The data value to convert
    Returns:
      Numeric value for the given data value

  - ### toRealValue

    public abstract T toRealValue(double value)
    All axis values must be representable by some numeric value. This gets the data value for a given numeric value.
    Parameters:
      `value` - The numeric value to convert
    Returns:
      Data value for given numeric value

  - ### calculateTickValues

    protected abstract List<T> calculateTickValues(double length, Object range)
    Calculate a list of all the data values for each tick mark in range
    Parameters:
      `length` - The length of the axis in display units
      `range` - A range object returned from autoRange()
    Returns:
      A list of tick marks that fit along the axis if it was the given length

  - ### computePrefHeight

    protected double computePrefHeight(double width)
    Computes the preferred height of this axis for the given width. If axis orientation is horizontal, it takes into account the tick mark length, tick label gap and label height.
    Overrides:
      `computePrefHeight` in class `Region`
    Parameters:
      `width` - the width that should be used if preferred height depends on it
    Returns:
      the computed preferred width for this axis

  - ### computePrefWidth

    protected double computePrefWidth(double height)
    Computes the preferred width of this axis for the given height. If axis orientation is vertical, it takes into account the tick mark length, tick label gap and label height.
    Overrides:
      `computePrefWidth` in class `Region`
    Parameters:
      `height` - the height that should be used if preferred width depends on it
    Returns:
      the computed preferred width for this axis

  - ### tickMarksUpdated

    protected void tickMarksUpdated()
    Called during layout if the tickmarks have been updated, allowing subclasses to do anything they need to in reaction.

  - ### layoutChildren

    protected void layoutChildren()
    Invoked during the layout pass to layout this axis and all its content.
    Overrides:
      `layoutChildren` in class `Parent`

  - ### getTickMarkLabel

    protected abstract String getTickMarkLabel(T value)
    Get the string label name for a tick mark with the given value
    Parameters:
      `value` - The value to format into a tick label string
    Returns:
      A formatted string for the given value

  - ### measureTickMarkLabelSize

    protected final Dimension2D measureTickMarkLabelSize(String labelText, double rotation)
    Measure the size of the label for given tick mark value. This uses the font that is set for the tick marks
    Parameters:
      `labelText` - tick mark label text
      `rotation` - The text rotation
    Returns:
      size of tick mark label for given value

  - ### measureTickMarkSize

    protected final Dimension2D measureTickMarkSize(T value, double rotation)
    Measure the size of the label for given tick mark value. This uses the font that is set for the tick marks
    Parameters:
      `value` - tick mark value
      `rotation` - The text rotation
    Returns:
      size of tick mark label for given value

  - ### measureTickMarkSize

    protected Dimension2D measureTickMarkSize(T value, Object range)
    Measure the size of the label for given tick mark value. This uses the font that is set for the tick marks
    Parameters:
      `value` - tick mark value
      `range` - range to use during calculations
    Returns:
      size of tick mark label for given value

  - ### getClassCssMetaData

    public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData()
    Gets the `CssMetaData` associated with this class, which may include the `CssMetaData` of its superclasses.
    Returns:
      the `CssMetaData`
    Since:
      JavaFX 8.0

  - ### getCssMetaData

    public List<CssMetaData<? extends Styleable, ?>> getCssMetaData()
    This method should delegate to `Node.getClassCssMetaData()` so that a Node's CssMetaData can be accessed without the need for reflection.
    Specified by:
      `getCssMetaData` in interface `Styleable`
    Overrides:
      `getCssMetaData` in class `Region`
    Returns:
      The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
    Since:
      JavaFX 8.0