JavaScript Figure Reference: layout

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

      Determines whether the title can automatically push the figure margins. If `yref='paper'` then the margin will expand to ensure that the title doesn’t overlap with the edges of the container. If `yref='container'` then the margins will ensure that the title doesn’t overlap with the plot area, tick labels, and axis titles. If `automargin=true` and the margins need to be expanded, then y will be set to a default 1 and yanchor will be set to an appropriate default to ensure that minimal margin space is needed. Note that when `yref='paper'`, only 1 or 0 are allowed y values. Invalid values will be reset to the default 1.

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

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

      • color
        Parent: layout.title.font
        Type: color
      • family
        Parent: layout.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.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.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.title.font
        Type: number greater than or equal to 1
      • style
        Parent: layout.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.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.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.title.font
        Type: integer between or equal to 1 and 1000
        Default: normal

        Sets the weight (or boldness) of the font.

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

      Sets the padding of the title. Each padding value only applies when the corresponding `xanchor`/`yanchor` value is set accordingly. E.g. for left padding to take effect, `xanchor` must be set to "left". The same rule applies if `xanchor`/`yanchor` is determined automatically. Padding is muted if the respective anchor value is "middle"/"center".

      • b
        Parent: layout.title.pad
        Type: number
        Default: 0

        The amount of padding (in px) along the bottom of the component.

      • l
        Parent: layout.title.pad
        Type: number
        Default: 0

        The amount of padding (in px) on the left side of the component.

      • r
        Parent: layout.title.pad
        Type: number
        Default: 0

        The amount of padding (in px) on the right side of the component.

      • t
        Parent: layout.title.pad
        Type: number
        Default: 0

        The amount of padding (in px) along the top of the component.

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

        Sets the subtitle font.

        • color
          Parent: layout.title.subtitle.font
          Type: color
        • family
          Parent: layout.title.subtitle.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.title.subtitle.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.title.subtitle.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.title.subtitle.font
          Type: number greater than or equal to 1
        • style
          Parent: layout.title.subtitle.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.title.subtitle.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.title.subtitle.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.title.subtitle.font
          Type: integer between or equal to 1 and 1000
          Default: normal

          Sets the weight (or boldness) of the font.

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

        Sets the plot's subtitle.

    • text
      Parent: layout.title
      Type: string

      Sets the plot's title. 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.

    • x
      Parent: layout.title
      Type: number between or equal to 0 and 1
      Default: 0.5

      Sets the x position with respect to `xref` in normalized coordinates from "0" (left) to "1" (right).

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

      Sets the title's horizontal alignment with respect to its x position. "left" means that the title starts at x, "right" means that the title ends at x and "center" means that the title's center is at x. "auto" divides `xref` by three and calculates the `xanchor` value automatically based on the value of `x`.

    • xref
      Parent: layout.title
      Type: enumerated , one of ( "container" | "paper" )
      Default: "container"

      Sets the container `x` refers to. "container" spans the entire `width` of the plot. "paper" refers to the width of the plotting area only.

    • y
      Parent: layout.title
      Type: number between or equal to 0 and 1
      Default: "auto"

      Sets the y position with respect to `yref` in normalized coordinates from "0" (bottom) to "1" (top). "auto" places the baseline of the title onto the vertical center of the top margin.

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

      Sets the title's vertical alignment with respect to its y position. "top" means that the title's cap line is at y, "bottom" means that the title's baseline is at y and "middle" means that the title's midline is at y. "auto" divides `yref` by three and calculates the `yanchor` value automatically based on the value of `y`.

    • yref
      Parent: layout.title
      Type: enumerated , one of ( "container" | "paper" )
      Default: "container"

      Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.

  • showlegend
    Parent: layout
    Type: boolean

    Determines whether or not a legend is drawn. Default is `true` if there is a trace to show and any of these: a) Two or more traces would by default be shown in the legend. b) One pie trace is shown in the legend. c) One trace is explicitly given with `showlegend: true`.

  • legend
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • bgcolor
      Parent: layout.legend
      Type: color

      Sets the legend background color. Defaults to `layout.paper_bgcolor`.

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

      Sets the color of the border enclosing the legend.

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

      Sets the width (in px) of the border enclosing the legend.

    • entrywidth
      Parent: layout.legend
      Type: number greater than or equal to 0

      Sets the width (in px or fraction) of the legend. Use 0 to size the entry based on the text width, when `entrywidthmode` is set to "pixels".

    • entrywidthmode
      Parent: layout.legend
      Type: enumerated , one of ( "fraction" | "pixels" )
      Default: "pixels"

      Determines what entrywidth means.

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

      Sets the font used to text the legend items.

      • color
        Parent: layout.legend.font
        Type: color
      • family
        Parent: layout.legend.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.legend.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.legend.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.legend.font
        Type: number greater than or equal to 1
      • style
        Parent: layout.legend.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.legend.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.legend.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.legend.font
        Type: integer between or equal to 1 and 1000
        Default: normal

        Sets the weight (or boldness) of the font.

    • groupclick
      Parent: layout.legend
      Type: enumerated , one of ( "toggleitem" | "togglegroup" )
      Default: "togglegroup"

      Determines the behavior on legend group item click. "toggleitem" toggles the visibility of the individual item clicked on the graph. "togglegroup" toggles the visibility of all items in the same legendgroup as the item clicked on the graph.

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

      Sets the font for group titles in legend. Defaults to `legend.font` with its size increased about 10%.

      • color
        Parent: layout.legend.grouptitlefont
        Type: color
      • family
        Parent: layout.legend.grouptitlefont
        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.legend.grouptitlefont
        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.legend.grouptitlefont
        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.legend.grouptitlefont
        Type: number greater than or equal to 1
      • style
        Parent: layout.legend.grouptitlefont
        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.legend.grouptitlefont
        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.legend.grouptitlefont
        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.legend.grouptitlefont
        Type: integer between or equal to 1 and 1000
        Default: normal

        Sets the weight (or boldness) of the font.

    • indentation
      Parent: layout.legend
      Type: number greater than or equal to -15
      Default: 0

      Sets the indentation (in px) of the legend entries.

    • itemclick
      Parent: layout.legend
      Type: enumerated , one of ( "toggle" | "toggleothers" | false )
      Default: "toggle"

      Determines the behavior on legend item click. "toggle" toggles the visibility of the item clicked on the graph. "toggleothers" makes the clicked item the sole visible item on the graph. "false" disables legend item click interactions.

    • itemdoubleclick
      Parent: layout.legend
      Type: enumerated , one of ( "toggle" | "toggleothers" | false )
      Default: "toggleothers"

      Determines the behavior on legend item double-click. "toggle" toggles the visibility of the item clicked on the graph. "toggleothers" makes the clicked item the sole visible item on the graph. "false" disables legend item double-click interactions.

    • itemsizing
      Parent: layout.legend
      Type: enumerated , one of ( "trace" | "constant" )
      Default: "trace"

      Determines if the legend items symbols scale with their corresponding "trace" attributes or remain "constant" independent of the symbol size on the graph.

    • itemwidth
      Parent: layout.legend
      Type: number greater than or equal to 30
      Default: 30

      Sets the width (in px) of the legend item symbols (the part other than the title.text).

    • orientation
      Parent: layout.legend
      Type: enumerated , one of ( "v" | "h" )
      Default: "v"

      Sets the orientation of the legend.

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

        Sets this legend's title font. Defaults to `legend.font` with its size increased about 20%.

        • color
          Parent: layout.legend.title.font
          Type: color
        • family
          Parent: layout.legend.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.legend.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.legend.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.legend.title.font
          Type: number greater than or equal to 1
        • style
          Parent: layout.legend.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.legend.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.legend.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.legend.title.font
          Type: integer between or equal to 1 and 1000
          Default: normal

          Sets the weight (or boldness) of the font.

      • side
        Parent: layout.legend.title
        Type: enumerated , one of ( "top" | "left" | "top left" | "top center" | "top right" )

        Determines the location of legend's title with respect to the legend items. Defaulted to "top" with `orientation` is "h". Defaulted to "left" with `orientation` is "v". The "top left" options could be used to expand top center and top right are for horizontal alignment legend area in both x and y sides.

      • text
        Parent: layout.legend.title
        Type: string
        Default: ""

        Sets the title of the legend.

    • tracegroupgap
      Parent: layout.legend
      Type: number greater than or equal to 0
      Default: 10

      Sets the amount of vertical space (in px) between legend groups.

    • traceorder
      Parent: layout.legend
      Type: flaglist string. Any combination of "reversed", "grouped" joined with a "+" OR "normal".
      Examples: "reversed", "grouped", "reversed+grouped", "normal"

      Determines the order at which the legend items are displayed. If "normal", the items are displayed top-to-bottom in the same order as the input data. If "reversed", the items are displayed in the opposite order as "normal". If "grouped", the items are displayed in groups (when a trace `legendgroup` is provided). if "grouped+reversed", the items are displayed in the opposite order as "grouped".

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

      Controls persistence of legend-driven changes in trace and pie label visibility. Defaults to `layout.uirevision`.

    • valign
      Parent: layout.legend
      Type: enumerated , one of ( "top" | "middle" | "bottom" )
      Default: "middle"

      Sets the vertical alignment of the symbols with respect to their associated text.

    • visible
      Parent: layout.legend
      Type: boolean
      Default: true

      Determines whether or not this legend is visible.

    • x
      Parent: layout.legend
      Type: number

      Sets the x position with respect to `xref` (in normalized coordinates) of the legend. When `xref` is "paper", defaults to "1.02" for vertical legends and defaults to "0" for horizontal legends. When `xref` is "container", defaults to "1" for vertical legends and defaults to "0" for horizontal legends. Must be between "0" and "1" if `xref` is "container". and between "-2" and "3" if `xref` is "paper".

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

      Sets the legend's horizontal position anchor. This anchor binds the `x` position to the "left", "center" or "right" of the legend. Value "auto" anchors legends to the right for `x` values greater than or equal to 2/3, anchors legends to the left for `x` values less than or equal to 1/3 and anchors legends with respect to their center otherwise.

    • xref
      Parent: layout.legend
      Type: enumerated , one of ( "container" | "paper" )
      Default: "paper"

      Sets the container `x` refers to. "container" spans the entire `width` of the plot. "paper" refers to the width of the plotting area only.

    • y
      Parent: layout.legend
      Type: number

      Sets the y position with respect to `yref` (in normalized coordinates) of the legend. When `yref` is "paper", defaults to "1" for vertical legends, defaults to "-0.1" for horizontal legends on graphs w/o range sliders and defaults to "1.1" for horizontal legends on graph with one or multiple range sliders. When `yref` is "container", defaults to "1". Must be between "0" and "1" if `yref` is "container" and between "-2" and "3" if `yref` is "paper".

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

      Sets the legend's vertical position anchor This anchor binds the `y` position to the "top", "middle" or "bottom" of the legend. Value "auto" anchors legends at their bottom for `y` values less than or equal to 1/3, anchors legends to at their top for `y` values greater than or equal to 2/3 and anchors legends with respect to their middle otherwise.

    • yref
      Parent: layout.legend
      Type: enumerated , one of ( "container" | "paper" )
      Default: "paper"

      Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.

  • margin
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • autoexpand
      Parent: layout.margin
      Type: boolean
      Default: true

      Turns on/off margin expansion computations. Legends, colorbars, updatemenus, sliders, axis rangeselector and rangeslider are allowed to push the margins by defaults.

    • b
      Parent: layout.margin
      Type: number greater than or equal to 0
      Default: 80

      Sets the bottom margin (in px).

    • l
      Parent: layout.margin
      Type: number greater than or equal to 0
      Default: 80

      Sets the left margin (in px).

    • pad
      Parent: layout.margin
      Type: number greater than or equal to 0
      Default: 0

      Sets the amount of padding (in px) between the plotting area and the axis lines

    • r
      Parent: layout.margin
      Type: number greater than or equal to 0
      Default: 80

      Sets the right margin (in px).

    • t
      Parent: layout.margin
      Type: number greater than or equal to 0
      Default: 100

      Sets the top margin (in px).

  • autosize
    Parent: layout
    Type: boolean

    Determines whether or not a layout width or height that has been left undefined by the user is initialized on each relayout. Note that, regardless of this attribute, an undefined layout width or height is always initialized on the first call to plot.

  • width
    Parent: layout
    Type: number greater than or equal to 10
    Default: 700

    Sets the plot's width (in px).

  • height
    Parent: layout
    Type: number greater than or equal to 10
    Default: 450

    Sets the plot's height (in px).

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

    Sets the global font. Note that fonts used in traces and other layout components inherit from the global font.

    • color
      Parent: layout.font
      Type: color
      Default: "#444"
    • family
      Parent: layout.font
      Type: string
      Default: ""Open Sans", verdana, arial, sans-serif"

      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.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.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.font
      Type: number greater than or equal to 1
      Default: 12
    • style
      Parent: layout.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.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.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.font
      Type: integer between or equal to 1 and 1000
      Default: normal

      Sets the weight (or boldness) of the font.

  • uniformtext
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • minsize
      Parent: layout.uniformtext
      Type: number greater than or equal to 0
      Default: 0

      Sets the minimum text size between traces of the same type.

    • mode
      Parent: layout.uniformtext
      Type: enumerated , one of ( false | "hide" | "show" )

      Determines how the font size for various text elements are uniformed between each trace type. If the computed text sizes were smaller than the minimum size defined by `uniformtext.minsize` using "hide" option hides the text; and using "show" option shows the text without further downscaling. Please note that if the size defined by `minsize` is greater than the font size defined by trace, then the `minsize` is used.

  • separators
    Parent: layout
    Type: string

    Sets the decimal and thousand separators. For example, ". " puts a '.' before decimals and a space between thousands. In English locales, dflt is ".," but other locales may alter this default.

  • paper_bgcolor
    Parent: layout
    Type: color
    Default: "#fff"

    Sets the background color of the paper where the graph is drawn.

  • plot_bgcolor
    Parent: layout
    Type: color
    Default: "#fff"

    Sets the background color of the plotting area in-between x and y axes.

  • autotypenumbers
    Parent: layout
    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. This is the default value; however it could be overridden for individual axes.

  • colorscale
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • diverging
      Parent: layout.colorscale
      Type: colorscale
      Default: [[0, rgb(5,10,172)], [0.35, rgb(106,137,247)], [0.5, rgb(190,190,190)], [0.6, rgb(220,170,132)], [0.7, rgb(230,145,90)], [1, rgb(178,10,28)], ]

      Sets the default diverging colorscale. Note that `autocolorscale` must be true for this attribute to work.

    • sequential
      Parent: layout.colorscale
      Type: colorscale
      Default: [[0, rgb(220,220,220)], [0.2, rgb(245,195,157)], [0.4, rgb(245,160,105)], [1, rgb(178,10,28)], ]

      Sets the default sequential colorscale for positive values. Note that `autocolorscale` must be true for this attribute to work.

    • sequentialminus
      Parent: layout.colorscale
      Type: colorscale
      Default: [[0, rgb(5,10,172)], [0.35, rgb(40,60,190)], [0.5, rgb(70,100,245)], [0.6, rgb(90,120,245)], [0.7, rgb(106,137,247)], [1, rgb(220,220,220)], ]

      Sets the default sequential colorscale for negative values. Note that `autocolorscale` must be true for this attribute to work.

  • colorway
    Parent: layout
    Type: colorlist
    Default: [#1f77b4, #ff7f0e, #2ca02c, #d62728, #9467bd, #8c564b, #e377c2, #7f7f7f, #bcbd22, #17becf]

    Sets the default trace colors.

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

      Sets the color of the active or hovered on icons in the modebar.

    • add
      Parent: layout.modebar
      Type: string or array of strings
      Default: ""

      Determines which predefined modebar buttons to add. Please note that these buttons will only be shown if they are compatible with all trace types used in a graph. Similar to `config.modeBarButtonsToAdd` option. This may include "v1hovermode", "hoverclosest", "hovercompare", "togglehover", "togglespikelines", "drawline", "drawopenpath", "drawclosedpath", "drawcircle", "drawrect", "eraseshape".

    • bgcolor
      Parent: layout.modebar
      Type: color

      Sets the background color of the modebar.

    • color
      Parent: layout.modebar
      Type: color

      Sets the color of the icons in the modebar.

    • orientation
      Parent: layout.modebar
      Type: enumerated , one of ( "v" | "h" )
      Default: "h"

      Sets the orientation of the modebar.

    • remove
      Parent: layout.modebar
      Type: string or array of strings
      Default: ""

      Determines which predefined modebar buttons to remove. Similar to `config.modeBarButtonsToRemove` option. This may include "autoScale2d", "autoscale", "editInChartStudio", "editinchartstudio", "hoverCompareCartesian", "hovercompare", "lasso", "lasso2d", "orbitRotation", "orbitrotation", "pan", "pan2d", "pan3d", "reset", "resetCameraDefault3d", "resetCameraLastSave3d", "resetGeo", "resetSankeyGroup", "resetScale2d", "resetViewMap", "resetViewMapbox", "resetViews", "resetcameradefault", "resetcameralastsave", "resetsankeygroup", "resetscale", "resetview", "resetviews", "select", "select2d", "sendDataToCloud", "senddatatocloud", "tableRotation", "tablerotation", "toImage", "toggleHover", "toggleSpikelines", "togglehover", "togglespikelines", "toimage", "zoom", "zoom2d", "zoom3d", "zoomIn2d", "zoomInGeo", "zoomInMap", "zoomInMapbox", "zoomOut2d", "zoomOutGeo", "zoomOutMap", "zoomOutMapbox", "zoomin", "zoomout".

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

      Controls persistence of user-driven changes related to the modebar, including `hovermode`, `dragmode`, and `showspikes` at both the root level and inside subplots. Defaults to `layout.uirevision`.

  • hovermode
    Parent: layout
    Type: enumerated , one of ( "x" | "y" | "closest" | false | "x unified" | "y unified" )
    Default: "closest"

    Determines the mode of hover interactions. If "closest", a single hoverlabel will appear for the "closest" point within the `hoverdistance`. If "x" (or "y"), multiple hoverlabels will appear for multiple points at the "closest" x- (or y-) coordinate within the `hoverdistance`, with the caveat that no more than one hoverlabel will appear per trace. If "x unified" (or "y unified"), a single hoverlabel will appear multiple points at the closest x- (or y-) coordinate within the `hoverdistance` with the caveat that no more than one hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover interactions are disabled.

  • hoversubplots
    Parent: layout
    Type: enumerated , one of ( "single" | "overlaying" | "axis" )
    Default: "overlaying"

    Determines expansion of hover effects to other subplots If "single" just the axis pair of the primary point is included without overlaying subplots. If "overlaying" all subplots using the main axis and occupying the same space are included. If "axis", also include stacked subplots using the same axis when `hovermode` is set to "x", "x unified", "y" or "y unified".

  • clickmode
    Parent: layout
    Type: flaglist string. Any combination of "event", "select" joined with a "+" OR "none".
    Examples: "event", "select", "event+select", "none"
    Default: "event"

    Determines the mode of single click interactions. "event" is the default value and emits the `plotly_click` event. In addition this mode emits the `plotly_selected` event in drag modes "lasso" and "select", but with no event data attached (kept for compatibility reasons). The "select" flag enables selecting single data points via click. This mode also supports persistent selections, meaning that pressing Shift while clicking, adds to / subtracts from an existing selection. "select" with `hovermode`: "x" can be confusing, consider explicitly setting `hovermode`: "closest" when using this feature. Selection events are sent accordingly as long as "event" flag is set as well. When the "event" flag is missing, `plotly_click` and `plotly_selected` events are not fired.

  • dragmode
    Parent: layout
    Type: enumerated , one of ( "zoom" | "pan" | "select" | "lasso" | "drawclosedpath" | "drawopenpath" | "drawline" | "drawrect" | "drawcircle" | "orbit" | "turntable" | false )
    Default: "zoom"

    Determines the mode of drag interactions. "select" and "lasso" apply only to scatter traces with markers or text. "orbit" and "turntable" apply only to 3D scenes.

  • selectdirection
    Parent: layout
    Type: enumerated , one of ( "h" | "v" | "d" | "any" )
    Default: "any"

    When `dragmode` is set to "select", this limits the selection of the drag to horizontal, vertical or diagonal. "h" only allows horizontal selection, "v" only vertical, "d" only diagonal and "any" sets no limit.

  • activeselection
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • fillcolor
      Parent: layout.activeselection
      Type: color
      Default: "rgba(0,0,0,0)"

      Sets the color filling the active selection' interior.

    • opacity
      Parent: layout.activeselection
      Type: number between or equal to 0 and 1
      Default: 0.5

      Sets the opacity of the active selection.

  • newselection
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • line
      Parent: layout.newselection
      Type: object containing one or more of the keys listed below.
      • color
        Parent: layout.newselection.line
        Type: color

        Sets the line color. By default uses either dark grey or white to increase contrast with background color.

      • dash
        Parent: layout.newselection.line
        Type: string
        Default: "dot"

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

      • width
        Parent: layout.newselection.line
        Type: number greater than or equal to 1
        Default: 1

        Sets the line width (in px).

    • mode
      Parent: layout.newselection
      Type: enumerated , one of ( "immediate" | "gradual" )
      Default: "immediate"

      Describes how a new selection is created. If `immediate`, a new selection is created after first mouse up. If `gradual`, a new selection is not created after first mouse. By adding to and subtracting from the initial selection, this option allows declaring extra outlines of the selection.

  • hoverdistance
    Parent: layout
    Type: integer greater than or equal to -1
    Default: 20

    Sets the default distance (in pixels) to look for data to add hover labels (-1 means no cutoff, 0 means no looking for data). This is only a real distance for hovering on point-like objects, like scatter points. For area-like objects (bars, scatter fills, etc) hovering is on inside the area and off outside, but these objects will not supersede hover on point-like objects in case of conflict.

  • spikedistance
    Parent: layout
    Type: integer greater than or equal to -1
    Default: -1

    Sets the default distance (in pixels) to look for data to draw spikelines to (-1 means no cutoff, 0 means no looking for data). As with hoverdistance, distance does not apply to area-like objects. In addition, some objects can be hovered on but will not generate spikelines, such as scatter fills.

  • hoverlabel
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • align
      Parent: layout.hoverlabel
      Type: enumerated , one of ( "left" | "right" | "auto" )
      Default: "auto"

      Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines

    • bgcolor
      Parent: layout.hoverlabel
      Type: color

      Sets the background color of all hover labels on graph

    • bordercolor
      Parent: layout.hoverlabel
      Type: color

      Sets the border color of all hover labels on graph.

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

      Sets the default hover label font used by all traces on the graph.

      • color
        Parent: layout.hoverlabel.font
        Type: color
      • family
        Parent: layout.hoverlabel.font
        Type: string
        Default: "Arial, sans-serif"

        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.hoverlabel.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.hoverlabel.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.hoverlabel.font
        Type: number greater than or equal to 1
        Default: 13
      • style
        Parent: layout.hoverlabel.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.hoverlabel.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.hoverlabel.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.hoverlabel.font
        Type: integer between or equal to 1 and 1000
        Default: normal

        Sets the weight (or boldness) of the font.

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

      Sets the font for group titles in hover (unified modes). Defaults to `hoverlabel.font`.

      • color
        Parent: layout.hoverlabel.grouptitlefont
        Type: color
      • family
        Parent: layout.hoverlabel.grouptitlefont
        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.hoverlabel.grouptitlefont
        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.hoverlabel.grouptitlefont
        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.hoverlabel.grouptitlefont
        Type: number greater than or equal to 1
      • style
        Parent: layout.hoverlabel.grouptitlefont
        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.hoverlabel.grouptitlefont
        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.hoverlabel.grouptitlefont
        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.hoverlabel.grouptitlefont
        Type: integer between or equal to 1 and 1000
        Default: normal

        Sets the weight (or boldness) of the font.

    • namelength
      Parent: layout.hoverlabel
      Type: integer greater than or equal to -1
      Default: 15

      Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.

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

    Sets transition options used during Plotly.react updates.

    • duration
      Parent: layout.transition
      Type: number greater than or equal to 0
      Default: 500

      The duration of the transition, in milliseconds. If equal to zero, updates are synchronous.

    • easing
      Parent: layout.transition
      Type: enumerated , one of ( "linear" | "quad" | "cubic" | "sin" | "exp" | "circle" | "elastic" | "back" | "bounce" | "linear-in" | "quad-in" | "cubic-in" | "sin-in" | "exp-in" | "circle-in" | "elastic-in" | "back-in" | "bounce-in" | "linear-out" | "quad-out" | "cubic-out" | "sin-out" | "exp-out" | "circle-out" | "elastic-out" | "back-out" | "bounce-out" | "linear-in-out" | "quad-in-out" | "cubic-in-out" | "sin-in-out" | "exp-in-out" | "circle-in-out" | "elastic-in-out" | "back-in-out" | "bounce-in-out" )
      Default: "cubic-in-out"

      The easing function used for the transition

    • ordering
      Parent: layout.transition
      Type: enumerated , one of ( "layout first" | "traces first" )
      Default: "layout first"

      Determines whether the figure's layout or traces smoothly transitions during updates that make both traces and layout change.

  • datarevision
    Parent: layout
    Type: number or categorical coordinate string

    If provided, a changed value tells `Plotly.react` that one or more data arrays has changed. This way you can modify arrays in-place rather than making a complete new copy for an incremental change. If NOT provided, `Plotly.react` assumes that data arrays are being treated as immutable, thus any data array with a different identity from its predecessor contains new data.

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

    Used to allow user interactions with the plot to persist after `Plotly.react` calls that are unaware of these interactions. If `uirevision` is omitted, or if it is given and it changed from the previous `Plotly.react` call, the exact new figure is used. If `uirevision` is truthy and did NOT change, any attribute that has been affected by user interactions and did not receive a different value in the new figure will keep the interaction value. `layout.uirevision` attribute serves as the default for `uirevision` attributes in various sub-containers. For finer control you can set these sub-attributes directly. For example, if your app separately controls the data on the x and y axes you might set `xaxis.uirevision="time"` and `yaxis.uirevision="cost"`. Then if only the y data is changed, you can update `yaxis.uirevision="quantity"` and the y axis range will reset but the x axis range will retain any user-driven zoom.

  • editrevision
    Parent: layout
    Type: number or categorical coordinate string

    Controls persistence of user-driven changes in `editable: true` configuration, other than trace names and axis titles. Defaults to `layout.uirevision`.

  • selectionrevision
    Parent: layout
    Type: number or categorical coordinate string

    Controls persistence of user-driven changes in selected points from all traces.

  • template
    Parent: layout
    Type: number or categorical coordinate string

    Default attributes to be applied to the plot. Templates can be created from existing plots using `Plotly.makeTemplate`, or created manually. They should be objects with format: `{layout: layoutTemplate, data: {[type]: [traceTemplate, ...]}, ...}` `layoutTemplate` and `traceTemplate` are objects matching the attribute structure of `layout` and a data trace. Trace templates are applied cyclically to traces of each type. Container arrays (eg `annotations`) have special handling: An object ending in `defaults` (eg `annotationdefaults`) is applied to each array item. But if an item has a `templateitemname` key we look in the template array for an item with matching `name` and apply that instead. If no matching `name` is found we mark the item invisible. Any named template item not referenced is appended to the end of the array, so you can use this for a watermark annotation or a logo image, for example. To omit one of these items on the plot, make an item with matching `templateitemname` and `visible: false`.

  • meta
    Parent: layout
    Type: number or categorical coordinate string

    Assigns extra meta information that can be used in various `text` attributes. Attributes such as the graph, axis and colorbar `title.text`, annotation `text` `trace.name` in legend items, `rangeselector`, `updatemenus` and `sliders` `label` text all support `meta`. One can access `meta` fields using template strings: `%{meta[i]}` where `i` is the index of the `meta` item in question. `meta` can also be an object for example `{key: value}` which can be accessed %{meta[key]}.

  • computed
    Parent: layout
    Type: number or categorical coordinate string

    Placeholder for exporting automargin-impacting values namely `margin.t`, `margin.b`, `margin.l` and `margin.r` in "full-json" mode.

  • grid
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • columns
      Parent: layout.grid
      Type: integer greater than or equal to 1

      The number of columns in the grid. If you provide a 2D `subplots` array, the length of its longest row is used as the default. If you give an `xaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots.

    • domain
      Parent: layout.grid
      Type: object containing one or more of the keys listed below.
      • x
        Parent: layout.grid.domain
        Type: array
        Default: [0, 1]

        Sets the horizontal domain of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges.

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

        Sets the vertical domain of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges.

    • pattern
      Parent: layout.grid
      Type: enumerated , one of ( "independent" | "coupled" )
      Default: "coupled"

      If no `subplots`, `xaxes`, or `yaxes` are given but we do have `rows` and `columns`, we can generate defaults using consecutive axis IDs, in two ways: "coupled" gives one x axis per column and one y axis per row. "independent" uses a new xy pair for each cell, left-to-right across each row then iterating rows according to `roworder`.

    • roworder
      Parent: layout.grid
      Type: enumerated , one of ( "top to bottom" | "bottom to top" )
      Default: "top to bottom"

      Is the first row the top or the bottom? Note that columns are always enumerated from left to right.

    • rows
      Parent: layout.grid
      Type: integer greater than or equal to 1

      The number of rows in the grid. If you provide a 2D `subplots` array or a `yaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots.

    • subplots
      Parent: layout.grid
      Type: array

      Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like "xy" or "x3y2", or "" to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute.

    • xaxes
      Parent: layout.grid
      Type: array

      Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like "x", "x2", etc., or "" to not put an x axis in that column. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs.

    • xgap
      Parent: layout.grid
      Type: number between or equal to 0 and 1

      Horizontal space between grid cells, expressed as a fraction of the total width available to one cell. Defaults to 0.1 for coupled-axes grids and 0.2 for independent grids.

    • xside
      Parent: layout.grid
      Type: enumerated , one of ( "bottom" | "bottom plot" | "top plot" | "top" )
      Default: "bottom plot"

      Sets where the x axis labels and titles go. "bottom" means the very bottom of the grid. "bottom plot" is the lowest plot that each x axis is used in. "top" and "top plot" are similar.

    • yaxes
      Parent: layout.grid
      Type: array

      Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like "y", "y2", etc., or "" to not put a y axis in that row. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs.

    • ygap
      Parent: layout.grid
      Type: number between or equal to 0 and 1

      Vertical space between grid cells, expressed as a fraction of the total height available to one cell. Defaults to 0.1 for coupled-axes grids and 0.3 for independent grids.

    • yside
      Parent: layout.grid
      Type: enumerated , one of ( "left" | "left plot" | "right plot" | "right" )
      Default: "left plot"

      Sets where the y axis labels and titles go. "left" means the very left edge of the grid. "left plot" is the leftmost plot that each y axis is used in. "right" and "right plot" are similar.

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

    Sets the default calendar system to use for interpreting and displaying dates throughout the plot.

  • minreducedheight
    Parent: layout
    Type: number greater than or equal to 2
    Default: 64

    Minimum height of the plot with margin.automargin applied (in px)

  • minreducedwidth
    Parent: layout
    Type: number greater than or equal to 2
    Default: 64

    Minimum width of the plot with margin.automargin applied (in px)

  • map
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • bearing
      Parent: layout.map
      Type: number
      Default: 0

      Sets the bearing angle of the map in degrees counter-clockwise from North (map.bearing).

    • bounds
      Parent: layout.map
      Type: object containing one or more of the keys listed below.
      • east
        Parent: layout.map.bounds
        Type: number

        Sets the maximum longitude of the map (in degrees East) if `west`, `south` and `north` are declared.

      • north
        Parent: layout.map.bounds
        Type: number

        Sets the maximum latitude of the map (in degrees North) if `east`, `west` and `south` are declared.

      • south
        Parent: layout.map.bounds
        Type: number

        Sets the minimum latitude of the map (in degrees North) if `east`, `west` and `north` are declared.

      • west
        Parent: layout.map.bounds
        Type: number

        Sets the minimum longitude of the map (in degrees East) if `east`, `south` and `north` are declared.

    • center
      Parent: layout.map
      Type: object containing one or more of the keys listed below.
      • lat
        Parent: layout.map.center
        Type: number
        Default: 0

        Sets the latitude of the center of the map (in degrees North).

      • lon
        Parent: layout.map.center
        Type: number
        Default: 0

        Sets the longitude of the center of the map (in degrees East).

    • domain
      Parent: layout.map
      Type: object containing one or more of the keys listed below.
      • column
        Parent: layout.map.domain
        Type: integer greater than or equal to 0
        Default: 0

        If there is a layout grid, use the domain for this column in the grid for this map subplot .

      • row
        Parent: layout.map.domain
        Type: integer greater than or equal to 0
        Default: 0

        If there is a layout grid, use the domain for this row in the grid for this map subplot .

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

        Sets the horizontal domain of this map subplot (in plot fraction).

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

        Sets the vertical domain of this map subplot (in plot fraction).

    • layers
      Parent: layout.map
      Type: array of object where each object has one or more of the keys listed below.
      • below
        Parent: layout.map.layers[]
        Type: string

        Determines if the layer will be inserted before the layer with the specified ID. If omitted or set to '', the layer will be inserted above every existing layer.

      • circle
        Parent: layout.map.layers[]
        Type: object containing one or more of the keys listed below.
        • radius
          Parent: layout.map.layers[].circle
          Type: number
          Default: 15

          Sets the circle radius (map.layer.paint.circle-radius). Has an effect only when `type` is set to "circle".

      • color
        Parent: layout.map.layers[]
        Type: color
        Default: "#444"

        Sets the primary layer color. If `type` is "circle", color corresponds to the circle color (map.layer.paint.circle-color) If `type` is "line", color corresponds to the line color (map.layer.paint.line-color) If `type` is "fill", color corresponds to the fill color (map.layer.paint.fill-color) If `type` is "symbol", color corresponds to the icon color (map.layer.paint.icon-color)

      • coordinates
        Parent: layout.map.layers[]
        Type: number or categorical coordinate string

        Sets the coordinates array contains [longitude, latitude] pairs for the image corners listed in clockwise order: top left, top right, bottom right, bottom left. Only has an effect for "image" `sourcetype`.

      • fill
        Parent: layout.map.layers[]
        Type: object containing one or more of the keys listed below.
        • outlinecolor
          Parent: layout.map.layers[].fill
          Type: color
          Default: "#444"

          Sets the fill outline color (map.layer.paint.fill-outline-color). Has an effect only when `type` is set to "fill".

      • line
        Parent: layout.map.layers[]
        Type: object containing one or more of the keys listed below.
        • dash
          Parent: layout.map.layers[].line
          Type: data array

          Sets the length of dashes and gaps (map.layer.paint.line-dasharray). Has an effect only when `type` is set to "line".

        • width
          Parent: layout.map.layers[].line
          Type: number
          Default: 2

          Sets the line width (map.layer.paint.line-width). Has an effect only when `type` is set to "line".

      • maxzoom
        Parent: layout.map.layers[]
        Type: number between or equal to 0 and 24
        Default: 24

        Sets the maximum zoom level (map.layer.maxzoom). At zoom levels equal to or greater than the maxzoom, the layer will be hidden.

      • minzoom
        Parent: layout.map.layers[]
        Type: number between or equal to 0 and 24
        Default: 0

        Sets the minimum zoom level (map.layer.minzoom). At zoom levels less than the minzoom, the layer will be hidden.

      • name
        Parent: layout.map.layers[]
        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.

      • opacity
        Parent: layout.map.layers[]
        Type: number between or equal to 0 and 1
        Default: 1

        Sets the opacity of the layer. If `type` is "circle", opacity corresponds to the circle opacity (map.layer.paint.circle-opacity) If `type` is "line", opacity corresponds to the line opacity (map.layer.paint.line-opacity) If `type` is "fill", opacity corresponds to the fill opacity (map.layer.paint.fill-opacity) If `type` is "symbol", opacity corresponds to the icon/text opacity (map.layer.paint.text-opacity)

      • source
        Parent: layout.map.layers[]
        Type: number or categorical coordinate string

        Sets the source data for this layer (map.layer.source). When `sourcetype` is set to "geojson", `source` can be a URL to a GeoJSON or a GeoJSON object. When `sourcetype` is set to "vector" or "raster", `source` can be a URL or an array of tile URLs. When `sourcetype` is set to "image", `source` can be a URL to an image.

      • sourceattribution
        Parent: layout.map.layers[]
        Type: string

        Sets the attribution for this source.

      • sourcelayer
        Parent: layout.map.layers[]
        Type: string
        Default: ""

        Specifies the layer to use from a vector tile source (map.layer.source-layer). Required for "vector" source type that supports multiple layers.

      • sourcetype
        Parent: layout.map.layers[]
        Type: enumerated , one of ( "geojson" | "vector" | "raster" | "image" )
        Default: "geojson"

        Sets the source type for this layer, that is the type of the layer data.

      • symbol
        Parent: layout.map.layers[]
        Type: object containing one or more of the keys listed below.
        • icon
          Parent: layout.map.layers[].symbol
          Type: string
          Default: "marker"

          Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.map.com/maki-icons/

        • iconsize
          Parent: layout.map.layers[].symbol
          Type: number
          Default: 10

          Sets the symbol icon size (map.layer.layout.icon-size). Has an effect only when `type` is set to "symbol".

        • placement
          Parent: layout.map.layers[].symbol
          Type: enumerated , one of ( "point" | "line" | "line-center" )
          Default: "point"

          Sets the symbol and/or text placement (map.layer.layout.symbol-placement). If `placement` is "point", the label is placed where the geometry is located If `placement` is "line", the label is placed along the line of the geometry If `placement` is "line-center", the label is placed on the center of the geometry

        • text
          Parent: layout.map.layers[].symbol
          Type: string
          Default: ""

          Sets the symbol text (map.layer.layout.text-field).

        • textfont
          Parent: layout.map.layers[].symbol
          Type: object containing one or more of the keys listed below.

          Sets the icon text font (color=map.layer.paint.text-color, size=map.layer.layout.text-size). Has an effect only when `type` is set to "symbol".

          • color
            Parent: layout.map.layers[].symbol.textfont
            Type: color
          • family
            Parent: layout.map.layers[].symbol.textfont
            Type: string
            Default: "Open Sans Regular, Arial Unicode MS Regular"

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

          • size
            Parent: layout.map.layers[].symbol.textfont
            Type: number greater than or equal to 1
          • style
            Parent: layout.map.layers[].symbol.textfont
            Type: enumerated , one of ( "normal" | "italic" )
            Default: "normal"

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

          • weight
            Parent: layout.map.layers[].symbol.textfont
            Type: integer between or equal to 1 and 1000
            Default: normal

            Sets the weight (or boldness) of the font.

        • textposition
          Parent: layout.map.layers[].symbol
          Type: enumerated , one of ( "top left" | "top center" | "top right" | "middle left" | "middle center" | "middle right" | "bottom left" | "bottom center" | "bottom right" )
          Default: "middle center"

          Sets the positions of the `text` elements with respects to the (x,y) coordinates.

      • templateitemname
        Parent: layout.map.layers[]
        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`.

      • type
        Parent: layout.map.layers[]
        Type: enumerated , one of ( "circle" | "line" | "fill" | "symbol" | "raster" )
        Default: "circle"

        Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to "geojson", the following values are allowed: "circle", "line", "fill" and "symbol". but note that "line" and "fill" are not compatible with Point GeoJSON geometries. With `sourcetype` set to "vector", the following values are allowed: "circle", "line", "fill" and "symbol". With `sourcetype` set to "raster" or `"image"`, only the "raster" value is allowed.

      • visible
        Parent: layout.map.layers[]
        Type: boolean
        Default: true

        Determines whether this layer is displayed

    • pitch
      Parent: layout.map
      Type: number
      Default: 0

      Sets the pitch angle of the map (in degrees, where "0" means perpendicular to the surface of the map) (map.pitch).

    • style
      Parent: layout.map
      Type: number or categorical coordinate string
      Default: basic

      Defines the map layers that are rendered by default below the trace layers defined in `data`, which are themselves by default rendered below the layers defined in `layout.map.layers`. These layers can be defined either explicitly as a Map Style object which can contain multiple layer definitions that load data from any public or private Tile Map Service (TMS or XYZ) or Web Map Service (WMS) or implicitly by using one of the built-in style objects which use WMSes or by using a custom style URL Map Style objects are of the form described in the MapLibre GL JS documentation available at https://maplibre.org/maplibre-style-spec/ The built-in plotly.js styles objects are: basic, carto-darkmatter, carto-darkmatter-nolabels, carto-positron, carto-positron-nolabels, carto-voyager, carto-voyager-nolabels, dark, light, open-street-map, outdoors, satellite, satellite-streets, streets, white-bg.

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

      Controls persistence of user-driven changes in the view: `center`, `zoom`, `bearing`, `pitch`. Defaults to `layout.uirevision`.

    • zoom
      Parent: layout.map
      Type: number
      Default: 1

      Sets the zoom level of the map (map.zoom).

  • newshape
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • drawdirection
      Parent: layout.newshape
      Type: enumerated , one of ( "ortho" | "horizontal" | "vertical" | "diagonal" )
      Default: "diagonal"

      When `dragmode` is set to "drawrect", "drawline" or "drawcircle" this limits the drag to be horizontal, vertical or diagonal. Using "diagonal" there is no limit e.g. in drawing lines in any direction. "ortho" limits the draw to be either horizontal or vertical. "horizontal" allows horizontal extend. "vertical" allows vertical extend.

    • fillcolor
      Parent: layout.newshape
      Type: color
      Default: "rgba(0,0,0,0)"

      Sets the color filling new shapes' interior. Please note that if using a fillcolor with alpha greater than half, drag inside the active shape starts moving the shape underneath, otherwise a new shape could be started over.

    • fillrule
      Parent: layout.newshape
      Type: enumerated , one of ( "evenodd" | "nonzero" )
      Default: "evenodd"

      Determines the path's interior. For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule

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

        Sets the new shape label text font.

        • color
          Parent: layout.newshape.label.font
          Type: color
        • family
          Parent: layout.newshape.label.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.newshape.label.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.newshape.label.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.newshape.label.font
          Type: number greater than or equal to 1
        • style
          Parent: layout.newshape.label.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.newshape.label.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.newshape.label.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.newshape.label.font
          Type: integer between or equal to 1 and 1000
          Default: normal

          Sets the weight (or boldness) of the font.

      • padding
        Parent: layout.newshape.label
        Type: number greater than or equal to 0
        Default: 3

        Sets padding (in px) between edge of label and edge of new shape.

      • text
        Parent: layout.newshape.label
        Type: string
        Default: ""

        Sets the text to display with the new shape. It is also used for legend item if `name` is not provided.

      • textangle
        Parent: layout.newshape.label
        Type: angle
        Default: "auto"

        Sets the angle at which the label text is drawn with respect to the horizontal. For lines, angle "auto" is the same angle as the line. For all other shapes, angle "auto" is horizontal.

      • textposition
        Parent: layout.newshape.label
        Type: enumerated , one of ( "top left" | "top center" | "top right" | "middle left" | "middle center" | "middle right" | "bottom left" | "bottom center" | "bottom right" | "start" | "middle" | "end" )

        Sets the position of the label text relative to the new shape. Supported values for rectangles, circles and paths are "top left", "top center", "top right", "middle left", "middle center", "middle right", "bottom left", "bottom center", and "bottom right". Supported values for lines are "start", "middle", and "end". Default: "middle center" for rectangles, circles, and paths; "middle" for lines.

      • texttemplate
        Parent: layout.newshape.label
        Type: string
        Default: ""

        Template string used for rendering the new shape's label. Note that this will override `text`. Variables are inserted using %{variable}, for example "x0: %{x0}". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example "Price: %{x0:$.2f}". See https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example "Day: %{x0|%m %b %Y}". See https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. A single multiplication or division operation may be applied to numeric variables, and combined with d3 number formatting, for example "Length in cm: %{x0"2.54}", "%{slope"60:.1f} meters per second." For log axes, variable values are given in log units. For date axes, x/y coordinate variables and center variables use datetimes, while all other variable values use values in ms. Finally, the template string has access to variables `x0`, `x1`, `y0`, `y1`, `slope`, `dx`, `dy`, `width`, `height`, `length`, `xcenter` and `ycenter`.

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

        Sets the label's horizontal position anchor This anchor binds the specified `textposition` to the "left", "center" or "right" of the label text. For example, if `textposition` is set to "top right" and `xanchor` to "right" then the right-most portion of the label text lines up with the right-most edge of the new shape.

      • yanchor
        Parent: layout.newshape.label
        Type: enumerated , one of ( "top" | "middle" | "bottom" )

        Sets the label's vertical position anchor This anchor binds the specified `textposition` to the "top", "middle" or "bottom" of the label text. For example, if `textposition` is set to "top right" and `yanchor` to "top" then the top-most portion of the label text lines up with the top-most edge of the new shape.

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

      Specifies whether new shapes are drawn below gridlines ("below"), between gridlines and traces ("between") or above traces ("above").

    • legend
      Parent: layout.newshape
      Type: subplotid
      Default: legend

      Sets the reference to a legend to show new shape in. References to these legends are "legend", "legend2", "legend3", etc. Settings for these legends are set in the layout, under `layout.legend`, `layout.legend2`, etc.

    • legendgroup
      Parent: layout.newshape
      Type: string
      Default: ""

      Sets the legend group for new shape. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.

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

        Sets this legend group's title font.

        • color
          Parent: layout.newshape.legendgrouptitle.font
          Type: color
        • family
          Parent: layout.newshape.legendgrouptitle.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.newshape.legendgrouptitle.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.newshape.legendgrouptitle.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.newshape.legendgrouptitle.font
          Type: number greater than or equal to 1
        • style
          Parent: layout.newshape.legendgrouptitle.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.newshape.legendgrouptitle.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.newshape.legendgrouptitle.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.newshape.legendgrouptitle.font
          Type: integer between or equal to 1 and 1000
          Default: normal

          Sets the weight (or boldness) of the font.

      • text
        Parent: layout.newshape.legendgrouptitle
        Type: string
        Default: ""

        Sets the title of the legend group.

    • legendrank
      Parent: layout.newshape
      Type: number
      Default: 1000

      Sets the legend rank for new shape. Items and groups with smaller ranks are presented on top/left side while with "reversed" `legend.traceorder` they are on bottom/right side. The default legendrank is 1000, so that you can use ranks less than 1000 to place certain items before all unranked items, and ranks greater than 1000 to go after all unranked items.

    • legendwidth
      Parent: layout.newshape
      Type: number greater than or equal to 0

      Sets the width (in px or fraction) of the legend for new shape.

    • line
      Parent: layout.newshape
      Type: object containing one or more of the keys listed below.
      • color
        Parent: layout.newshape.line
        Type: color

        Sets the line color. By default uses either dark grey or white to increase contrast with background color.

      • dash
        Parent: layout.newshape.line
        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").

      • width
        Parent: layout.newshape.line
        Type: number greater than or equal to 0
        Default: 4

        Sets the line width (in px).

    • name
      Parent: layout.newshape
      Type: string

      Sets new shape name. The name appears as the legend item.

    • opacity
      Parent: layout.newshape
      Type: number between or equal to 0 and 1
      Default: 1

      Sets the opacity of new shapes.

    • showlegend
      Parent: layout.newshape
      Type: boolean

      Determines whether or not new shape is shown in the legend.

    • visible
      Parent: layout.newshape
      Type: enumerated , one of ( true | false | "legendonly" )
      Default: true

      Determines whether or not new shape is visible. If "legendonly", the shape is not drawn, but can appear as a legend item (provided that the legend itself is visible).

  • activeshape
    Parent: layout
    Type: object containing one or more of the keys listed below.
    • fillcolor
      Parent: layout.activeshape
      Type: color
      Default: "rgb(255,0,255)"

      Sets the color filling the active shape' interior.

    • opacity
      Parent: layout.activeshape
      Type: number between or equal to 0 and 1
      Default: 0.5

      Sets the opacity of the active shape.

  • selections
    Parent: layout
    Type: array of object where each object has one or more of the keys listed below.
    • line
      Parent: layout.selections[]
      Type: object containing one or more of the keys listed below.
      • color
        Parent: layout.selections[].line
        Type: color

        Sets the line color.

      • dash
        Parent: layout.selections[].line
        Type: string
        Default: "dot"

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

      • width
        Parent: layout.selections[].line
        Type: number greater than or equal to 1
        Default: 1

        Sets the line width (in px).

    • name
      Parent: layout.selections[]
      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.

    • opacity
      Parent: layout.selections[]
      Type: number between or equal to 0 and 1
      Default: 0.7

      Sets the opacity of the selection.

    • path
      Parent: layout.selections[]
      Type: string

      For `type` "path" - a valid SVG path similar to `shapes.path` in data coordinates. Allowed segments are: M, L and Z.

    • templateitemname
      Parent: layout.selections[]
      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`.

    • type
      Parent: layout.selections[]
      Type: enumerated , one of ( "rect" | "path" )

      Specifies the selection type to be drawn. If "rect", a rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`), (`x1`,`y1`) and (`x0`,`y1`). If "path", draw a custom SVG path using `path`.

    • x0
      Parent: layout.selections[]
      Type: number or categorical coordinate string

      Sets the selection's starting x position.

    • x1
      Parent: layout.selections[]
      Type: number or categorical coordinate string

      Sets the selection's end x position.

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

      Sets the selection's x coordinate axis. If set to a x axis id (e.g. "x" or "x2"), the `x` position refers to a x coordinate. If set to "paper", the `x` position refers to the distance from the left of the plotting area in normalized coordinates where "0" ("1") corresponds to the left (right). If set to a x axis ID followed by "domain" (separated by a space), the position behaves like for "paper", but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., "x2 domain" refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis.

    • y0
      Parent: layout.selections[]
      Type: number or categorical coordinate string

      Sets the selection's starting y position.

    • y1
      Parent: layout.selections[]
      Type: number or categorical coordinate string

      Sets the selection's end y position.

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

      Sets the selection's x coordinate axis. If set to a y axis id (e.g. "y" or "y2"), the `y` position refers to a y coordinate. If set to "paper", the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where "0" ("1") corresponds to the bottom (top). If set to a y axis ID followed by "domain" (separated by a space), the position behaves like for "paper", but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., "y2 domain" refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis.

  • hidesources
    Parent: layout
    Type: boolean

    Determines whether or not a text link citing the data source is placed at the bottom-right cored of the figure. Has only an effect only on graphs that have been generated via forked graphs from the Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise).

  • scattergap
    Parent: layout
    Type: number between or equal to 0 and 1

    Sets the gap (in plot fraction) between scatter points of adjacent location coordinates. Defaults to `bargap`.

  • scattermode
    Parent: layout
    Type: enumerated , one of ( "group" | "overlay" )
    Default: "overlay"

    Determines how scatter points at the same location coordinate are displayed on the graph. With "group", the scatter points are plotted next to one another centered around the shared location. With "overlay", the scatter points are plotted over one another, you might need to reduce "opacity" to see multiple scatter points.

  • barcornerradius
    Parent: layout
    Type: number or categorical coordinate string

    Sets the rounding of bar corners. May be an integer number of pixels, or a percentage of bar width (as a string ending in %).

  • bargap
    Parent: layout
    Type: number between or equal to 0 and 1

    Sets the gap (in plot fraction) between bars of adjacent location coordinates.

  • bargroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0

    Sets the gap (in plot fraction) between bars of the same location coordinate.

  • barmode
    Parent: layout
    Type: enumerated , one of ( "stack" | "group" | "overlay" | "relative" )
    Default: "group"

    Determines how bars at the same location coordinate are displayed on the graph. With "stack", the bars are stacked on top of one another With "relative", the bars are stacked on top of one another, with negative values below the axis, positive values above With "group", the bars are plotted next to one another centered around the shared location. With "overlay", the bars are plotted over one another, you might need to reduce "opacity" to see multiple bars.

  • barnorm
    Parent: layout
    Type: enumerated , one of ( "" | "fraction" | "percent" )
    Default: ""

    Sets the normalization for bar traces on the graph. With "fraction", the value of each bar is divided by the sum of all values at that location coordinate. "percent" is the same but multiplied by 100 to show percentages.

  • extendpiecolors
    Parent: layout
    Type: boolean
    Default: true

    If `true`, the pie slice colors (whether given by `piecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.

  • hiddenlabels
    Parent: layout
    Type: data array

    hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts

  • piecolorway
    Parent: layout
    Type: colorlist

    Sets the default pie slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendpiecolors`.

  • boxgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.3

    Sets the gap (in plot fraction) between boxes of adjacent location coordinates. Has no effect on traces that have "width" set.

  • boxgroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.3

    Sets the gap (in plot fraction) between boxes of the same location coordinate. Has no effect on traces that have "width" set.

  • boxmode
    Parent: layout
    Type: enumerated , one of ( "group" | "overlay" )
    Default: "overlay"

    Determines how boxes at the same location coordinate are displayed on the graph. If "group", the boxes are plotted next to one another centered around the shared location. If "overlay", the boxes are plotted over one another, you might need to set "opacity" to see them multiple boxes. Has no effect on traces that have "width" set.

  • violingap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.3

    Sets the gap (in plot fraction) between violins of adjacent location coordinates. Has no effect on traces that have "width" set.

  • violingroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.3

    Sets the gap (in plot fraction) between violins of the same location coordinate. Has no effect on traces that have "width" set.

  • violinmode
    Parent: layout
    Type: enumerated , one of ( "group" | "overlay" )
    Default: "overlay"

    Determines how violins at the same location coordinate are displayed on the graph. If "group", the violins are plotted next to one another centered around the shared location. If "overlay", the violins are plotted over one another, you might need to set "opacity" to see them multiple violins. Has no effect on traces that have "width" set.

  • barcornerradius
    Parent: layout
    Type: number or categorical coordinate string

    Sets the rounding of bar corners. May be an integer number of pixels, or a percentage of bar width (as a string ending in %).

  • bargap
    Parent: layout
    Type: number between or equal to 0 and 1

    Sets the gap (in plot fraction) between bars of adjacent location coordinates.

  • bargroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0

    Sets the gap (in plot fraction) between bars of the same location coordinate.

  • barmode
    Parent: layout
    Type: enumerated , one of ( "stack" | "group" | "overlay" | "relative" )
    Default: "group"

    Determines how bars at the same location coordinate are displayed on the graph. With "stack", the bars are stacked on top of one another With "relative", the bars are stacked on top of one another, with negative values below the axis, positive values above With "group", the bars are plotted next to one another centered around the shared location. With "overlay", the bars are plotted over one another, you might need to reduce "opacity" to see multiple bars.

  • barnorm
    Parent: layout
    Type: enumerated , one of ( "" | "fraction" | "percent" )
    Default: ""

    Sets the normalization for bar traces on the graph. With "fraction", the value of each bar is divided by the sum of all values at that location coordinate. "percent" is the same but multiplied by 100 to show percentages.

  • boxgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.3

    Sets the gap (in plot fraction) between boxes of adjacent location coordinates. Has no effect on traces that have "width" set.

  • boxgroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.3

    Sets the gap (in plot fraction) between boxes of the same location coordinate. Has no effect on traces that have "width" set.

  • boxmode
    Parent: layout
    Type: enumerated , one of ( "group" | "overlay" )
    Default: "overlay"

    Determines how boxes at the same location coordinate are displayed on the graph. If "group", the boxes are plotted next to one another centered around the shared location. If "overlay", the boxes are plotted over one another, you might need to set "opacity" to see them multiple boxes. Has no effect on traces that have "width" set.

  • waterfallgap
    Parent: layout
    Type: number between or equal to 0 and 1

    Sets the gap (in plot fraction) between bars of adjacent location coordinates.

  • waterfallgroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0

    Sets the gap (in plot fraction) between bars of the same location coordinate.

  • waterfallmode
    Parent: layout
    Type: enumerated , one of ( "group" | "overlay" )
    Default: "group"

    Determines how bars at the same location coordinate are displayed on the graph. With "group", the bars are plotted next to one another centered around the shared location. With "overlay", the bars are plotted over one another, you might need to reduce "opacity" to see multiple bars.

  • funnelgap
    Parent: layout
    Type: number between or equal to 0 and 1

    Sets the gap (in plot fraction) between bars of adjacent location coordinates.

  • funnelgroupgap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0

    Sets the gap (in plot fraction) between bars of the same location coordinate.

  • funnelmode
    Parent: layout
    Type: enumerated , one of ( "stack" | "group" | "overlay" )
    Default: "stack"

    Determines how bars at the same location coordinate are displayed on the graph. With "stack", the bars are stacked on top of one another With "group", the bars are plotted next to one another centered around the shared location. With "overlay", the bars are plotted over one another, you might need to reduce "opacity" to see multiple bars.

  • extendfunnelareacolors
    Parent: layout
    Type: boolean
    Default: true

    If `true`, the funnelarea slice colors (whether given by `funnelareacolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.

  • funnelareacolorway
    Parent: layout
    Type: colorlist

    Sets the default funnelarea slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendfunnelareacolors`.

  • hiddenlabels
    Parent: layout
    Type: data array

    hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts

  • bargap
    Parent: layout
    Type: number between or equal to 0 and 1
    Default: 0.1

    Sets the gap between bars of adjacent location coordinates. Values are unitless, they represent fractions of the minimum difference in bar positions in the data.

  • barmode
    Parent: layout
    Type: enumerated , one of ( "stack" | "overlay" )
    Default: "stack"

    Determines how bars at the same location coordinate are displayed on the graph. With "stack", the bars are stacked on top of one another With "overlay", the bars are plotted over one another, you might need to reduce "opacity" to see multiple bars.

  • extendsunburstcolors
    Parent: layout
    Type: boolean
    Default: true

    If `true`, the sunburst slice colors (whether given by `sunburstcolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.

  • sunburstcolorway
    Parent: layout
    Type: colorlist

    Sets the default sunburst slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendsunburstcolors`.

  • extendtreemapcolors
    Parent: layout
    Type: boolean
    Default: true

    If `true`, the treemap slice colors (whether given by `treemapcolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.

  • treemapcolorway
    Parent: layout
    Type: colorlist

    Sets the default treemap slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendtreemapcolors`.

  • extendiciclecolors
    Parent: layout
    Type: boolean
    Default: true

    If `true`, the icicle slice colors (whether given by `iciclecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.

  • iciclecolorway
    Parent: layout
    Type: colorlist

    Sets the default icicle slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendiciclecolors`.