# Histogram

### Exclusive Options

<details>

<summary>Current Bin</summary>

**Default Value**: include

**Type**: enumerated

**Enum Options**: include,exclude,half

**Documentation**: Only applies if cumulative is enabled. Sets whether the current bin is included, excluded, or has half of its value included in the current cumulative value. *include* is the default for compatibility with various other tools, however it introduces a half-bin bias to the results. *exclude* makes the opposite half-bin bias, and *half* removes it.

**Path**: data.index.cumulative.currentbin

</details>

<details>

<summary>Direction</summary>

**Default Value**: increasing

**Type**: enumerated

**Enum Options**: increasing,decreasing

**Documentation**: Only applies if cumulative is enabled. If *increasing* (default) we sum all prior bins, so the result increases from left to right. If *decreasing* we sum later bins so the result decreases from left to right.

**Path**: data.index.cumulative.direction

</details>

<details>

<summary>Enabled</summary>

**Default Value**: false

**Type**: boolean

**Documentation**: If true, display the cumulative distribution by summing the binned values. Use the `direction` and `centralbin` attributes to tune the accumulation method. Note: in this mode, the *density* `histnorm` settings behave the same as their equivalents without *density*: \*\* and *density* both rise to the number of data points, and *probability* and *probability density* both rise to the number of sample points.

**Path**: data.index.cumulative.enabled

</details>

<details>

<summary>Hist Func</summary>

**Default Value**: count

**Type**: enumerated

**Enum Options**: count,sum,avg,min,max

**Documentation**: Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.

**Path**: data.index.histfunc

</details>

<details>

<summary>Hist Norm</summary>

**Default Value**:

**Type**: enumerated

**Enum Options**: ,percent,probability,density,probability density

**Documentation**: Specifies the type of normalization used for this histogram trace. If \*\*, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).

**Path**: data.index.histnorm

</details>

<details>

<summary>N Bins X</summary>

**Default Value**: 0

**Type**: integer

**Min**: 0

**Documentation**: Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided.

**Path**: data.index.nbinsx

</details>

<details>

<summary>N Bins Y</summary>

**Default Value**: 0

**Type**: integer

**Min**: 0

**Documentation**: Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided.

**Path**: data.index.nbinsy

</details>

***

### Hover Formatting

<details>

<summary>Hover Info</summary>

**Default Value**: all

**Type**: flaglist

**Accept List**: true

**Flag Options**: x,y,z,text,name

**Flag Single**: all,none,skip

**Documentation**: Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.

**Path**: data.index.hoverinfo

</details>

<details>

<summary>Hover Template</summary>

**Default Value**:

**Type**: string

**Accept List**: true

**Documentation**: Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example "y: %{y}" as well as %{xother}, {%*xother}, {%xother}, {%xother*}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example "Price: %{y:$.2f}". <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: %{2019-01-01|%A}". <https://github.com/d3/d3-time-format/tree/v2.2.3#locale\\_format> for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link <https://plotly.com/javascript/plotlyjs-events/#event-data>. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `<extra>` is displayed in the secondary box, for example "{fullData.name}". To hide the secondary box completely, use an empty tag `<extra></extra>`.

**Path**: data.index.hovertemplate

</details>

***

### Text and Hover Formatting

<details>

<summary>Inside Text Anchor</summary>

**Default Value**: end

**Type**: enumerated

**Enum Options**: end,middle,start

**Documentation**: Determines if texts are kept at center or start/end points in `textposition` *inside* mode.

**Path**: data.index.insidetextanchor

</details>

***

### Color Scale Options

<details>

<summary>Auto Color Scale</summary>

**Default Value**: true

**Type**: boolean

**Documentation**: Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed.

**Path**: data.index.marker.autocolorscale

</details>

<details>

<summary>C Auto</summary>

**Default Value**: true

**Type**: boolean

**Documentation**: Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.

**Path**: data.index.marker.cauto

</details>

<details>

<summary>C Max</summary>

**Type**: number

**Documentation**: Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.

**Path**: data.index.marker.cmax

</details>

<details>

<summary>C Mid</summary>

**Type**: number

**Documentation**: Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.

**Path**: data.index.marker.cmid

</details>

<details>

<summary>C Min</summary>

**Type**: number

**Documentation**: Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.

**Path**: data.index.marker.cmin

</details>

<details>

<summary>Color Scale</summary>

**Type**: colorscale

