JavaScript Figure Reference: layout.xaxis

  • xaxis
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • anchor
      Parent: layout.xaxis
      Type: enumerated , one of ( "free" | "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" | "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" )

      If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to "free", this axis' position is determined by `position`.

    • automargin
      Parent: layout.xaxis
      Type: flaglist string. Any combination of "height", "width", "left", "right", "top", "bottom" joined with a "+" OR true or false.
      Examples: "height", "width", "height+width", "height+width+left", "true"

      Determines whether long tick labels automatically grow the figure margins.

    • autorange
      Parent: layout.xaxis
      Type: enumerated , one of ( true | false | "reversed" | "min reversed" | "max reversed" | "min" | "max" )
      Default: true

      Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided and it has a value for both the lower and upper bound, `autorange` is set to "false". Using "min" applies autorange only to set the minimum. Using "max" applies autorange only to set the maximum. Using "min reversed" applies autorange only to set the minimum on a reversed axis. Using "max reversed" applies autorange only to set the maximum on a reversed axis. Using "reversed" applies autorange on both ends and reverses the axis direction.

    • autorangeoptions
      Parent: layout.xaxis
      Type: object containing one or more of the keys listed below.
      • clipmax
        Parent: layout.xaxis.autorangeoptions
        Type: number or categorical coordinate string

        Clip autorange maximum if it goes beyond this value. Has no effect when `autorangeoptions.maxallowed` is provided.

      • clipmin
        Parent: layout.xaxis.autorangeoptions
        Type: number or categorical coordinate string

        Clip autorange minimum if it goes beyond this value. Has no effect when `autorangeoptions.minallowed` is provided.

      • include
        Parent: layout.xaxis.autorangeoptions
        Type: number or categorical coordinate string

        Ensure this value is included in autorange.

      • maxallowed
        Parent: layout.xaxis.autorangeoptions
        Type: number or categorical coordinate string

        Use this value exactly as autorange maximum.

      • minallowed
        Parent: layout.xaxis.autorangeoptions
        Type: number or categorical coordinate string

        Use this value exactly as autorange minimum.

    • autotickangles
      Parent: layout.xaxis
      Type: array
      Default: [0, 30, 90]

      When `tickangle` is set to "auto", it will be set to the first angle in this array that is large enough to prevent label overlap.

    • autotypenumbers
      Parent: layout.xaxis
      Type: enumerated , one of ( "convert types" | "strict" )
      Default: "convert types"

      Using "strict" a numeric string in trace data is not converted to a number. Using "convert types" a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers.

    • calendar
      Parent: layout.xaxis
      Type: enumerated , one of ( "chinese" | "coptic" | "discworld" | "ethiopian" | "gregorian" | "hebrew" | "islamic" | "jalali" | "julian" | "mayan" | "nanakshahi" | "nepali" | "persian" | "taiwan" | "thai" | "ummalqura" )
      Default: "gregorian"

      Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`

    • categoryarray
      Parent: layout.xaxis
      Type: data array

      Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to "array". Used with `categoryorder`.

    • categoryorder
      Parent: layout.xaxis
      Type: enumerated , one of ( "trace" | "category ascending" | "category descending" | "array" | "total ascending" | "total descending" | "min ascending" | "min descending" | "max ascending" | "max descending" | "sum ascending" | "sum descending" | "mean ascending" | "mean descending" | "geometric mean ascending" | "geometric mean descending" | "median ascending" | "median descending" )
      Default: "trace"

      Specifies the ordering logic for the case of categorical variables. By default, plotly uses "trace", which specifies the order that is present in the data supplied. Set `categoryorder` to "category ascending" or "category descending" if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to "array" to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the "trace" mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to "total ascending" or "total descending" if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean, geometric mean or median of all the values.

    • color
      Parent: layout.xaxis
      Type: color
      Default: "#444"

      Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this.

    • constrain
      Parent: layout.xaxis
      Type: enumerated , one of ( "range" | "domain" )

      If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the "range", or by decreasing the "domain". Default is "domain" for axes containing image traces, "range" otherwise.

    • constraintoward
      Parent: layout.xaxis
      Type: enumerated , one of ( "left" | "center" | "right" | "top" | "middle" | "bottom" )

      If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are "left", "center" (default), and "right" for x axes, and "top", "middle" (default), and "bottom" for y axes.

    • dividercolor
      Parent: layout.xaxis
      Type: color
      Default: "#444"

      Sets the color of the dividers Only has an effect on "multicategory" axes.

    • dividerwidth
      Parent: layout.xaxis
      Type: number
      Default: 1

      Sets the width (in px) of the dividers Only has an effect on "multicategory" axes.

    • domain
      Parent: layout.xaxis
      Type: array
      Default: [0, 1]

      Sets the domain of this axis (in plot fraction).

    • dtick
      Parent: layout.xaxis
      Type: number or categorical coordinate string

      Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to "log" and "date" axes. If the axis `type` is "log", then ticks are set every 10^(n"dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. "log" has several special values; "L<f>", where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use "D1" (all digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and "D2". If the axis `type` is "date", then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. "date" also has special values "M<n>" gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to "2000-01-15" and `dtick` to "M3". To set ticks every 4 years, set `dtick` to "M48"

    • exponentformat
      Parent: layout.xaxis
      Type: enumerated , one of ( "none" | "e" | "E" | "power" | "SI" | "B" )
      Default: "B"

      Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If "none", it appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If "B", 1B.

    • fixedrange
      Parent: layout.xaxis
      Type: boolean

      Determines whether or not this axis is zoom-able. If true, then zoom is disabled.

    • gridcolor
      Parent: layout.xaxis
      Type: color
      Default: "#eee"

      Sets the color of the grid lines.

    • griddash
      Parent: layout.xaxis
      Type: string
      Default: "solid"

      Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").

    • gridwidth
      Parent: layout.xaxis
      Type: number greater than or equal to 0
      Default: 1

      Sets the width (in px) of the grid lines.

    • hoverformat
      Parent: layout.xaxis
      Type: string
      Default: ""

      Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for dates see: https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format. We add two items to d3's date formatter: "%h" for half of the year as a decimal number as well as "%{n}f" for fractional seconds with n digits. For example, "2016-10-13 09:15:23.456" with tickformat "%H~%M~%S.%2f" would display "09~15~23.46"

    • insiderange
      Parent: layout.xaxis
      Type: array

      Could be used to set the desired inside range of this axis (excluding the labels) when `ticklabelposition` of the anchored axis has "inside". Not implemented for axes with `type` "log". This would be ignored when `range` is provided.

    • labelalias
      Parent: layout.xaxis
      Type: number or categorical coordinate string

      Replacement text for specific tick or hover labels. For example using {US: 'USA', CA: 'Canada'} changes US to USA and CA to Canada. The labels we would have shown must match the keys exactly, after adding any tickprefix or ticksuffix. For negative numbers the minus sign symbol used (U+2212) is wider than the regular ascii dash. That means you need to use −1 instead of -1. labelalias can be used with any axis type, and both keys (if needed) and values (if desired) can include html-like tags or MathJax.

    • layer
      Parent: layout.xaxis
      Type: enumerated , one of ( "above traces" | "below traces" )
      Default: "above traces"

      Sets the layer on which this axis is displayed. If "above traces", this axis is displayed above all the subplot's traces If "below traces", this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to "false" to show markers and/or text nodes above this axis.

    • linecolor
      Parent: layout.xaxis
      Type: color
      Default: "#444"

      Sets the axis line color.

    • linewidth
      Parent: layout.xaxis
      Type: number greater than or equal to 0
      Default: 1

      Sets the width (in px) of the axis line.

    • matches
      Parent: layout.xaxis
      Type: enumerated , one of ( "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" | "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" )

      If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`.

    • maxallowed
      Parent: layout.xaxis
      Type: number or categorical coordinate string

      Determines the maximum range of this axis.

    • minallowed
      Parent: layout.xaxis
      Type: number or categorical coordinate string

      Determines the minimum range of this axis.

    • minexponent
      Parent: layout.xaxis
      Type: number greater than or equal to 0
      Default: 3

      Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is "SI" or "B".

    • minor
      Parent: layout.xaxis
      Type: object containing one or more of the keys listed below.
      • dtick
        Parent: layout.xaxis.minor
        Type: number or categorical coordinate string

        Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to "log" and "date" axes. If the axis `type` is "log", then ticks are set every 10^(n"dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. "log" has several special values; "L<f>", where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use "D1" (all digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and "D2". If the axis `type` is "date", then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. "date" also has special values "M<n>" gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to "2000-01-15" and `dtick` to "M3". To set ticks every 4 years, set `dtick` to "M48"

      • gridcolor
        Parent: layout.xaxis.minor
        Type: color
        Default: "#eee"

        Sets the color of the grid lines.

      • griddash
        Parent: layout.xaxis.minor
        Type: string
        Default: "solid"

        Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").

      • gridwidth
        Parent: layout.xaxis.minor
        Type: number greater than or equal to 0

        Sets the width (in px) of the grid lines.

      • nticks
        Parent: layout.xaxis.minor
        Type: integer greater than or equal to 0
        Default: 5

        Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to "auto".

      • showgrid
        Parent: layout.xaxis.minor
        Type: boolean

        Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.

      • tick0
        Parent: layout.xaxis.minor
        Type: number or categorical coordinate string

        Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is "log", then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`="L<f>" (see `dtick` for more info). If the axis `type` is "date", it should be a date string, like date data. If the axis `type` is "category", it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears.

      • tickcolor
        Parent: layout.xaxis.minor
        Type: color
        Default: "#444"

        Sets the tick color.

      • ticklen
        Parent: layout.xaxis.minor
        Type: number greater than or equal to 0

        Sets the tick length (in px).

      • tickmode
        Parent: layout.xaxis.minor
        Type: enumerated , one of ( "auto" | "linear" | "array" )

        Sets the tick mode for this axis. If "auto", the number of ticks is set via `nticks`. If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` ("linear" is the default value if `tick0` and `dtick` are provided). If "array", the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. ("array" is the default value if `tickvals` is provided).

      • ticks
        Parent: layout.xaxis.minor
        Type: enumerated , one of ( "outside" | "inside" | "" )

        Determines whether ticks are drawn or not. If "", this axis' ticks are not drawn. If "outside" ("inside"), this axis' are drawn outside (inside) the axis lines.

      • tickvals
        Parent: layout.xaxis.minor
        Type: data array

        Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to "array". Used with `ticktext`.

      • tickwidth
        Parent: layout.xaxis.minor
        Type: number greater than or equal to 0

        Sets the tick width (in px).

    • mirror
      Parent: layout.xaxis
      Type: enumerated , one of ( true | "ticks" | false | "all" | "allticks" )

      Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If "true", the axis lines are mirrored. If "ticks", the axis lines and ticks are mirrored. If "false", mirroring is disable. If "all", axis lines are mirrored on all shared-axes subplots. If "allticks", axis lines and ticks are mirrored on all shared-axes subplots.

    • nticks
      Parent: layout.xaxis
      Type: integer greater than or equal to 0
      Default: 0

      Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to "auto".

    • overlaying
      Parent: layout.xaxis
      Type: enumerated , one of ( "free" | "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" | "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" )

      If set a same-letter axis id, this axis is overlaid on top of the corresponding same-letter axis, with traces and axes visible for both axes. If "false", this axis does not overlay any same-letter axes. In this case, for axes with overlapping domains only the highest-numbered axis will be visible.

    • position
      Parent: layout.xaxis
      Type: number between or equal to 0 and 1
      Default: 0

      Sets the position of this axis in the plotting space (in normalized coordinates). Only has an effect if `anchor` is set to "free".

    • range
      Parent: layout.xaxis
      Type: array

      Sets the range of this axis. If the axis `type` is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears. Leaving either or both elements `null` impacts the default `autorange`.

    • rangebreaks
      Parent: layout.xaxis
      Type: array of object where each object has one or more of the keys listed below.
      • bounds
        Parent: layout.xaxis.rangebreaks[]
        Type: array

        Sets the lower and upper bounds of this axis rangebreak. Can be used with `pattern`.

      • dvalue
        Parent: layout.xaxis.rangebreaks[]
        Type: number greater than or equal to 0
        Default: 86400000

        Sets the size of each `values` item. The default is one day in milliseconds.

      • enabled
        Parent: layout.xaxis.rangebreaks[]
        Type: boolean
        Default: true

        Determines whether this axis rangebreak is enabled or disabled. Please note that `rangebreaks` only work for "date" axis type.

      • name
        Parent: layout.xaxis.rangebreaks[]
        Type: string

        When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template.

      • pattern
        Parent: layout.xaxis.rangebreaks[]
        Type: enumerated , one of ( "day of week" | "hour" | "" )

        Determines a pattern on the time line that generates breaks. If "day of week" - days of the week in English e.g. 'Sunday' or `sun` (matching is case-insensitive and considers only the first three characters), as well as Sunday-based integers between 0 and 6. If "hour" - hour (24-hour clock) as decimal numbers between 0 and 24. for more info. Examples: - { pattern: 'day of week', bounds: [6, 1] } or simply { bounds: ['sat', 'mon'] } breaks from Saturday to Monday (i.e. skips the weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from 5pm to 8am (i.e. skips non-work hours).

      • templateitemname
        Parent: layout.xaxis.rangebreaks[]
        Type: string

        Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`.

      • values
        Parent: layout.xaxis.rangebreaks[]
        Type: array

        Sets the coordinate values corresponding to the rangebreaks. An alternative to `bounds`. Use `dvalue` to set the size of the values along the axis.

    • rangemode
      Parent: layout.xaxis
      Type: enumerated , one of ( "normal" | "tozero" | "nonnegative" )
      Default: "normal"

      If "normal", the range is computed in relation to the extrema of the input data. If "tozero"`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes.

    • rangeselector
      Parent: layout.xaxis
      Type: object containing one or more of the keys listed below.
      • activecolor
        Parent: layout.xaxis.rangeselector
        Type: color

        Sets the background color of the active range selector button.

      • bgcolor
        Parent: layout.xaxis.rangeselector
        Type: color
        Default: "#eee"

        Sets the background color of the range selector buttons.

      • bordercolor
        Parent: layout.xaxis.rangeselector
        Type: color
        Default: "#444"

        Sets the color of the border enclosing the range selector.

      • borderwidth
        Parent: layout.xaxis.rangeselector
        Type: number greater than or equal to 0
        Default: 0

        Sets the width (in px) of the border enclosing the range selector.

      • buttons
        Parent: layout.xaxis.rangeselector
        Type: array of object where each object has one or more of the keys listed below.
        • count
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: number greater than or equal to 0
          Default: 1

          Sets the number of steps to take to update the range. Use with `step` to specify the update interval.

        • label
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: string

          Sets the text label to appear on the button.

        • name
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: string

          When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template.

        • step
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: enumerated , one of ( "month" | "year" | "day" | "hour" | "minute" | "second" | "all" )
          Default: "month"

          The unit of measurement that the `count` value will set the range by.

        • stepmode
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: enumerated , one of ( "backward" | "todate" )
          Default: "backward"

          Sets the range update mode. If "backward", the range update shifts the start of range back "count" times "step" milliseconds. If "todate", the range update shifts the start of range back to the first timestamp from "count" times "step" milliseconds back. For example, with `step` set to "year" and `count` set to "1" the range update shifts the start of the range back to January 01 of the current year. Month and year "todate" are currently available only for the built-in (Gregorian) calendar.

        • templateitemname
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: string

          Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`.

        • visible
          Parent: layout.xaxis.rangeselector.buttons[]
          Type: boolean
          Default: true

          Determines whether or not this button is visible.

      • font
        Parent: layout.xaxis.rangeselector
        Type: object containing one or more of the keys listed below.

        Sets the font of the range selector button text.

        • color
          Parent: layout.xaxis.rangeselector.font
          Type: color
        • family
          Parent: layout.xaxis.rangeselector.font
          Type: string

          HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include "Arial", "Balto", "Courier New", "Droid Sans", "Droid Serif", "Droid Sans Mono", "Gravitas One", "Old Standard TT", "Open Sans", "Overpass", "PT Sans Narrow", "Raleway", "Times New Roman".

        • lineposition
          Parent: layout.xaxis.rangeselector.font
          Type: flaglist string. Any combination of "under", "over", "through" joined with a "+" OR "none".
          Examples: "under", "over", "under+over", "under+over+through", "none"
          Default: "none"

          Sets the kind of decoration line(s) with text, such as an "under", "over" or "through" as well as combinations e.g. "under+over", etc.

        • shadow
          Parent: layout.xaxis.rangeselector.font
          Type: string
          Default: "none"

          Sets the shape and color of the shadow behind text. "auto" places minimal shadow and applies contrast text font color. See https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow for additional options.

        • size
          Parent: layout.xaxis.rangeselector.font
          Type: number greater than or equal to 1
        • style
          Parent: layout.xaxis.rangeselector.font
          Type: enumerated , one of ( "normal" | "italic" )
          Default: "normal"

          Sets whether a font should be styled with a normal or italic face from its family.

        • textcase
          Parent: layout.xaxis.rangeselector.font
          Type: enumerated , one of ( "normal" | "word caps" | "upper" | "lower" )
          Default: "normal"

          Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.

        • variant
          Parent: layout.xaxis.rangeselector.font
          Type: enumerated , one of ( "normal" | "small-caps" | "all-small-caps" | "all-petite-caps" | "petite-caps" | "unicase" )
          Default: "normal"

          Sets the variant of the font.

        • weight
          Parent: layout.xaxis.rangeselector.font
          Type: integer between or equal to 1 and 1000
          Default: normal

          Sets the weight (or boldness) of the font.

      • visible
        Parent: layout.xaxis.rangeselector
        Type: boolean

        Determines whether or not this range selector is visible. Note that range selectors are only available for x axes of `type` set to or auto-typed to "date".

      • x
        Parent: layout.xaxis.rangeselector
        Type: number between or equal to -2 and 3

        Sets the x position (in normalized coordinates) of the range selector.

      • xanchor
        Parent: layout.xaxis.rangeselector
        Type: enumerated , one of ( "auto" | "left" | "center" | "right" )
        Default: "left"

        Sets the range selector's horizontal position anchor. This anchor binds the `x` position to the "left", "center" or "right" of the range selector.

      • y
        Parent: layout.xaxis.rangeselector
        Type: number between or equal to -2 and 3

        Sets the y position (in normalized coordinates) of the range selector.

      • yanchor
        Parent: layout.xaxis.rangeselector
        Type: enumerated , one of ( "auto" | "top" | "middle" | "bottom" )
        Default: "bottom"

        Sets the range selector's vertical position anchor This anchor binds the `y` position to the "top", "middle" or "bottom" of the range selector.

    • rangeslider
      Parent: layout.xaxis
      Type: object containing one or more of the keys listed below.
      • autorange
        Parent: layout.xaxis.rangeslider
        Type: boolean
        Default: true

        Determines whether or not the range slider range is computed in relation to the input data. If `range` is provided, then `autorange` is set to "false".

      • bgcolor
        Parent: layout.xaxis.rangeslider
        Type: color
        Default: "#fff"

        Sets the background color of the range slider.

      • bordercolor
        Parent: layout.xaxis.rangeslider
        Type: color
        Default: "#444"

        Sets the border color of the range slider.

      • borderwidth
        Parent: layout.xaxis.rangeslider
        Type: integer greater than or equal to 0
        Default: 0

        Sets the border width of the range slider.

      • range
        Parent: layout.xaxis.rangeslider
        Type: array

        Sets the range of the range slider. If not set, defaults to the full xaxis range. If the axis `type` is "log", then you must take the log of your desired range. If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.

      • thickness
        Parent: layout.xaxis.rangeslider
        Type: number between or equal to 0 and 1
        Default: 0.15

        The height of the range slider as a fraction of the total plot area height.

      • visible
        Parent: layout.xaxis.rangeslider
        Type: boolean
        Default: true

        Determines whether or not the range slider will be visible. If visible, perpendicular axes will be set to `fixedrange`

      • yaxis
        Parent: layout.xaxis.rangeslider
        Type: object containing one or more of the keys listed below.
        • range
          Parent: layout.xaxis.rangeslider.yaxis
          Type: array

          Sets the range of this axis for the rangeslider.

        • rangemode
          Parent: layout.xaxis.rangeslider.yaxis
          Type: enumerated , one of ( "auto" | "fixed" | "match" )
          Default: "match"

          Determines whether or not the range of this axis in the rangeslider use the same value than in the main plot when zooming in/out. If "auto", the autorange will be used. If "fixed", the `range` is used. If "match", the current range of the corresponding y-axis on the main subplot is used.

    • scaleanchor
      Parent: layout.xaxis
      Type: enumerated , one of ( "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" | "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" | false )

      If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Setting `false` allows to remove a default constraint (occasionally, you may need to prevent a default `scaleanchor` constraint from being applied, eg. when having an image trace `yaxis: {scaleanchor: "x"}` is set automatically in order for pixels to be rendered as squares, setting `yaxis: {scaleanchor: false}` allows to remove the constraint).

    • scaleratio
      Parent: layout.xaxis
      Type: number greater than or equal to 0
      Default: 1

      If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal.

    • separatethousands
      Parent: layout.xaxis
      Type: boolean

      If "true", even 4-digit integers are separated

    • showdividers
      Parent: layout.xaxis
      Type: boolean
      Default: true

      Determines whether or not a dividers are drawn between the category levels of this axis. Only has an effect on "multicategory" axes.

    • showexponent
      Parent: layout.xaxis
      Type: enumerated , one of ( "all" | "first" | "last" | "none" )
      Default: "all"

      If "all", all exponents are shown besides their significands. If "first", only the exponent of the first tick is shown. If "last", only the exponent of the last tick is shown. If "none", no exponents appear.

    • showgrid
      Parent: layout.xaxis
      Type: boolean

      Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.

    • showline
      Parent: layout.xaxis
      Type: boolean

      Determines whether or not a line bounding this axis is drawn.

    • showspikes
      Parent: layout.xaxis
      Type: boolean

      Determines whether or not spikes (aka droplines) are drawn for this axis. Note: This only takes affect when hovermode = closest

    • showticklabels
      Parent: layout.xaxis
      Type: boolean
      Default: true

      Determines whether or not the tick labels are drawn.

    • showtickprefix
      Parent: layout.xaxis
      Type: enumerated , one of ( "all" | "first" | "last" | "none" )
      Default: "all"

      If "all", all tick labels are displayed with a prefix. If "first", only the first tick is displayed with a prefix. If "last", only the last tick is displayed with a suffix. If "none", tick prefixes are hidden.

    • showticksuffix
      Parent: layout.xaxis
      Type: enumerated , one of ( "all" | "first" | "last" | "none" )
      Default: "all"

      Same as `showtickprefix` but for tick suffixes.

    • side
      Parent: layout.xaxis
      Type: enumerated , one of ( "top" | "bottom" | "left" | "right" )

      Determines whether a x (y) axis is positioned at the "bottom" ("left") or "top" ("right") of the plotting area.

    • spikecolor
      Parent: layout.xaxis
      Type: color

      Sets the spike color. If undefined, will use the series color

    • spikedash
      Parent: layout.xaxis
      Type: string
      Default: "dash"

      Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").

    • spikemode
      Parent: layout.xaxis
      Type: flaglist string. Any combination of "toaxis", "across", "marker" joined with a "+"
      Examples: "toaxis", "across", "toaxis+across", "toaxis+across+marker"
      Default: "toaxis"

      Determines the drawing mode for the spike line If "toaxis", the line is drawn from the data point to the axis the series is plotted on. If "across", the line is drawn across the entire plot area, and supercedes "toaxis". If "marker", then a marker dot is drawn on the axis the series is plotted on

    • spikesnap
      Parent: layout.xaxis
      Type: enumerated , one of ( "data" | "cursor" | "hovered data" )
      Default: "hovered data"

      Determines whether spikelines are stuck to the cursor or to the closest datapoints.

    • spikethickness
      Parent: layout.xaxis
      Type: number
      Default: 3

      Sets the width (in px) of the zero line.

    • tick0
      Parent: layout.xaxis
      Type: number or categorical coordinate string

      Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is "log", then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`="L<f>" (see `dtick` for more info). If the axis `type` is "date", it should be a date string, like date data. If the axis `type` is "category", it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears.

    • tickangle
      Parent: layout.xaxis
      Type: angle
      Default: "auto"

      Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.

    • tickcolor
      Parent: layout.xaxis
      Type: color
      Default: "#444"

      Sets the tick color.

    • tickfont
      Parent: layout.xaxis
      Type: object containing one or more of the keys listed below.

      Sets the tick font.

      • color
        Parent: layout.xaxis.tickfont
        Type: color
      • family
        Parent: layout.xaxis.tickfont
        Type: string

        HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include "Arial", "Balto", "Courier New", "Droid Sans", "Droid Serif", "Droid Sans Mono", "Gravitas One", "Old Standard TT", "Open Sans", "Overpass", "PT Sans Narrow", "Raleway", "Times New Roman".

      • lineposition
        Parent: layout.xaxis.tickfont
        Type: flaglist string. Any combination of "under", "over", "through" joined with a "+" OR "none".
        Examples: "under", "over", "under+over", "under+over+through", "none"
        Default: "none"

        Sets the kind of decoration line(s) with text, such as an "under", "over" or "through" as well as combinations e.g. "under+over", etc.

      • shadow
        Parent: layout.xaxis.tickfont
        Type: string
        Default: "none"

        Sets the shape and color of the shadow behind text. "auto" places minimal shadow and applies contrast text font color. See https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow for additional options.

      • size
        Parent: layout.xaxis.tickfont
        Type: number greater than or equal to 1
      • style
        Parent: layout.xaxis.tickfont
        Type: enumerated , one of ( "normal" | "italic" )
        Default: "normal"

        Sets whether a font should be styled with a normal or italic face from its family.

      • textcase
        Parent: layout.xaxis.tickfont
        Type: enumerated , one of ( "normal" | "word caps" | "upper" | "lower" )
        Default: "normal"

        Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.

      • variant
        Parent: layout.xaxis.tickfont
        Type: enumerated , one of ( "normal" | "small-caps" | "all-small-caps" | "all-petite-caps" | "petite-caps" | "unicase" )
        Default: "normal"

        Sets the variant of the font.

      • weight
        Parent: layout.xaxis.tickfont
        Type: integer between or equal to 1 and 1000
        Default: normal

        Sets the weight (or boldness) of the font.

    • tickformat
      Parent: layout.xaxis
      Type: string
      Default: ""

      Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for dates see: https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format. We add two items to d3's date formatter: "%h" for half of the year as a decimal number as well as "%{n}f" for fractional seconds with n digits. For example, "2016-10-13 09:15:23.456" with tickformat "%H~%M~%S.%2f" would display "09~15~23.46"

    • tickformatstops
      Parent: layout.xaxis
      Type: array of object where each object has one or more of the keys listed below.
      • dtickrange
        Parent: layout.xaxis.tickformatstops[]
        Type: array

        range ["min", "max"], where "min", "max" - dtick values which describe some zoom level, it is possible to omit "min" or "max" value by passing "null"

      • enabled
        Parent: layout.xaxis.tickformatstops[]
        Type: boolean
        Default: true

        Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.

      • name
        Parent: layout.xaxis.tickformatstops[]
        Type: string

        When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template.

      • templateitemname
        Parent: layout.xaxis.tickformatstops[]
        Type: string

        Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`.

      • value
        Parent: layout.xaxis.tickformatstops[]
        Type: string
        Default: ""

        string - dtickformat for described zoom level, the same as "tickformat"

    • ticklabelindex
      Parent: layout.xaxis
      Type: integer or array of integers

      Only for axes with `type` "date" or "linear". Instead of drawing the major tick label, draw the label for the minor tick that is n positions away from the major tick. E.g. to always draw the label for the minor tick before each major tick, choose `ticklabelindex` -1. This is useful for date axes with `ticklabelmode` "period" if you want to label the period that ends with each major tick instead of the period that begins there.

    • ticklabelmode
      Parent: layout.xaxis
      Type: enumerated , one of ( "instant" | "period" )
      Default: "instant"

      Determines where tick labels are drawn with respect to their corresponding ticks and grid lines. Only has an effect for axes of `type` "date" When set to "period", tick labels are drawn in the middle of the period between ticks.

    • ticklabeloverflow
      Parent: layout.xaxis
      Type: enumerated , one of ( "allow" | "hide past div" | "hide past domain" )

      Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is "hide past domain". Otherwise on "category" and "multicategory" axes the default is "allow". In other cases the default is "hide past div".

    • ticklabelposition
      Parent: layout.xaxis
      Type: enumerated , one of ( "outside" | "inside" | "outside top" | "inside top" | "outside left" | "inside left" | "outside right" | "inside right" | "outside bottom" | "inside bottom" )
      Default: "outside"

      Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to "period". Similarly left or right has no effect on y axes or when `ticklabelmode` is set to "period". Has no effect on "multicategory" axes or when `tickson` is set to "boundaries". When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.

    • ticklabelshift
      Parent: layout.xaxis
      Type: integer
      Default: 0

      Shifts the tick labels by the specified number of pixels in parallel to the axis. Positive values move the labels in the positive direction of the axis.

    • ticklabelstandoff
      Parent: layout.xaxis
      Type: integer
      Default: 0

      Sets the standoff distance (in px) between the axis tick labels and their default position. A positive `ticklabelstandoff` moves the labels farther away from the plot area if `ticklabelposition` is "outside", and deeper into the plot area if `ticklabelposition` is "inside". A negative `ticklabelstandoff` works in the opposite direction, moving outside ticks towards the plot area and inside ticks towards the outside. If the negative value is large enough, inside ticks can even end up outside and vice versa.

    • ticklabelstep
      Parent: layout.xaxis
      Type: integer greater than or equal to 1
      Default: 1

      Sets the spacing between tick labels as compared to the spacing between ticks. A value of 1 (default) means each tick gets a label. A value of 2 means shows every 2nd label. A larger value n means only every nth tick is labeled. `tick0` determines which labels are shown. Not implemented for axes with `type` "log" or "multicategory", or when `tickmode` is "array".

    • ticklen
      Parent: layout.xaxis
      Type: number greater than or equal to 0
      Default: 5

      Sets the tick length (in px).

    • tickmode
      Parent: layout.xaxis
      Type: enumerated , one of ( "auto" | "linear" | "array" | "sync" )

      Sets the tick mode for this axis. If "auto", the number of ticks is set via `nticks`. If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` ("linear" is the default value if `tick0` and `dtick` are provided). If "array", the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. ("array" is the default value if `tickvals` is provided). If "sync", the number of ticks will sync with the overlayed axis set by `overlaying` property.

    • tickprefix
      Parent: layout.xaxis
      Type: string
      Default: ""

      Sets a tick label prefix.

    • ticks
      Parent: layout.xaxis
      Type: enumerated , one of ( "outside" | "inside" | "" )

      Determines whether ticks are drawn or not. If "", this axis' ticks are not drawn. If "outside" ("inside"), this axis' are drawn outside (inside) the axis lines.

    • tickson
      Parent: layout.xaxis
      Type: enumerated , one of ( "labels" | "boundaries" )
      Default: "labels"

      Determines where ticks and grid lines are drawn with respect to their corresponding tick labels. Only has an effect for axes of `type` "category" or "multicategory". When set to "boundaries", ticks and grid lines are drawn half a category to the left/bottom of labels.

    • ticksuffix
      Parent: layout.xaxis
      Type: string
      Default: ""

      Sets a tick label suffix.

    • ticktext
      Parent: layout.xaxis
      Type: data array

      Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to "array". Used with `tickvals`.

    • tickvals
      Parent: layout.xaxis
      Type: data array

      Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to "array". Used with `ticktext`.

    • tickwidth
      Parent: layout.xaxis
      Type: number greater than or equal to 0
      Default: 1

      Sets the tick width (in px).

    • title
      Parent: layout.xaxis
      Type: object containing one or more of the keys listed below.
      • font
        Parent: layout.xaxis.title
        Type: object containing one or more of the keys listed below.

        Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.

        • color
          Parent: layout.xaxis.title.font
          Type: color
        • family
          Parent: layout.xaxis.title.font
          Type: string

          HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include "Arial", "Balto", "Courier New", "Droid Sans", "Droid Serif", "Droid Sans Mono", "Gravitas One", "Old Standard TT", "Open Sans", "Overpass", "PT Sans Narrow", "Raleway", "Times New Roman".

        • lineposition
          Parent: layout.xaxis.title.font
          Type: flaglist string. Any combination of "under", "over", "through" joined with a "+" OR "none".
          Examples: "under", "over", "under+over", "under+over+through", "none"
          Default: "none"

          Sets the kind of decoration line(s) with text, such as an "under", "over" or "through" as well as combinations e.g. "under+over", etc.

        • shadow
          Parent: layout.xaxis.title.font
          Type: string
          Default: "none"

          Sets the shape and color of the shadow behind text. "auto" places minimal shadow and applies contrast text font color. See https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow for additional options.

        • size
          Parent: layout.xaxis.title.font
          Type: number greater than or equal to 1
        • style
          Parent: layout.xaxis.title.font
          Type: enumerated , one of ( "normal" | "italic" )
          Default: "normal"

          Sets whether a font should be styled with a normal or italic face from its family.

        • textcase
          Parent: layout.xaxis.title.font
          Type: enumerated , one of ( "normal" | "word caps" | "upper" | "lower" )
          Default: "normal"

          Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.

        • variant
          Parent: layout.xaxis.title.font
          Type: enumerated , one of ( "normal" | "small-caps" | "all-small-caps" | "all-petite-caps" | "petite-caps" | "unicase" )
          Default: "normal"

          Sets the variant of the font.

        • weight
          Parent: layout.xaxis.title.font
          Type: integer between or equal to 1 and 1000
          Default: normal

          Sets the weight (or boldness) of the font.

      • standoff
        Parent: layout.xaxis.title
        Type: number greater than or equal to 0

        Sets the standoff distance (in px) between the axis labels and the title text The default value is a function of the axis tick labels, the title `font.size` and the axis `linewidth`. Note that the axis title position is always constrained within the margins, so the actual standoff distance is always less than the set or default value. By setting `standoff` and turning on `automargin`, plotly.js will push the margins to fit the axis title at given standoff distance.

      • text
        Parent: layout.xaxis.title
        Type: string

        Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.

    • type
      Parent: layout.xaxis
      Type: enumerated , one of ( "-" | "linear" | "log" | "date" | "category" | "multicategory" )
      Default: "-"

      Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question.

    • uirevision
      Parent: layout.xaxis
      Type: number or categorical coordinate string

      Controls persistence of user-driven changes in axis `range`, `autorange`, and `title` if in `editable: true` configuration. Defaults to `layout.uirevision`.

    • visible
      Parent: layout.xaxis
      Type: boolean

      A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false

    • zeroline
      Parent: layout.xaxis
      Type: boolean

      Determines whether or not a line is drawn at along the 0 value of this axis. If "true", the zero line is drawn on top of the grid lines.

    • zerolinecolor
      Parent: layout.xaxis
      Type: color
      Default: "#444"

      Sets the line color of the zero line.

    • zerolinewidth
      Parent: layout.xaxis
      Type: number
      Default: 1

      Sets the width (in px) of the zero line.