**Documentation**: Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use `marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Blackbody,Bluered,Blues,Cividis,Earth,Electric,Greens,Greys,Hot,Jet,Picnic,Portland,Rainbow,RdBu,Reds,Viridis,YlGnBu,YlOrRd.

**Path**: data.index.marker.colorscale

</details>

<details>

<summary>Reverse Scale</summary>

**Default Value**: false

**Type**: boolean

**Documentation**: Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.

**Path**: data.index.marker.reversescale

</details>

<details>

<summary>Show Scale</summary>

**Default Value**: false

**Type**: boolean

**Documentation**: Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.

**Path**: data.index.marker.showscale

</details>

***

### Items Styling

<details>

<summary>Color</summary>

**Type**: color

**Accept List**: true

**Documentation**: Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.

**Path**: data.index.marker.color

</details>

<details>

<summary>Line Color</summary>

**Type**: color

**Accept List**: true

**Documentation**: Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.

**Path**: data.index.marker.line.color

</details>

<details>

<summary>Line Width</summary>

**Default Value**: 0

**Type**: number

**Accept List**: true

**Min**: 0

**Documentation**: Sets the width (in px) of the lines bounding the marker points.

**Path**: data.index.marker.line.width

</details>

<details>

<summary>Opacity</summary>

**Default Value**: 1

**Type**: number

**Accept List**: true

**Min**: 0

**Max**: 1

**Documentation**: Sets the opacity of the bars.

**Path**: data.index.marker.opacity

</details>

***

### Color Bar Layout

<details>

<summary>Colorbar Bg Color</summary>

**Default Value**: rgba(0,0,0,0)

**Type**: color

**Documentation**: Sets the color of padded area.

**Path**: data.index.marker.colorbar.bgcolor

</details>

<details>

<summary>Colorbar Border Color</summary>

**Default Value**: #444

**Type**: color

**Documentation**: Sets the axis line color.

**Path**: data.index.marker.colorbar.bordercolor

</details>

<details>

<summary>Colorbar Border Width</summary>

**Default Value**: 0

**Type**: number

**Min**: 0

**Documentation**: Sets the width (in px) or the border enclosing this color bar.

**Path**: data.index.marker.colorbar.borderwidth

</details>

<details>

<summary>Colorbar Len</summary>

**Default Value**: 1

**Type**: number

**Min**: 0

**Documentation**: Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.

**Path**: data.index.marker.colorbar.len

</details>

<details>

<summary>Colorbar Len Mode</summary>

**Default Value**: fraction

**Type**: enumerated

**Enum Options**: fraction,pixels

**Documentation**: Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in \*pixels. Use `len` to set the value.

**Path**: data.index.marker.colorbar.lenmode

</details>

<details>

<summary>Colorbar Outline Color</summary>

**Default Value**: #444

**Type**: color

**Documentation**: Sets the axis line color.

**Path**: data.index.marker.colorbar.outlinecolor

</details>

<details>

<summary>Colorbar Outline Width</summary>

**Default Value**: 1

**Type**: number

**Min**: 0

**Documentation**: Sets the width (in px) of the axis line.

**Path**: data.index.marker.colorbar.outlinewidth

</details>

<details>

<summary>Colorbar Thickness</summary>

**Default Value**: 30

**Type**: number

**Min**: 0

**Documentation**: Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.

**Path**: data.index.marker.colorbar.thickness

</details>

<details>

<summary>Colorbar Thickness Mode</summary>

**Default Value**: pixels

**Type**: enumerated

**Enum Options**: fraction,pixels

**Documentation**: Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.

**Path**: data.index.marker.colorbar.thicknessmode

</details>

***

### Color Bar Ticks Options

<details>

<summary>Colorbar D Tick</summary>

**Type**: any

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

**Path**: data.index.marker.colorbar.dtick

</details>

<details>

<summary>Colorbar N Ticks</summary>

**Default Value**: 0

**Type**: integer

**Min**: 0

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

**Path**: data.index.marker.colorbar.nticks

</details>

<details>

<summary>Colorbar Show Tick Labels</summary>

**Default Value**: true

**Type**: boolean

**Documentation**: Determines whether or not the tick labels are drawn.

**Path**: data.index.marker.colorbar.showticklabels

</details>

<details>

<summary>Colorbar Ticks</summary>

**Default Value**:

**Type**: enumerated

**Enum Options**: outside,inside,

**Documentation**: Determines whether ticks are drawn or not. If \*\*, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.

**Path**: data.index.marker.colorbar.ticks

</details>

***

### Color Bar Positioning

<details>

<summary>Colorbar Orientation</summary>

**Default Value**: v

**Type**: enumerated

**Enum Options**: h,v

**Documentation**: Sets the orientation of the colorbar.

**Path**: data.index.marker.colorbar.orientation

</details>

<details>

<summary>Colorbar X</summary>

**Type**: number

**Documentation**: Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.

**Path**: data.index.marker.colorbar.x

</details>

<details>

<summary>Colorbar X Anchor</summary>

**Type**: enumerated

**Enum Options**: left,center,right

**Documentation**: Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar. Defaults to *left* when `orientation` is *v* and *center* when `orientation` is *h*.

**Path**: data.index.marker.colorbar.xanchor

</details>

<details>

<summary>Colorbar Y</summary>

**Type**: number

**Documentation**: Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.

**Path**: data.index.marker.colorbar.y

</details>

<details>

<summary>Colorbar Y Anchor</summary>

**Type**: enumerated

**Enum Options**: top,middle,bottom

**Documentation**: Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar. Defaults to *middle* when `orientation` is *v* and *bottom* when `orientation` is *h*.

**Path**: data.index.marker.colorbar.yanchor

</details>

***

### Color Bar Title Options

<details>

<summary>Font Color</summary>

**Type**: color

**Path**: data.index.marker.colorbar.title.font.color

</details>

<details>

<summary>Font Size</summary>

**Type**: number

**Min**: 1

**Path**: data.index.marker.colorbar.title.font.size

</details>

<details>

<summary>Title Side</summary>

**Type**: enumerated

**Enum Options**: right,top,bottom

**Documentation**: Determines the location of color bar's title with respect to the color bar. Defaults to *top* when `orientation` if *v* and defaults to *right* when `orientation` if *h*. Note that the title's location used to be set by the now deprecated `titleside` attribute.

**Path**: data.index.marker.colorbar.title.side

</details>

<details>

<summary>Title Text</summary>

**Type**: string

**Documentation**: Sets the title of the color bar. 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.

**Path**: data.index.marker.colorbar.title.text

</details>

***

### Items Pattern Options

<details>

<summary>Pattern Fg Color</summary>

**Type**: color

**Accept List**: true

**Documentation**: When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.

**Path**: data.index.marker.pattern.fgcolor

</details>

<details>

<summary>Pattern Fill Mode</summary>

**Default Value**: replace

**Type**: enumerated

**Enum Options**: replace,overlay

**Documentation**: Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.

**Path**: data.index.marker.pattern.fillmode

</details>

<details>

<summary>Pattern Shape</summary>

**Default Value**:

**Type**: enumerated

**Accept List**: true

**Enum Options**: ,/,,x,-,|,+,.

**Documentation**: Sets the shape of the pattern fill. By default, no pattern is used for filling the area.

**Path**: data.index.marker.pattern.shape

</details>

<details>

<summary>Pattern Size</summary>

**Default Value**: 8

**Type**: number

**Accept List**: true

**Min**: 0

**Documentation**: Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.

**Path**: data.index.marker.pattern.size

</details>

***

### Basic Options

<details>

<summary>Name</summary>

**Type**: string

**Documentation**: Sets the trace name. The trace name appears as the legend item and on hover.

**Path**: data.index.name

</details>

<details>

<summary>Opacity</summary>

**Default Value**: 1

**Type**: number

**Min**: 0

**Max**: 1

**Documentation**: Sets the opacity of the trace.

**Path**: data.index.opacity

</details>

<details>

<summary>Orientation</summary>

**Type**: enumerated

**Enum Options**: v,h

**Documentation**: Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal).

**Path**: data.index.orientation

</details>

***

### Data Source

<details>

<summary>Text</summary>

**Default Value**:

**Type**: string

**Accept List**: true

**Documentation**: Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates.

**Path**: data.index.text

</details>

<details>

<summary>X</summary>

**Type**: any

**Accept List**: true

**Documentation**: Sets the sample data to be binned on the x axis.

**Path**: data.index.x

</details>

<details>

<summary>Y</summary>

**Type**: any

**Accept List**: true

**Documentation**: Sets the sample data to be binned on the y axis.

**Path**: data.index.y

</details>

***

### Text Formatting

<details>

<summary>Text Angle</summary>

**Default Value**: auto

**Type**: angle

**Documentation**: Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars.

**Path**: data.index.textangle

</details>

<details>

<summary>Color</summary>

**Type**: color

**Path**: data.index.textfont.color

</details>

<details>

<summary>Size</summary>

**Type**: number

**Min**: 1

**Path**: data.index.textfont.size

</details>

<details>

<summary>Text Position</summary>

**Default Value**: auto

**Type**: enumerated

**Accept List**: false

**Enum Options**: inside,outside,auto,none

**Documentation**: Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears.

**Path**: data.index.textposition

</details>

<details>

<summary>Text Template</summary>

**Default Value**:

**Type**: string

**Documentation**: Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example "y: %{y}". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example "Price: %{y:$.2f}". <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: %{2019-01-01|%A}". <https://github.com/d3/d3-time-format/tree/v2.2.3#locale\\_format> for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label` and `value`.

**Path**: data.index.texttemplate

</details>

***

### Calendar Options

<details>

<summary>X Calendar</summary>

**Default Value**: gregorian

**Type**: enumerated

**Enum Options**: chinese,coptic,discworld,ethiopian,gregorian,hebrew,islamic,jalali,julian,mayan,nanakshahi,nepali,persian,taiwan,thai,ummalqura

**Documentation**: Sets the calendar system to use with `x` date data.

**Path**: data.index.xcalendar

</details>

***

### Multi Trace Options

<details>

<summary>Bar Gap</summary>

**Type**: number

**Min**: 0

**Max**: 1

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

**Path**: layout.bargap

</details>

<details>

<summary>Bar Group Gap</summary>

**Default Value**: 0

**Type**: number

**Min**: 0

**Max**: 1

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

**Path**: layout.bargroupgap

</details>

<details>

<summary>Bar Mode</summary>

**Default Value**: group

**Type**: enumerated

**Enum Options**: stack,group,overlay,relative

**Documentation**: 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.

**Path**: layout.barmode

</details>

<details>

<summary>Bar Norm</summary>

**Default Value**:

**Type**: enumerated

**Enum Options**: ,fraction,percent

**Documentation**: 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.

**Path**: layout.barnorm

</details>
