B
    =cq8             {   @   s
  d dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG d	d
 d
eZd dl mZ d dlZG dd deZ	d dl mZ d dlZG dd deZ
d dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd deZd dl mZ d dlZG dd  d eZd dl mZ d dlZG d!d" d"eZd dl mZ d dlZG d#d$ d$eZd dl mZ d dlZG d%d& d&eZd dl mZ d dlZG d'd( d(eZd dl mZ d dlZG d)d* d*eZd dl mZ d dlZG d+d, d,eZd dl mZ d dlZG d-d. d.eZd dl mZ d dlZG d/d0 d0eZd dl mZ d dlZG d1d2 d2eZd dl mZ d dlZG d3d4 d4eZd dl mZ d dlZG d5d6 d6eZd dl mZ d dlZG d7d8 d8eZd dl mZ d dlZG d9d: d:eZ d dl mZ d dlZG d;d< d<eZ!d dl mZ d dlZG d=d> d>eZ"d dl mZ d dlZG d?d@ d@eZ#d dl mZ d dlZG dAdB dBeZ$d dl mZ d dlZG dCdD dDeZ%d dl mZ d dlZG dEdF dFeZ&d dl mZ d dlZG dGdH dHeZ'd dl mZ d dlZG dIdJ dJeZ(d dl mZ d dlZG dKdL dLeZ)d dl mZ d dlZG dMdN dNeZ*d dl mZ d dlZG dOdP dPeZ+d dl mZ d dlZG dQdR dReZ,d dl mZ d dlZG dSdT dTeZ-d dl mZ d dlZG dUdV dVeZ.d dl mZ d dlZG dWdX dXeZ/d dl mZ d dlZG dYdZ dZeZ0d dl mZ d dlZG d[d\ d\eZ1d dl mZ d dlZG d]d^ d^eZ2d dl mZ d dlZG d_d` d`eZ3d dal m4Z5 d dlZG dbdc dce5Z6d ddl m7Z8 d dlZG dedf dfe8Z9d dgl:m;Z; d dhl:m<Z< d dil:m=Z= d djl:m>Z> d dkl:m?Z? d dll:m@Z@ d dml:mAZA d dnl:mBZB d dol:mCZC d dpl:mDZD d dql:mEZE d drl:mFZF d dsl:mGZG d dtl:mHZH d dul:mIZI d dvl:mJZJ d dwl:mKZK d dxl:mLZL d dyl:mMZM d dzl:mNZN d d{l:mOZO d d|l:mPZP d d}l:mQZQ d d~l:mRZR d dl:mSZS d dl:mTZT d dl:mUZU d dl:mVZV d dl:mWZW d dl:mXZX d dl:mYZY d dl:mZZZ d dl:m[Z[ d dl:m\Z\ d dl:m]Z] d dl:m^Z^ d dl:m_Z_ d dl:m`Z` d dl:maZa d dl:mbZb d dl:mcZc d dl:mdZd d dl:meZe d dl:mfZf d dl:mgZg d dl:mhZh d dl:miZi d dl:mjZj ddlkmlZl ddlmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZ dddd`d^d\dZdXdVdTdRddPdNdLdddJddddddfddHdFdDdBd@d>d<dd:d8d6dcddddd4d2d0d.d,d*dd(d&d$d"d dddddddddddddd
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddg{ZyFd dlZd dlmZ eejedk
rddlmZ ed [[W n ek

r   Y nX dS )    )BaseTraceTypeNc            =       sZ  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?e?jdd Z?edd Z@e@jdd Z@edd ZAedd ZBedd ZCd fdd	ZD  ZES )	Waterfallc             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same alignmentgroup. This controls whether bars
        compute their positional range dependently or independently.
    
        The 'alignmentgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        alignmentgroup )selfr   r   K/var/www/cleansys/lib/python3.7/site-packages/plotly/graph_objs/__init__.pyr   	   s    zWaterfall.alignmentgroupc             C   s   || d< d S )Nr   r   )r   valr   r   r   r      s    c             C   s   | d S )z
        Sets where the bar base is drawn (in position axis units).
    
        The 'base' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        baser   )r   r   r   r   r	       s    zWaterfall.basec             C   s   || d< d S )Nr	   r   )r   r   r   r   r   r	   .   s    c             C   s   | d S )a}  
        Determines whether the text nodes are clipped about the subplot
        axes. To show the text nodes above axis lines and tick labels,
        make sure to set `xaxis.layer` and `yaxis.layer` to *below
        traces*.
    
        The 'cliponaxis' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        
cliponaxisr   )r   r   r   r   r
   4   s    zWaterfall.cliponaxisc             C   s   || d< d S )Nr
   r   )r   r   r   r   r   r
   E   s    c             C   s   | d S )a  
        The 'connector' property is an instance of Connector
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Connector`
          - A dict of string/value properties that will be passed
            to the Connector constructor
    
            Supported dict properties:
                
                line
                    :class:`plotly.graph_objects.waterfall.connecto
                    r.Line` instance or dict with compatible
                    properties
                mode
                    Sets the shape of connector lines.
                visible
                    Determines if connector lines are drawn.

        Returns
        -------
        plotly.graph_objs.waterfall.Connector
        	connectorr   )r   r   r   r   r   K   s    zWaterfall.connectorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   e   s    c             C   s   | d S )a_  
        Constrain the size of text inside or outside a bar to be no
        larger than the bar itself.
    
        The 'constraintext' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'both', 'none']

        Returns
        -------
        Any
        constraintextr   )r   r   r   r   r   k   s    zWaterfall.constraintextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {   s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        
customdatar   )r   r   r   r   r      s    zWaterfall.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        customdatasrcr   )r   r   r   r   r      s    zWaterfall.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )ah  
        The 'decreasing' property is an instance of Decreasing
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Decreasing`
          - A dict of string/value properties that will be passed
            to the Decreasing constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.waterfall.decreasi
                    ng.Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.waterfall.Decreasing
        
decreasingr   )r   r   r   r   r      s    zWaterfall.decreasingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        dxr   )r   r   r   r   r      s    zWaterfall.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        dyr   )r   r   r   r   r      s    zWaterfall.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )a{  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['name', 'x', 'y', 'text', 'initial', 'delta', 'final'] joined with '+' characters
            (e.g. 'name+x')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        	hoverinfor   )r   r   r   r   r      s    zWaterfall.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        hoverinfosrcr   )r   r   r   r   r   
  s    zWaterfall.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.waterfall.Hoverlabel
        
hoverlabelr   )r   r   r   r   r     s    3zWaterfall.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   S  s    c             C   s   | d S )aG  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `initial`, `delta` and `final`. Anything contained in
        tag `<extra>` is displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        hovertemplater   )r   r   r   r   r   Y  s    !zWaterfall.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   |  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        hovertemplatesrcr   )r   r   r   r   r     s    zWaterfall.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        	hovertextr   )r   r   r   r   r     s    zWaterfall.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        hovertextsrcr   )r   r   r   r   r     s    zWaterfall.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        idsr   )r   r   r   r   r     s    zWaterfall.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        idssrcr   )r   r   r   r   r     s    zWaterfall.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ah  
        The 'increasing' property is an instance of Increasing
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Increasing`
          - A dict of string/value properties that will be passed
            to the Increasing constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.waterfall.increasi
                    ng.Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.waterfall.Increasing
        
increasingr   )r   r   r   r   r     s    zWaterfall.increasingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a[  
        Determines if texts are kept at center or start/end points in
        `textposition` "inside" mode.
    
        The 'insidetextanchor' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['end', 'middle', 'start']

        Returns
        -------
        Any
        insidetextanchorr   )r   r   r   r   r   
  s    zWaterfall.insidetextanchorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )as  
        Sets the font used for `text` lying inside the bar.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.waterfall.Insidetextfont
        insidetextfontr   )r   r   r   r   r      s    /zWaterfall.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        legendgroupr   )r   r   r   r   r   W  s    zWaterfall.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h  s    c             C   s   | d S )a  
        An array containing types of values. By default the values are
        considered as 'relative'. However; it is possible to use
        'total' to compute the sums. Also 'absolute' could be applied
        to reset the computed total or to declare an initial value
        where needed.
    
        The 'measure' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        measurer   )r   r   r   r   r   n  s    zWaterfall.measurec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  measure .
    
        The 'measuresrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        
measuresrcr   )r   r   r   r   r      s    zWaterfall.measuresrcc             C   s   || d< d S )Nr    r   )r   r   r   r   r   r      s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        metar   )r   r   r   r   r!     s    zWaterfall.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        metasrcr   )r   r   r   r   r"     s    zWaterfall.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        namer   )r   r   r   r   r#     s    zWaterfall.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )a  
        Shifts the position where the bar is drawn (in position axis
        units). In "group" barmode, traces that set "offset" will be
        excluded and drawn in "overlay" mode instead.
    
        The 'offset' property is a number and may be specified as:
          - An int or float
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        offsetr   )r   r   r   r   r$     s    zWaterfall.offsetc             C   s   || d< d S )Nr$   r   )r   r   r   r   r   r$     s    c             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same offsetgroup where bars of the same position
        coordinate will line up.
    
        The 'offsetgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        offsetgroupr   )r   r   r   r   r%     s    zWaterfall.offsetgroupc             C   s   || d< d S )Nr%   r   )r   r   r   r   r   r%     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  offset .
    
        The 'offsetsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        	offsetsrcr   )r   r   r   r   r&     s    zWaterfall.offsetsrcc             C   s   || d< d S )Nr&   r   )r   r   r   r   r   r&     s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        opacityr   )r   r   r   r   r'   "  s    zWaterfall.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   0  s    c             C   s   | d S )a]  
        Sets the orientation of the bars. With "v" ("h"), the value of
        the each bar spans along the vertical (horizontal).
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        orientationr   )r   r   r   r   r(   6  s    zWaterfall.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(   F  s    c             C   s   | d S )ay  
        Sets the font used for `text` lying outside the bar.
    
        The 'outsidetextfont' property is an instance of Outsidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Outsidetextfont`
          - A dict of string/value properties that will be passed
            to the Outsidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.waterfall.Outsidetextfont
        outsidetextfontr   )r   r   r   r   r)   L  s    /zWaterfall.outsidetextfontc             C   s   || d< d S )Nr)   r   )r   r   r   r   r   r)   }  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        selectedpointsr   )r   r   r   r   r*     s    zWaterfall.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        
showlegendr   )r   r   r   r   r+     s    zWaterfall.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.waterfall.Stream
        streamr   )r   r   r   r   r,     s    zWaterfall.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        textr   )r   r   r   r   r-     s    zWaterfall.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )a*  
        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.
    
        The 'textangle' property is a angle (in degrees) that may be
        specified as a number between -180 and 180. Numeric values outside this
        range are converted to the equivalent value
        (e.g. 270 is converted to -90).

        Returns
        -------
        int|float
        	textangler   )r   r   r   r   r.     s    zWaterfall.textanglec             C   s   || d< d S )Nr.   r   )r   r   r   r   r   r.     s    c             C   s   | d S )a@  
        Sets the font used for `text`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.waterfall.Textfont
        textfontr   )r   r   r   r   r/     s    /zWaterfall.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   6  s    c             C   s   | d S )a  
        Determines which trace information appear on the graph. In the
        case of having multiple waterfalls, totals are computed
        separately (per trace).
    
        The 'textinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'initial', 'delta', 'final'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        textinfor   )r   r   r   r   r0   <  s    zWaterfall.textinfoc             C   s   || d< d S )Nr0   r   )r   r   r   r   r   r0   O  s    c             C   s   | d S )a'  
        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.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'auto', 'none']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        textpositionr   )r   r   r   r   r1   U  s    zWaterfall.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   k  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        textpositionsrcr   )r   r   r   r   r2   q  s    zWaterfall.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        textsrcr   )r   r   r   r   r3     s    zWaterfall.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `initial`, `delta`, `final` and `label`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        texttemplater   )r   r   r   r   r4     s    zWaterfall.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        texttemplatesrcr   )r   r   r   r   r5     s    zWaterfall.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5     s    c             C   s   | d S )aP  
        The 'totals' property is an instance of Totals
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.waterfall.Totals`
          - A dict of string/value properties that will be passed
            to the Totals constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.waterfall.totals.M
                    arker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.waterfall.Totals
        totalsr   )r   r   r   r   r6     s    zWaterfall.totalsc             C   s   || d< d S )Nr6   r   )r   r   r   r   r   r6     s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        uidr   )r   r   r   r   r7     s    zWaterfall.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        
uirevisionr   )r   r   r   r   r8     s    zWaterfall.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        visibler   )r   r   r   r   r9   #  s    zWaterfall.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   4  s    c             C   s   | d S )aB  
        Sets the bar width (in position axis units).
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [0, inf]
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        widthr   )r   r   r   r   r:   :  s    zWaterfall.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:   I  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  width .
    
        The 'widthsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        widthsrcr   )r   r   r   r   r;   O  s    zWaterfall.widthsrcc             C   s   || d< d S )Nr;   r   )r   r   r   r   r   r;   ]  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        xr   )r   r   r   r   r<   c  s    zWaterfall.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   q  s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        x0r   )r   r   r   r   r=   w  s    zWaterfall.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=     s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        xaxisr   )r   r   r   r   r>     s    zWaterfall.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        xsrcr   )r   r   r   r   r?     s    zWaterfall.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        yr   )r   r   r   r   r@     s    zWaterfall.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        y0r   )r   r   r   r   rA     s    zWaterfall.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        yaxisr   )r   r   r   r   rB     s    zWaterfall.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        ysrcr   )r   r   r   r   rC     s    zWaterfall.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   	  s    c             C   s
   | j d S )Ntype)_props)r   r   r   r   rD     s    zWaterfall.typec             C   s   dS )N r   )r   r   r   r   _parent_path_str  s    zWaterfall._parent_path_strc             C   s   dS )Nah4          alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        base
            Sets where the bar base is drawn (in position axis
            units).
        cliponaxis
            Determines whether the text nodes are clipped about the
            subplot axes. To show the text nodes above axis lines
            and tick labels, make sure to set `xaxis.layer` and
            `yaxis.layer` to *below traces*.
        connector
            :class:`plotly.graph_objects.waterfall.Connector`
            instance or dict with compatible properties
        constraintext
            Constrain the size of text inside or outside a bar to
            be no larger than the bar itself.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        decreasing
            :class:`plotly.graph_objects.waterfall.Decreasing`
            instance or dict with compatible properties
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.waterfall.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `initial`, `delta` and `final`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        increasing
            :class:`plotly.graph_objects.waterfall.Increasing`
            instance or dict with compatible properties
        insidetextanchor
            Determines if texts are kept at center or start/end
            points in `textposition` "inside" mode.
        insidetextfont
            Sets the font used for `text` lying inside the bar.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        measure
            An array containing types of values. By default the
            values are considered as 'relative'. However; it is
            possible to use 'total' to compute the sums. Also
            'absolute' could be applied to reset the computed total
            or to declare an initial value where needed.
        measuresrc
            Sets the source reference on plot.ly for  measure .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the position where the bar is drawn (in position
            axis units). In "group" barmode, traces that set
            "offset" will be excluded and drawn in "overlay" mode
            instead.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        offsetsrc
            Sets the source reference on plot.ly for  offset .
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the bars. With "v" ("h"), the
            value of the each bar spans along the vertical
            (horizontal).
        outsidetextfont
            Sets the font used for `text` lying outside the bar.
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.waterfall.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textangle
            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.
        textfont
            Sets the font used for `text`.
        textinfo
            Determines which trace information appear on the graph.
            In the case of having multiple waterfalls, totals are
            computed separately (per trace).
        textposition
            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.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `initial`,
            `delta`, `final` and `label`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        totals
            :class:`plotly.graph_objects.waterfall.Totals` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar width (in position axis units).
        widthsrc
            Sets the source reference on plot.ly for  width .
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   _prop_descriptions  s      zWaterfall._prop_descriptionsNc>       B         s   t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|>
dd| _ddlm}? |? | jd< |? | jd	< |? | jd
< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |? | jd< |?  | jd< |?! | jd< |?" | jd< |?# | jd< |?$ | jd< |?% | jd< |?& | jd< |?' | jd < |?( | jd!< |?) | jd"< |?* | jd#< |?+ | jd$< |?, | jd%< |?- | jd&< |?. | jd'< |?/ | jd(< |?0 | jd)< |?1 | jd*< |?2 | jd+< |?3 | jd,< |?4 | jd-< |?5 | jd.< |?6 | jd/< |?7 | jd0< |?8 | jd1< |?9 | jd2< |?: | jd3< |?; | jd4< |?< | jd5< |?= | jd6< |?> | jd7< |?? | jd8< |?@ | jd9< |?A | jd:< |?B | jd;< |?C | jd<< |?D | jd=< |?E | jd>< |?F | jd?< |?G | jd@< |?H | jdA< |?I | jdB< |?J | jdC< |
dd}@|dk	r|n|@| d< |
d	d}@|dk	r|n|@| d	< |
d
d}@|dk	r|n|@| d
< |
dd}@|dk	r4|n|@| d< |
dd}@|dk	rV|n|@| d< |
dd}@|dk	rx|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|	dk	r|	n|@| d< |
dd}@|
dk	r|
n|@| d< |
dd}@|dk	r |n|@| d< |
dd}@|dk	r"|n|@| d< |
dd}@|dk	rD|n|@| d< |
dd}@|dk	rf|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r2|n|@| d< |
dd}@|dk	rT|n|@| d< |
dd}@|dk	rv|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r|n|@| d< |
dd}@|dk	r|n|@| d< |
d d}@|dk	r|n|@| d < |
d!d}@|dk	r |n|@| d!< |
d"d}@|dk	rB|n|@| d"< |
d#d}@|dk	rd|n|@| d#< |
d$d}@|dk	r|n|@| d$< |
d%d}@|dk	r|n|@| d%< |
d&d}@| dk	r| n|@| d&< |
d'd}@|!dk	r|!n|@| d'< |
d(d}@|"dk	r|"n|@| d(< |
d)d}@|#dk	r0|#n|@| d)< |
d*d}@|$dk	rR|$n|@| d*< |
d+d}@|%dk	rt|%n|@| d+< |
d,d}@|&dk	r|&n|@| d,< |
d-d}@|'dk	r|'n|@| d-< |
d.d}@|(dk	r|(n|@| d.< |
d/d}@|)dk	r|)n|@| d/< |
d0d}@|*dk		r|*n|@| d0< |
d1d}@|+dk		r@|+n|@| d1< |
d2d}@|,dk		rb|,n|@| d2< |
d3d}@|-dk		r|-n|@| d3< |
d4d}@|.dk		r|.n|@| d4< |
d5d}@|/dk		r|/n|@| d5< |
d6d}@|0dk		r|0n|@| d6< |
d7d}@|1dk	
r|1n|@| d7< |
d8d}@|2dk	
r.|2n|@| d8< |
d9d}@|3dk	
rP|3n|@| d9< |
d:d}@|4dk	
rr|4n|@| d:< |
d;d}@|5dk	
r|5n|@| d;< |
d<d}@|6dk	
r|6n|@| d<< |
d=d}@|7dk	
r|7n|@| d=< |
d>d}@|8dk	
r|8n|@| d>< |
d?d}@|9dk	r|9n|@| d?< |
d@d}@|:dk	r>|:n|@| d@< |
dAd}@|;dk	r`|;n|@| dA< |
dBd}@|<dk	r|<n|@| dB< |
dCd}@|=dk	r|=n|@| dC< ddDlKmL}A d| jMdE< |AdEdddF| jdE< |
dEd | jNf t|f|> d| _dS )Ga7  
        Construct a new Waterfall object
        
        Draws waterfall trace which is useful graph to displays the
        contribution of various elements (either positive or negative)
        in a bar chart. The data visualized by the span of the bars is
        set in `y` if `orientation` is set th "v" (the default) and the
        labels are set in `x`. By setting `orientation` to "h", the
        roles are interchanged.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Waterfall`
        alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        base
            Sets where the bar base is drawn (in position axis
            units).
        cliponaxis
            Determines whether the text nodes are clipped about the
            subplot axes. To show the text nodes above axis lines
            and tick labels, make sure to set `xaxis.layer` and
            `yaxis.layer` to *below traces*.
        connector
            :class:`plotly.graph_objects.waterfall.Connector`
            instance or dict with compatible properties
        constraintext
            Constrain the size of text inside or outside a bar to
            be no larger than the bar itself.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        decreasing
            :class:`plotly.graph_objects.waterfall.Decreasing`
            instance or dict with compatible properties
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.waterfall.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `initial`, `delta` and `final`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        increasing
            :class:`plotly.graph_objects.waterfall.Increasing`
            instance or dict with compatible properties
        insidetextanchor
            Determines if texts are kept at center or start/end
            points in `textposition` "inside" mode.
        insidetextfont
            Sets the font used for `text` lying inside the bar.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        measure
            An array containing types of values. By default the
            values are considered as 'relative'. However; it is
            possible to use 'total' to compute the sums. Also
            'absolute' could be applied to reset the computed total
            or to declare an initial value where needed.
        measuresrc
            Sets the source reference on plot.ly for  measure .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the position where the bar is drawn (in position
            axis units). In "group" barmode, traces that set
            "offset" will be excluded and drawn in "overlay" mode
            instead.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        offsetsrc
            Sets the source reference on plot.ly for  offset .
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the bars. With "v" ("h"), the
            value of the each bar spans along the vertical
            (horizontal).
        outsidetextfont
            Sets the font used for `text` lying outside the bar.
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.waterfall.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textangle
            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.
        textfont
            Sets the font used for `text`.
        textinfo
            Determines which trace information appear on the graph.
            In the case of having multiple waterfalls, totals are
            computed separately (per trace).
        textposition
            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.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `initial`,
            `delta`, `final` and `label`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        totals
            :class:`plotly.graph_objects.waterfall.Totals` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar width (in position axis units).
        widthsrc
            Sets the source reference on plot.ly for  width .
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Waterfall
        	waterfallNzThe first argument to the plotly.graph_objs.Waterfall 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Waterfall`skip_invalidFr   )rI   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   )LiteralValidatorrD   )plotly_nameparent_namer   )Osuperr   __init__
isinstance	__class__to_plotly_jsondict_copycopy
ValueErrorpop_skip_invalidplotly.validatorsrI   AlignmentgroupValidator_validatorsBaseValidatorCliponaxisValidatorConnectorValidatorConstraintextValidatorCustomdataValidatorCustomdatasrcValidatorDecreasingValidatorDxValidatorDyValidatorHoverinfoValidatorHoverinfosrcValidatorHoverlabelValidatorHovertemplateValidatorHovertemplatesrcValidatorHovertextValidatorHovertextsrcValidatorIdsValidatorIdssrcValidatorIncreasingValidatorInsidetextanchorValidatorInsidetextfontValidatorLegendgroupValidatorZMeasureValidatorZMeasuresrcValidatorMetaValidatorMetasrcValidatorNameValidatorOffsetValidatorOffsetgroupValidatorOffsetsrcValidatorOpacityValidatorOrientationValidatorOutsidetextfontValidatorSelectedpointsValidatorShowlegendValidatorStreamValidatorTextValidatorTextangleValidatorTextfontValidatorTextinfoValidatorTextpositionValidatorTextpositionsrcValidatorTextsrcValidatorTexttemplateValidatorTexttemplatesrcValidatorZTotalsValidatorUidValidatorUirevisionValidatorVisibleValidatorWidthValidatorWidthsrcValidator
XValidatorX0ValidatorXAxisValidatorXsrcValidator
YValidatorY0ValidatorYAxisValidatorYsrcValidator_plotly_utils.basevalidatorsrK   rE   _process_kwargs)Br   argr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   kwargsZv_waterfall_vrK   )rQ   r   r   rO   -  s     d


zWaterfall.__init__)=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)F__name__
__module____qualname__propertyr   setterr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rG   rH   rO   __classcell__r   r   )rQ   r   r      st  5#111                                                              r   c            6       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:edd Z;edd Z<d fdd	Z=  Z>S )Volumec             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        autocolorscaler   )r   r   r   r   r   	  s    zVolume.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	  s    c             C   s   | d S )a@  
        The 'caps' property is an instance of Caps
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Caps`
          - A dict of string/value properties that will be passed
            to the Caps constructor
    
            Supported dict properties:
                
                x
                    :class:`plotly.graph_objects.volume.caps.X`
                    instance or dict with compatible properties
                y
                    :class:`plotly.graph_objects.volume.caps.Y`
                    instance or dict with compatible properties
                z
                    :class:`plotly.graph_objects.volume.caps.Z`
                    instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.volume.Caps
        capsr   )r   r   r   r   r   	  s    zVolume.capsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	  s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here `value`) or the bounds set in
        `cmin` and `cmax`  Defaults to `false` when `cmin` and `cmax`
        are set by the user.
    
        The 'cauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        cautor   )r   r   r   r   r   	  s    zVolume.cautoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	  s    c             C   s   | d S )a,  
        Sets the upper bound of the color domain. Value should have the
        same units as `value` and if set, `cmin` must be set as well.
    
        The 'cmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        cmaxr   )r   r   r   r   r   	  s    zVolume.cmaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	  s    c             C   s   | d S )ar  
        Sets the mid-point of the color domain by scaling `cmin` and/or
        `cmax` to be equidistant to this point. Value should have the
        same units as `value`. Has no effect when `cauto` is `false`.
    
        The 'cmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        cmidr   )r   r   r   r   r   	  s    zVolume.cmidc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	  s    c             C   s   | d S )a,  
        Sets the lower bound of the color domain. Value should have the
        same units as `value` and if set, `cmax` must be set as well.
    
        The 'cmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        cminr   )r   r   r   r   r   	  s    zVolume.cminc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   
  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        	coloraxisr   )r   r   r   r   r   
  s    zVolume.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (
  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.volume.
                    colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.volume.colorbar.tickformatstopdefaults), sets
                    the default property values to use for elements
                    of volume.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.volume.colorbar.Ti
                    tle` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    volume.colorbar.title.font instead. Sets this
                    color bar's title font. Note that the title's
                    font used to be set by the now deprecated
                    `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    volume.colorbar.title.side instead. Determines
                    the location of color bar's title with respect
                    to the color bar. Note that the title's
                    location used to be set by the now deprecated
                    `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.volume.ColorBar
        colorbarr   )r   r   r   r   r   .
  s     dzVolume.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Sets the colorscale. 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`cmin` and `cmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        
colorscaler   )r   r   r   r   r     s    ,zVolume.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   G  s    c             C   s   | d S )a  
        The 'contour' property is an instance of Contour
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Contour`
          - A dict of string/value properties that will be passed
            to the Contour constructor
    
            Supported dict properties:
                
                color
                    Sets the color of the contour lines.
                show
                    Sets whether or not dynamic contours are shown
                    on hover
                width
                    Sets the width of the contour lines.

        Returns
        -------
        plotly.graph_objs.volume.Contour
        contourr   )r   r   r   r   r   M  s    zVolume.contourc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   f  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   l  s    zVolume.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zVolume.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a=  
        Determines whether or not normal smoothing is applied to the
        meshes, creating meshes with an angular, low-poly look via flat
        reflections.
    
        The 'flatshading' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        flatshadingr   )r   r   r   r   r     s    zVolume.flatshadingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zVolume.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zVolume.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.volume.Hoverlabel
        r   r   )r   r   r   r   r     s    3zVolume.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    !zVolume.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ?  s    zVolume.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   M  s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   S  s    zVolume.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   i  s    zVolume.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   w  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   }  s    z
Volume.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zVolume.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the maximum boundary for iso-surface plot.
    
        The 'isomax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        isomaxr   )r   r   r   r   r     s    zVolume.isomaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the minimum boundary for iso-surface plot.
    
        The 'isomin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        isominr   )r   r   r   r   r     s    zVolume.isominc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zVolume.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ag  
        The 'lighting' property is an instance of Lighting
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Lighting`
          - A dict of string/value properties that will be passed
            to the Lighting constructor
    
            Supported dict properties:
                
                ambient
                    Ambient light increases overall color
                    visibility but can wash out the image.
                diffuse
                    Represents the extent that incident rays are
                    reflected in a range of angles.
                facenormalsepsilon
                    Epsilon for face normals calculation avoids
                    math issues arising from degenerate geometry.
                fresnel
                    Represents the reflectance as a dependency of
                    the viewing angle; e.g. paper is reflective
                    when viewing it from the edge of the paper
                    (almost 90 degrees), causing shine.
                roughness
                    Alters specular reflection; the rougher the
                    surface, the wider and less contrasty the
                    shine.
                specular
                    Represents the level that incident rays are
                    reflected in a single direction, causing shine.
                vertexnormalsepsilon
                    Epsilon for vertex normals calculation avoids
                    math issues arising from degenerate geometry.

        Returns
        -------
        plotly.graph_objs.volume.Lighting
        lightingr   )r   r   r   r   r     s    (zVolume.lightingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a"  
        The 'lightposition' property is an instance of Lightposition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Lightposition`
          - A dict of string/value properties that will be passed
            to the Lightposition constructor
    
            Supported dict properties:
                
                x
                    Numeric vector, representing the X coordinate
                    for each vertex.
                y
                    Numeric vector, representing the Y coordinate
                    for each vertex.
                z
                    Numeric vector, representing the Z coordinate
                    for each vertex.

        Returns
        -------
        plotly.graph_objs.volume.Lightposition
        lightpositionr   )r   r   r   r   r     s    zVolume.lightpositionc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   7  s    zVolume.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   M  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   S  s    zVolume.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   a  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   g  s    zVolume.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   w  s    c             C   s   | d S )aS  
        Sets the opacity of the surface. Please note that in the case
        of using high `opacity` values for example a value greater than
        or equal to 0.5 on two surfaces (and 0.25 with four surfaces),
        an overlay of multiple transparent surfaces may not perfectly
        be sorted in depth by the webgl API. This behavior may be
        improved in the near future and is subject to change.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   }  s    zVolume.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )a  
        Sets the opacityscale. The opacityscale must be an array
        containing arrays mapping a normalized value to an opacity
        value. At minimum, a mapping for the lowest (0) and highest (1)
        values are required. For example, `[[0, 1], [0.5, 0.2], [1,
        1]]` means that higher/lower values would have higher opacity
        values and those in the middle would be more transparent
        Alternatively, `opacityscale` may be a palette name string of
        the following list: 'min', 'max', 'extremes' and 'uniform'. The
        default is 'uniform'.
    
        The 'opacityscale' property accepts values of any type

        Returns
        -------
        Any
        opacityscaler   )r   r   r   r   r     s    zVolume.opacityscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `cmin` will
        correspond to the last color in the array and `cmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        reversescaler   )r   r   r   r   r     s    zVolume.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        scener   )r   r   r   r   r     s    zVolume.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zVolume.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        	showscaler   )r   r   r   r   r     s    zVolume.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aP  
        The 'slices' property is an instance of Slices
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Slices`
          - A dict of string/value properties that will be passed
            to the Slices constructor
    
            Supported dict properties:
                
                x
                    :class:`plotly.graph_objects.volume.slices.X`
                    instance or dict with compatible properties
                y
                    :class:`plotly.graph_objects.volume.slices.Y`
                    instance or dict with compatible properties
                z
                    :class:`plotly.graph_objects.volume.slices.Z`
                    instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.volume.Slices
        slicesr   )r   r   r   r   r   
  s    zVolume.slicesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   %  s    c             C   s   | d S )a  
        The 'spaceframe' property is an instance of Spaceframe
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Spaceframe`
          - A dict of string/value properties that will be passed
            to the Spaceframe constructor
    
            Supported dict properties:
                
                fill
                    Sets the fill ratio of the `spaceframe`
                    elements. The default fill value is 1 meaning
                    that they are entirely shaded. Applying a
                    `fill` ratio less than one would allow the
                    creation of openings parallel to the edges.
                show
                    Displays/hides tetrahedron shapes between
                    minimum and maximum iso-values. Often useful
                    when either caps or surfaces are disabled or
                    filled with values less than 1.

        Returns
        -------
        plotly.graph_objs.volume.Spaceframe
        
spaceframer   )r   r   r   r   r   +  s    zVolume.spaceframec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   H  s    c             C   s   | d S )af  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.volume.Stream
        r,   r   )r   r   r   r   r,   N  s    zVolume.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   i  s    c             C   s   | d S )a'  
        The 'surface' property is an instance of Surface
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.volume.Surface`
          - A dict of string/value properties that will be passed
            to the Surface constructor
    
            Supported dict properties:
                
                count
                    Sets the number of iso-surfaces between minimum
                    and maximum iso-values. By default this value
                    is 2 meaning that only minimum and maximum
                    surfaces would be drawn.
                fill
                    Sets the fill ratio of the iso-surface. The
                    default fill value of the surface is 1 meaning
                    that they are entirely shaded. On the other
                    hand Applying a `fill` ratio less than one
                    would allow the creation of openings parallel
                    to the edges.
                pattern
                    Sets the surface pattern of the iso-surface 3-D
                    sections. The default pattern of the surface is
                    `all` meaning that the rest of surface elements
                    would be shaded. The check options (either 1 or
                    2) could be used to draw half of the squares on
                    the surface. Using various combinations of
                    capital `A`, `B`, `C`, `D` and `E` may also be
                    used to reduce the number of triangles on the
                    iso-surfaces and creating other patterns of
                    interest.
                show
                    Hides/displays surfaces between minimum and
                    maximum iso-values.

        Returns
        -------
        plotly.graph_objs.volume.Surface
        surfacer   )r   r   r   r   r   o  s    *zVolume.surfacec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the text elements associated with the vertices. If trace
        `hoverinfo` contains a "text" flag and "hovertext" is not set,
        these elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zVolume.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zVolume.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    z
Volume.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zVolume.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )z
        Sets the 4th dimension (value) of the vertices.
    
        The 'value' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        valuer   )r   r   r   r   r     s    zVolume.valuec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  value .
    
        The 'valuesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        valuesrcr   )r   r   r   r   r     s    zVolume.valuesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   &  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   ,  s    zVolume.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   =  s    c             C   s   | d S )z
        Sets the X coordinates of the vertices on X axis.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   C  s    zVolume.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   Q  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   W  s    zVolume.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   e  s    c             C   s   | d S )z
        Sets the Y coordinates of the vertices on Y axis.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   k  s    zVolume.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   y  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zVolume.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s   | d S )z
        Sets the Z coordinates of the vertices on Z axis.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        zr   )r   r   r   r   r     s    zVolume.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        zsrcr   )r   r   r   r   r     s    zVolume.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zVolume.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zVolume._parent_path_strc             C   s   dS )Na.          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        caps
            :class:`plotly.graph_objects.volume.Caps` instance or
            dict with compatible properties
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here `value`) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as `value` and if set, `cmin` must
            be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as `value`. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as `value` and if set, `cmax` must
            be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.volume.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contour
            :class:`plotly.graph_objects.volume.Contour` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        flatshading
            Determines whether or not normal smoothing is applied
            to the meshes, creating meshes with an angular, low-
            poly look via flat reflections.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.volume.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        isomax
            Sets the maximum boundary for iso-surface plot.
        isomin
            Sets the minimum boundary for iso-surface plot.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.volume.Lighting` instance
            or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.volume.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        opacityscale
            Sets the opacityscale. The opacityscale must be an
            array containing arrays mapping a normalized value to
            an opacity value. At minimum, a mapping for the lowest
            (0) and highest (1) values are required. For example,
            `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower
            values would have higher opacity values and those in
            the middle would be more transparent Alternatively,
            `opacityscale` may be a palette name string of the
            following list: 'min', 'max', 'extremes' and 'uniform'.
            The default is 'uniform'.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        slices
            :class:`plotly.graph_objects.volume.Slices` instance or
            dict with compatible properties
        spaceframe
            :class:`plotly.graph_objects.volume.Spaceframe`
            instance or dict with compatible properties
        stream
            :class:`plotly.graph_objects.volume.Stream` instance or
            dict with compatible properties
        surface
            :class:`plotly.graph_objects.volume.Surface` instance
            or dict with compatible properties
        text
            Sets the text elements associated with the vertices. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        value
            Sets the 4th dimension (value) of the vertices.
        valuesrc
            Sets the source reference on plot.ly for  value .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the X coordinates of the vertices on X axis.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the Y coordinates of the vertices on Y axis.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the Z coordinates of the vertices on Z axis.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH     s     szVolume._prop_descriptionsNc7       ;         s
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|7
dd| _ddlm}8 |8 | jd< |8 | jd	< |8 | jd
< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8  | jd< |8! | jd< |8" | jd< |8# | jd< |8$ | jd< |8% | jd< |8& | jd< |8' | jd < |8( | jd!< |8) | jd"< |8* | jd#< |8+ | jd$< |8, | jd%< |8- | jd&< |8. | jd'< |8/ | jd(< |80 | jd)< |81 | jd*< |82 | jd+< |83 | jd,< |84 | jd-< |85 | jd.< |86 | jd/< |87 | jd0< |88 | jd1< |89 | jd2< |8: | jd3< |8; | jd4< |8< | jd5< |8= | jd6< |8> | jd7< |8? | jd8< |8@ | jd9< |8A | jd:< |8B | jd;< |8C | jd<< |
dd}9|dk	rl|n|9| d< |
d	d}9|dk	r|n|9| d	< |
d
d}9|dk	r|n|9| d
< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r8|n|9| d< |
dd}9|	dk	rZ|	n|9| d< |
dd}9|
dk	r||
n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r&|n|9| d< |
dd}9|dk	rH|n|9| d< |
dd}9|dk	rj|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r6|n|9| d< |
dd}9|dk	rX|n|9| d< |
dd}9|dk	rz|n|9| d< |
d d}9|dk	r|n|9| d < |
d!d}9|dk	r|n|9| d!< |
d"d}9|dk	r|n|9| d"< |
d#d}9|dk	r|n|9| d#< |
d$d}9|dk	r$|n|9| d$< |
d%d}9|dk	rF|n|9| d%< |
d&d}9| dk	rh| n|9| d&< |
d'd}9|!dk	r|!n|9| d'< |
d(d}9|"dk	r|"n|9| d(< |
d)d}9|#dk	r|#n|9| d)< |
d*d}9|$dk	r|$n|9| d*< |
d+d}9|%dk	r|%n|9| d+< |
d,d}9|&dk	r4|&n|9| d,< |
d-d}9|'dk	rV|'n|9| d-< |
d.d}9|(dk	rx|(n|9| d.< |
d/d}9|)dk	r|)n|9| d/< |
d0d}9|*dk	r|*n|9| d0< |
d1d}9|+dk	r|+n|9| d1< |
d2d}9|,dk		r |,n|9| d2< |
d3d}9|-dk		r"|-n|9| d3< |
d4d}9|.dk		rD|.n|9| d4< |
d5d}9|/dk		rf|/n|9| d5< |
d6d}9|0dk		r|0n|9| d6< |
d7d}9|1dk		r|1n|9| d7< |
d8d}9|2dk		r|2n|9| d8< |
d9d}9|3dk		r|3n|9| d9< |
d:d}9|4dk	
r|4n|9| d:< |
d;d}9|5dk	
r2|5n|9| d;< |
d<d}9|6dk	
rT|6n|9| d<< dd=lDmE}: d| jFd>< |:d>ddd?| jd>< |
d>d | jGf t|f|7 d| _dS )@ap1  
        Construct a new Volume object
        
        Draws volume trace between iso-min and iso-max values with
        coordinates given by four 1-dimensional arrays containing the
        `value`, `x`, `y` and `z` of every vertex of a uniform or non-
        uniform 3-D grid. Horizontal or vertical slices, caps as well
        as spaceframe between iso-min and iso-max values could also be
        drawn using this trace.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Volume`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        caps
            :class:`plotly.graph_objects.volume.Caps` instance or
            dict with compatible properties
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here `value`) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as `value` and if set, `cmin` must
            be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as `value`. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as `value` and if set, `cmax` must
            be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.volume.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contour
            :class:`plotly.graph_objects.volume.Contour` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        flatshading
            Determines whether or not normal smoothing is applied
            to the meshes, creating meshes with an angular, low-
            poly look via flat reflections.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.volume.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        isomax
            Sets the maximum boundary for iso-surface plot.
        isomin
            Sets the minimum boundary for iso-surface plot.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.volume.Lighting` instance
            or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.volume.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        opacityscale
            Sets the opacityscale. The opacityscale must be an
            array containing arrays mapping a normalized value to
            an opacity value. At minimum, a mapping for the lowest
            (0) and highest (1) values are required. For example,
            `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower
            values would have higher opacity values and those in
            the middle would be more transparent Alternatively,
            `opacityscale` may be a palette name string of the
            following list: 'min', 'max', 'extremes' and 'uniform'.
            The default is 'uniform'.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        slices
            :class:`plotly.graph_objects.volume.Slices` instance or
            dict with compatible properties
        spaceframe
            :class:`plotly.graph_objects.volume.Spaceframe`
            instance or dict with compatible properties
        stream
            :class:`plotly.graph_objects.volume.Stream` instance or
            dict with compatible properties
        surface
            :class:`plotly.graph_objects.volume.Surface` instance
            or dict with compatible properties
        text
            Sets the text elements associated with the vertices. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        value
            Sets the 4th dimension (value) of the vertices.
        valuesrc
            Sets the source reference on plot.ly for  value .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the X coordinates of the vertices on X axis.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the Y coordinates of the vertices on Y axis.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the Z coordinates of the vertices on Z axis.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Volume
        volumeNzThe first argument to the plotly.graph_objs.Volume 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Volume`rJ   Fr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r   r+   r   r   r   r,   r   r-   r3   r7   r8   r   r   r9   r<   r?   r@   rC   r   r   )rK   rD   )rL   rM   r   )HrN   r   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   AutocolorscaleValidatorr[   CapsValidatorCautoValidatorCmaxValidatorCmidValidatorCminValidatorColoraxisValidatorColorBarValidatorColorscaleValidatorContourValidatorr`   ra   FlatshadingValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   IsomaxValidatorIsominValidatorrq   LightingValidatorLightpositionValidatorrr   rs   rt   rx   ZOpacityscaleValidatorReversescaleValidatorSceneValidatorr|   ShowscaleValidatorSlicesValidatorSpaceframeValidatorr}   SurfaceValidatorr~   r   r   r   ValueValidatorValuesrcValidatorr   r   r   r   r   
ZValidatorZsrcValidatorr   rK   rE   r   );r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r   r+   r   r   r   r,   r   r-   r3   r7   r8   r   r   r9   r<   r?   r@   rC   r   r   r   Zv_volumer   rK   )rQ   r   r   rO     sf     ?


zVolume.__init__)6NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)?r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r   r+   r   r   r   r,   r   r-   r3   r7   r8   r   r   r9   r<   r?   r@   rC   r   r   rD   rG   rH   rO   r   r   r   )rQ   r   r   ~	  sJ   f.5#*, w                                                     r   c            6       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:edd Z;edd Z<d fdd	Z=  Z>S )Violinc             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same alignmentgroup. This controls whether bars
        compute their positional range dependently or independently.
    
        The 'alignmentgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zViolin.alignmentgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aZ  
        Sets the bandwidth used to compute the kernel density estimate.
        By default, the bandwidth is determined by Silverman's rule of
        thumb.
    
        The 'bandwidth' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        	bandwidthr   )r   r   r   r   r     s    zViolin.bandwidthc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'box' property is an instance of Box
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Box`
          - A dict of string/value properties that will be passed
            to the Box constructor
    
            Supported dict properties:
                
                fillcolor
                    Sets the inner box plot fill color.
                line
                    :class:`plotly.graph_objects.violin.box.Line`
                    instance or dict with compatible properties
                visible
                    Determines if an miniature box plot is drawn
                    inside the violins.
                width
                    Sets the width of the inner box plots relative
                    to the violins' width. For example, with 1, the
                    inner box plots are as wide as the violins.

        Returns
        -------
        plotly.graph_objs.violin.Box
        boxr   )r   r   r   r   r     s    z
Violin.boxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   %  s    zViolin.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   <  s    zViolin.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        	fillcolorr   )r   r   r   r   r   P  s    5zViolin.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zViolin.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zViolin.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.violin.Hoverlabel
        r   r   )r   r   r   r   r     s    3zViolin.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Do the hover effects highlight individual violins or sample
        points or the kernel density estimate or any combination of
        them?
    
        The 'hoveron' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['violins', 'points', 'kde'] joined with '+' characters
            (e.g. 'violins+points')
            OR exactly one of ['all'] (e.g. 'all')

        Returns
        -------
        Any
        hoveronr   )r   r   r   r   r     s    zViolin.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    !zViolin.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   2  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   8  s    zViolin.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   F  s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   L  s    zViolin.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   b  s    zViolin.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   p  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   v  s    z
Violin.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zViolin.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the amount of jitter in the sample points drawn. If 0, the
        sample points align along the distribution axis. If 1, the
        sample points are drawn in a random jitter of width equal to
        the width of the violins.
    
        The 'jitter' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        jitterr   )r   r   r   r   r     s    zViolin.jitterc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zViolin.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aX  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the color of line bounding the violin(s).
                width
                    Sets the width (in px) of line bounding the
                    violin(s).

        Returns
        -------
        plotly.graph_objs.violin.Line
        liner   )r   r   r   r   r     s    zViolin.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                color
                    Sets themarkercolor. 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.
                line
                    :class:`plotly.graph_objects.violin.marker.Line
                    ` instance or dict with compatible properties
                opacity
                    Sets the marker opacity.
                outliercolor
                    Sets the color of the outlier sample points.
                size
                    Sets the marker size (in px).
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.

        Returns
        -------
        plotly.graph_objs.violin.Marker
        markerr   )r   r   r   r   r     s    &zViolin.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'meanline' property is an instance of Meanline
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Meanline`
          - A dict of string/value properties that will be passed
            to the Meanline constructor
    
            Supported dict properties:
                
                color
                    Sets the mean line color.
                visible
                    Determines if a line corresponding to the
                    sample's mean is shown inside the violins. If
                    `box.visible` is turned on, the mean line is
                    drawn inside the inner box. Otherwise, the mean
                    line is drawn from one side of the violin to
                    other.
                width
                    Sets the mean line width.

        Returns
        -------
        plotly.graph_objs.violin.Meanline
        meanliner   )r   r   r   r   r     s    zViolin.meanlinec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   <  s    zViolin.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   R  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   X  s    zViolin.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   f  s    c             C   s   | d S )av  
        Sets the trace name. The trace name appear as the legend item
        and on hover. For violin traces, the name will also be used for
        the position coordinate, if `x` and `x0` (`y` and `y0` if
        horizontal) are missing and the position axis is categorical.
        Note that the trace name is also used as a default value for
        attribute `scalegroup` (please see its description for
        details).
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   l  s    zViolin.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same offsetgroup where bars of the same position
        coordinate will line up.
    
        The 'offsetgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r%   r   )r   r   r   r   r%     s    zViolin.offsetgroupc             C   s   || d< d S )Nr%   r   )r   r   r   r   r   r%     s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zViolin.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )a_  
        Sets the orientation of the violin(s). If "v" ("h"), the
        distribution is visualized along the vertical (horizontal).
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(     s    zViolin.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(     s    c             C   s   | d S )a  
        Sets the position of the sample points in relation to the
        violins. If 0, the sample points are places over the center of
        the violins. Positive (negative) values correspond to positions
        to the right (left) for vertical violins and above (below) for
        horizontal violins.
    
        The 'pointpos' property is a number and may be specified as:
          - An int or float in the interval [-2, 2]

        Returns
        -------
        int|float
        pointposr   )r   r   r   r   r     s    zViolin.pointposc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        If "outliers", only the sample points lying outside the
        whiskers are shown If "suspectedoutliers", the outlier points
        are shown and points either less than 4*Q1-3*Q3 or greater than
        4*Q3-3*Q1 are highlighted (see `outliercolor`) If "all", all
        sample points are shown If False, only the violins are shown
        with no sample points. Defaults to "suspectedoutliers" when
        `marker.outliercolor` or `marker.line.outliercolor` is set,
        otherwise defaults to "outliers".
    
        The 'points' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['all', 'outliers', 'suspectedoutliers', False]

        Returns
        -------
        Any
        pointsr   )r   r   r   r   r     s    zViolin.pointsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aR  
        If there are multiple violins that should be sized according to
        to some metric (see `scalemode`), link them by providing a non-
        empty group id here shared by every trace in the same group. If
        a violin's `width` is undefined, `scalegroup` will default to
        the trace's name. In this case, violins with the same names
        will be linked together
    
        The 'scalegroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        
scalegroupr   )r   r   r   r   r     s    zViolin.scalegroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the metric by which the width of each violin is
        determined."width" means each violin has the same (max)
        width*count* means the violins are scaled by the number of
        sample points makingup each violin.
    
        The 'scalemode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['width', 'count']

        Returns
        -------
        Any
        	scalemoder   )r   r   r   r   r     s    zViolin.scalemodec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (  s    c             C   s   | d S )aS  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.violin.selected.Ma
                    rker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.violin.Selected
        selectedr   )r   r   r   r   r   .  s    zViolin.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   D  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   J  s    zViolin.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   \  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   b  s    zViolin.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   q  s    c             C   s   | d S )a   
        Determines on which side of the position value the density
        function making up one half of a violin is plotted. Useful when
        comparing two violin traces under "overlay" mode, where one
        trace has `side` set to "positive" and the other to "negative".
    
        The 'side' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['both', 'positive', 'negative']

        Returns
        -------
        Any
        sider   )r   r   r   r   r   w  s    zViolin.sidec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the span in data space for which the density function will
        be computed. Has an effect only when `spanmode` is set to
        "manual".
    
        The 'span' property is an info array that may be specified as:
    
        * a list or tuple of 2 elements where:
    (0) The 'span[0]' property accepts values of any type
    (1) The 'span[1]' property accepts values of any type

        Returns
        -------
        list
        spanr   )r   r   r   r   r     s    zViolin.spanc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the method by which the span in data space where the
        density function will be computed. "soft" means the span goes
        from the sample's minimum value minus two bandwidths to the
        sample's maximum value plus two bandwidths. "hard" means the
        span goes from the sample's minimum to its maximum value. For
        custom span settings, use mode "manual" and fill in the `span`
        attribute.
    
        The 'spanmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['soft', 'hard', 'manual']

        Returns
        -------
        Any
        spanmoder   )r   r   r   r   r     s    zViolin.spanmodec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )af  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.violin.Stream
        r,   r   )r   r   r   r   r,     s    zViolin.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a]  
        Sets the text elements associated with each sample value. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zViolin.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zViolin.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    z
Violin.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   "  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   (  s    zViolin.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   C  s    c             C   s   | d S )a_  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.violin.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.violin.unselected.
                    Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.violin.Unselected
        
unselectedr   )r   r   r   r   r   I  s    zViolin.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   e  s    zViolin.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   v  s    c             C   s   | d S )a~  
        Sets the width of the violin in data coordinates. If 0 (default
        value) the width is automatically selected based on the
        positions of other violin traces in the same subplot.
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r:   r   )r   r   r   r   r:   |  s    zViolin.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:     s    c             C   s   | d S )a  
        Sets the x sample data or coordinates. See overview for more
        info.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<     s    zViolin.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<     s    c             C   s   | d S )a  
        Sets the x coordinate for single-box traces or the starting
        coordinate for multi-box traces set using q1/median/q3. See
        overview for more info.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=     s    z	Violin.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=     s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>     s    zViolin.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zViolin.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )a  
        Sets the y sample data or coordinates. See overview for more
        info.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    zViolin.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a  
        Sets the y coordinate for single-box traces or the starting
        coordinate for multi-box traces set using q1/median/q3. See
        overview for more info.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA     s    z	Violin.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB     s    zViolin.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   &  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   ,  s    zViolin.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   :  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   @  s    zViolin.typec             C   s   dS )NrF   r   )r   r   r   r   rG   F  s    zViolin._parent_path_strc             C   s   dS )Na3          alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        bandwidth
            Sets the bandwidth used to compute the kernel density
            estimate. By default, the bandwidth is determined by
            Silverman's rule of thumb.
        box
            :class:`plotly.graph_objects.violin.Box` instance or
            dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.violin.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual violins or
            sample points or the kernel density estimate or any
            combination of them?
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        jitter
            Sets the amount of jitter in the sample points drawn.
            If 0, the sample points align along the distribution
            axis. If 1, the sample points are drawn in a random
            jitter of width equal to the width of the violins.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.violin.Line` instance or
            dict with compatible properties
        marker
            :class:`plotly.graph_objects.violin.Marker` instance or
            dict with compatible properties
        meanline
            :class:`plotly.graph_objects.violin.Meanline` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover. For violin traces, the name
            will also be used for the position coordinate, if `x`
            and `x0` (`y` and `y0` if horizontal) are missing and
            the position axis is categorical. Note that the trace
            name is also used as a default value for attribute
            `scalegroup` (please see its description for details).
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the violin(s). If "v" ("h"),
            the distribution is visualized along the vertical
            (horizontal).
        pointpos
            Sets the position of the sample points in relation to
            the violins. If 0, the sample points are places over
            the center of the violins. Positive (negative) values
            correspond to positions to the right (left) for
            vertical violins and above (below) for horizontal
            violins.
        points
            If "outliers", only the sample points lying outside the
            whiskers are shown If "suspectedoutliers", the outlier
            points are shown and points either less than 4*Q1-3*Q3
            or greater than 4*Q3-3*Q1 are highlighted (see
            `outliercolor`) If "all", all sample points are shown
            If False, only the violins are shown with no sample
            points. Defaults to "suspectedoutliers" when
            `marker.outliercolor` or `marker.line.outliercolor` is
            set, otherwise defaults to "outliers".
        scalegroup
            If there are multiple violins that should be sized
            according to to some metric (see `scalemode`), link
            them by providing a non-empty group id here shared by
            every trace in the same group. If a violin's `width` is
            undefined, `scalegroup` will default to the trace's
            name. In this case, violins with the same names will be
            linked together
        scalemode
            Sets the metric by which the width of each violin is
            determined."width" means each violin has the same (max)
            width*count* means the violins are scaled by the number
            of sample points makingup each violin.
        selected
            :class:`plotly.graph_objects.violin.Selected` instance
            or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        side
            Determines on which side of the position value the
            density function making up one half of a violin is
            plotted. Useful when comparing two violin traces under
            "overlay" mode, where one trace has `side` set to
            "positive" and the other to "negative".
        span
            Sets the span in data space for which the density
            function will be computed. Has an effect only when
            `spanmode` is set to "manual".
        spanmode
            Sets the method by which the span in data space where
            the density function will be computed. "soft" means the
            span goes from the sample's minimum value minus two
            bandwidths to the sample's maximum value plus two
            bandwidths. "hard" means the span goes from the
            sample's minimum to its maximum value. For custom span
            settings, use mode "manual" and fill in the `span`
            attribute.
        stream
            :class:`plotly.graph_objects.violin.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with each sample
            value. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.violin.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the width of the violin in data coordinates. If 0
            (default value) the width is automatically selected
            based on the positions of other violin traces in the
            same subplot.
        x
            Sets the x sample data or coordinates. See overview for
            more info.
        x0
            Sets the x coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y sample data or coordinates. See overview for
            more info.
        y0
            Sets the y coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   L  s      
zViolin._prop_descriptionsNc7       ;         s
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|7
dd| _ddlm}8 |8 | jd< |8 | jd	< |8 | jd
< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8  | jd< |8! | jd< |8" | jd< |8# | jd< |8$ | jd< |8% | jd< |8& | jd< |8' | jd < |8( | jd!< |8) | jd"< |8* | jd#< |8+ | jd$< |8, | jd%< |8- | jd&< |8. | jd'< |8/ | jd(< |80 | jd)< |81 | jd*< |82 | jd+< |83 | jd,< |84 | jd-< |85 | jd.< |86 | jd/< |87 | jd0< |88 | jd1< |89 | jd2< |8: | jd3< |8; | jd4< |8< | jd5< |8= | jd6< |8> | jd7< |8? | jd8< |8@ | jd9< |8A | jd:< |8B | jd;< |8C | jd<< |
dd}9|dk	rl|n|9| d< |
d	d}9|dk	r|n|9| d	< |
d
d}9|dk	r|n|9| d
< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r8|n|9| d< |
dd}9|	dk	rZ|	n|9| d< |
dd}9|
dk	r||
n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r&|n|9| d< |
dd}9|dk	rH|n|9| d< |
dd}9|dk	rj|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r6|n|9| d< |
dd}9|dk	rX|n|9| d< |
dd}9|dk	rz|n|9| d< |
d d}9|dk	r|n|9| d < |
d!d}9|dk	r|n|9| d!< |
d"d}9|dk	r|n|9| d"< |
d#d}9|dk	r|n|9| d#< |
d$d}9|dk	r$|n|9| d$< |
d%d}9|dk	rF|n|9| d%< |
d&d}9| dk	rh| n|9| d&< |
d'd}9|!dk	r|!n|9| d'< |
d(d}9|"dk	r|"n|9| d(< |
d)d}9|#dk	r|#n|9| d)< |
d*d}9|$dk	r|$n|9| d*< |
d+d}9|%dk	r|%n|9| d+< |
d,d}9|&dk	r4|&n|9| d,< |
d-d}9|'dk	rV|'n|9| d-< |
d.d}9|(dk	rx|(n|9| d.< |
d/d}9|)dk	r|)n|9| d/< |
d0d}9|*dk	r|*n|9| d0< |
d1d}9|+dk	r|+n|9| d1< |
d2d}9|,dk		r |,n|9| d2< |
d3d}9|-dk		r"|-n|9| d3< |
d4d}9|.dk		rD|.n|9| d4< |
d5d}9|/dk		rf|/n|9| d5< |
d6d}9|0dk		r|0n|9| d6< |
d7d}9|1dk		r|1n|9| d7< |
d8d}9|2dk		r|2n|9| d8< |
d9d}9|3dk		r|3n|9| d9< |
d:d}9|4dk	
r|4n|9| d:< |
d;d}9|5dk	
r2|5n|9| d;< |
d<d}9|6dk	
rT|6n|9| d<< dd=lDmE}: d| jFd>< |:d>ddd?| jd>< |
d>d | jGf t|f|7 d| _dS )@aE6  
        Construct a new Violin object
        
        In vertical (horizontal) violin plots, statistics are computed
        using `y` (`x`) values. By supplying an `x` (`y`) array, one
        violin per distinct x (y) value is drawn If no `x` (`y`) list
        is provided, a single violin is drawn. That violin position is
        then positioned with with `name` or with `x0` (`y0`) if
        provided.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Violin`
        alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        bandwidth
            Sets the bandwidth used to compute the kernel density
            estimate. By default, the bandwidth is determined by
            Silverman's rule of thumb.
        box
            :class:`plotly.graph_objects.violin.Box` instance or
            dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.violin.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual violins or
            sample points or the kernel density estimate or any
            combination of them?
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        jitter
            Sets the amount of jitter in the sample points drawn.
            If 0, the sample points align along the distribution
            axis. If 1, the sample points are drawn in a random
            jitter of width equal to the width of the violins.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.violin.Line` instance or
            dict with compatible properties
        marker
            :class:`plotly.graph_objects.violin.Marker` instance or
            dict with compatible properties
        meanline
            :class:`plotly.graph_objects.violin.Meanline` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover. For violin traces, the name
            will also be used for the position coordinate, if `x`
            and `x0` (`y` and `y0` if horizontal) are missing and
            the position axis is categorical. Note that the trace
            name is also used as a default value for attribute
            `scalegroup` (please see its description for details).
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the violin(s). If "v" ("h"),
            the distribution is visualized along the vertical
            (horizontal).
        pointpos
            Sets the position of the sample points in relation to
            the violins. If 0, the sample points are places over
            the center of the violins. Positive (negative) values
            correspond to positions to the right (left) for
            vertical violins and above (below) for horizontal
            violins.
        points
            If "outliers", only the sample points lying outside the
            whiskers are shown If "suspectedoutliers", the outlier
            points are shown and points either less than 4*Q1-3*Q3
            or greater than 4*Q3-3*Q1 are highlighted (see
            `outliercolor`) If "all", all sample points are shown
            If False, only the violins are shown with no sample
            points. Defaults to "suspectedoutliers" when
            `marker.outliercolor` or `marker.line.outliercolor` is
            set, otherwise defaults to "outliers".
        scalegroup
            If there are multiple violins that should be sized
            according to to some metric (see `scalemode`), link
            them by providing a non-empty group id here shared by
            every trace in the same group. If a violin's `width` is
            undefined, `scalegroup` will default to the trace's
            name. In this case, violins with the same names will be
            linked together
        scalemode
            Sets the metric by which the width of each violin is
            determined."width" means each violin has the same (max)
            width*count* means the violins are scaled by the number
            of sample points makingup each violin.
        selected
            :class:`plotly.graph_objects.violin.Selected` instance
            or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        side
            Determines on which side of the position value the
            density function making up one half of a violin is
            plotted. Useful when comparing two violin traces under
            "overlay" mode, where one trace has `side` set to
            "positive" and the other to "negative".
        span
            Sets the span in data space for which the density
            function will be computed. Has an effect only when
            `spanmode` is set to "manual".
        spanmode
            Sets the method by which the span in data space where
            the density function will be computed. "soft" means the
            span goes from the sample's minimum value minus two
            bandwidths to the sample's maximum value plus two
            bandwidths. "hard" means the span goes from the
            sample's minimum to its maximum value. For custom span
            settings, use mode "manual" and fill in the `span`
            attribute.
        stream
            :class:`plotly.graph_objects.violin.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with each sample
            value. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.violin.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the width of the violin in data coordinates. If 0
            (default value) the width is automatically selected
            based on the positions of other violin traces in the
            same subplot.
        x
            Sets the x sample data or coordinates. See overview for
            more info.
        x0
            Sets the x coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y sample data or coordinates. See overview for
            more info.
        y0
            Sets the y coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Violin
        violinNzThe first argument to the plotly.graph_objs.Violin 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Violin`rJ   Fr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r%   r'   r(   r   r   r   r   r   r*   r+   r   r   r   r,   r-   r3   r7   r8   r   r9   r:   r<   r=   r>   r?   r@   rA   rB   rC   )rK   rD   )rL   rM   r   )HrN   r   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   rZ   r[   ZBandwidthValidatorZBoxValidatorr`   ra   FillcolorValidatorre   rf   rg   HoveronValidatorrh   ri   rj   rk   rl   rm   JitterValidatorrq   LineValidatorMarkerValidatorZMeanlineValidatorrr   rs   rt   rv   rx   ry   PointposValidatorZPointsValidatorScalegroupValidatorZScalemodeValidatorSelectedValidatorr{   r|   ZSideValidatorZSpanValidatorZSpanmodeValidatorr}   r~   r   r   r   UnselectedValidatorr   r   r   r   r   r   r   r   r   r   r   rK   rE   r   );r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r%   r'   r(   r   r   r   r   r   r*   r+   r   r   r   r,   r-   r3   r7   r8   r   r9   r:   r<   r=   r>   r?   r@   rA   rB   rC   r   Zv_violinr   rK   )rQ   r   r   rO   V  sf     U


zViolin.__init__)6NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)?r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r%   r'   r(   r   r   r   r   r   r*   r+   r   r   r   r,   r-   r3   r7   r8   r   r9   r:   r<   r=   r>   r?   r@   rA   rB   rC   rD   rG   rH   rO   r   r   r   )rQ   r   r     sJ  75#(                                                       r   c            +       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/edd Z0edd Z1d fdd	Z2  Z3S )Treemapc             C   s   | d S )aM  
        Determines how the items in `values` are summed. When set to
        "total", items in `values` are taken to be value of all its
        descendants. When set to "remainder", items in `values`
        corresponding to the root and the branches sectors are taken to
        be the extra part not part of the sum of the values at their
        leaves.
    
        The 'branchvalues' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['remainder', 'total']

        Returns
        -------
        Any
        branchvaluesr   )r   r   r   r   r     s    zTreemap.branchvaluesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines default for `values` when it is not provided, by
        inferring a 1 for each of the "leaves" and/or "branches",
        otherwise 0.
    
        The 'count' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['branches', 'leaves'] joined with '+' characters
            (e.g. 'branches+leaves')

        Returns
        -------
        Any
        countr   )r   r   r   r   r     s    zTreemap.countc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zTreemap.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zTreemap.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this treemap trace
                    .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this treemap trace .
                x
                    Sets the horizontal domain of this treemap
                    trace (in plot fraction).
                y
                    Sets the vertical domain of this treemap trace
                    (in plot fraction).

        Returns
        -------
        plotly.graph_objs.treemap.Domain
        domainr   )r   r   r   r   r     s    zTreemap.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'name', 'current path', 'percent root', 'percent entry', 'percent parent'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zTreemap.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   !  s    zTreemap.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   /  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.treemap.Hoverlabel
        r   r   )r   r   r   r   r   5  s    3zTreemap.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   j  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `currentPath`, `root`, `entry`, `percentRoot`,
        `percentEntry` and `percentParent`. Anything contained in tag
        `<extra>` is displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   p  s    "zTreemap.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zTreemap.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aK  
        Sets hover text elements associated with each sector. If a
        single string, the same string appears for all data points. If
        an array of string, the items are mapped in order of this
        trace's sectors. To be seen, trace `hoverinfo` must contain a
        "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    zTreemap.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zTreemap.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zTreemap.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zTreemap.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )av  
        Sets the font used for `textinfo` lying inside the sector.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.treemap.Insidetextfont
        r   r   )r   r   r   r   r     s    /zTreemap.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7  s    c             C   s   | d S )z
        Sets the labels of each of the sectors.
    
        The 'labels' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        labelsr   )r   r   r   r   r   =  s    zTreemap.labelsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   K  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  labels .
    
        The 'labelssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        	labelssrcr   )r   r   r   r   r   Q  s    zTreemap.labelssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _  s    c             C   s   | d S )aw  
        Sets the level from which this trace hierarchy is rendered. Set
        `level` to `''` to start from the root node in the hierarchy.
        Must be an "id" if `ids` is filled in, otherwise plotly
        attempts to find a matching item in `labels`.
    
        The 'level' property accepts values of any type

        Returns
        -------
        Any
        levelr   )r   r   r   r   r   e  s    zTreemap.levelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   u  s    c             C   s   | d S )al  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    Determines whether the colorscale is a default
                    palette (`autocolorscale: true`) or the palette
                    determined by `marker.colorscale`. Has an
                    effect only if colorsis 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.
                cauto
                    Determines whether or not the color domain is
                    computed with respect to the input data (here
                    colors) or the bounds set in `marker.cmin` and
                    `marker.cmax`  Has an effect only if colorsis
                    set to a numerical array. Defaults to `false`
                    when `marker.cmin` and `marker.cmax` are set by
                    the user.
                cmax
                    Sets the upper bound of the color domain. Has
                    an effect only if colorsis set to a numerical
                    array. Value should have the same units as
                    colors and if set, `marker.cmin` must be set as
                    well.
                cmid
                    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 colorsis set to a numerical array.
                    Value should have the same units as colors. Has
                    no effect when `marker.cauto` is `false`.
                cmin
                    Sets the lower bound of the color domain. Has
                    an effect only if colorsis set to a numerical
                    array. Value should have the same units as
                    colors and if set, `marker.cmax` must be set as
                    well.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.treemap.marker.Col
                    orBar` instance or dict with compatible
                    properties
                colors
                    Sets the color of each sector of this trace. If
                    not specified, the default trace color set is
                    used to pick the sector colors.
                colorscale
                    Sets the colorscale. Has an effect only if
                    colorsis 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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorssrc
                    Sets the source reference on plot.ly for
                    colors .
                depthfade
                    Determines if the sector colors are faded
                    towards the background from the leaves up to
                    the headers. This option is unavailable when a
                    `colorscale` is present, defaults to false when
                    `marker.colors` is set, but otherwise defaults
                    to true. When set to "reversed", the fading
                    direction is inverted, that is the top elements
                    within hierarchy are drawn with fully saturated
                    colors while the leaves are faded towards the
                    background color.
                line
                    :class:`plotly.graph_objects.treemap.marker.Lin
                    e` instance or dict with compatible properties
                pad
                    :class:`plotly.graph_objects.treemap.marker.Pad
                    ` instance or dict with compatible properties
                reversescale
                    Reverses the color mapping if true. Has an
                    effect only if colorsis 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.
                showscale
                    Determines whether or not a colorbar is
                    displayed for this trace. Has an effect only if
                    colorsis set to a numerical array.

        Returns
        -------
        plotly.graph_objs.treemap.Marker
        r   r   )r   r   r   r   r   {  s    uzTreemap.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aI  
        Sets the number of rendered sectors from any given `level`. Set
        `maxdepth` to "-1" to render all the levels in the hierarchy.
    
        The 'maxdepth' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)

        Returns
        -------
        int
        maxdepthr   )r   r   r   r   r     s    zTreemap.maxdepthc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zTreemap.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   #  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   )  s    zTreemap.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   7  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   =  s    zTreemap.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   M  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   S  s    zTreemap.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   a  s    c             C   s   | d S )a|  
        Sets the font used for `textinfo` lying outside the sector.
        This option refers to the root of the hierarchy presented on
        top left corner of a treemap graph. Please note that if a
        hierarchy has multiple root nodes, this option won't have any
        effect and `insidetextfont` would be used.
    
        The 'outsidetextfont' property is an instance of Outsidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Outsidetextfont`
          - A dict of string/value properties that will be passed
            to the Outsidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.treemap.Outsidetextfont
        r)   r   )r   r   r   r   r)   g  s    3zTreemap.outsidetextfontc             C   s   || d< d S )Nr)   r   )r   r   r   r   r   r)     s    c             C   s   | d S )a'  
        Sets the parent sectors for each of the sectors. Empty string
        items '' are understood to reference the root node in the
        hierarchy. If `ids` is filled, `parents` items are understood
        to be "ids" themselves. When `ids` is not set, plotly attempts
        to find matching items in `labels`, but beware they must be
        unique.
    
        The 'parents' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        parentsr   )r   r   r   r   r     s    zTreemap.parentsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  parents .
    
        The 'parentssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        
parentssrcr   )r   r   r   r   r     s    zTreemap.parentssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'pathbar' property is an instance of Pathbar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Pathbar`
          - A dict of string/value properties that will be passed
            to the Pathbar constructor
    
            Supported dict properties:
                
                edgeshape
                    Determines which shape is used for edges
                    between `barpath` labels.
                side
                    Determines on which side of the the treemap the
                    `pathbar` should be presented.
                textfont
                    Sets the font used inside `pathbar`.
                thickness
                    Sets the thickness of `pathbar` (in px). If not
                    specified the `pathbar.textfont.size` is used
                    with 3 pixles extra padding on each side.
                visible
                    Determines if the path bar is drawn i.e.
                    outside the trace `domain` and with one pixel
                    gap.

        Returns
        -------
        plotly.graph_objs.treemap.Pathbar
        pathbarr   )r   r   r   r   r     s     zTreemap.pathbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ah  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.treemap.Stream
        r,   r   )r   r   r   r   r,     s    zTreemap.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        Sets text elements associated with each sector. If trace
        `textinfo` contains a "text" flag, these elements will be seen
        on the chart. If trace `hoverinfo` contains a "text" flag and
        "hovertext" is not set, these elements will be seen in the
        hover labels.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zTreemap.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   *  s    c             C   s   | d S )a@  
        Sets the font used for `textinfo`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.treemap.Textfont
        r/   r   )r   r   r   r   r/   0  s    /zTreemap.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   a  s    c             C   s   | d S )a  
        Determines which trace information appear on the graph.
    
        The 'textinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'current path', 'percent root', 'percent entry', 'percent parent'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        r0   r   )r   r   r   r   r0   g  s    zTreemap.textinfoc             C   s   || d< d S )Nr0   r   )r   r   r   r   r   r0   x  s    c             C   s   | d S )a  
        Sets the positions of the `text` elements.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']

        Returns
        -------
        Any
        r1   r   )r   r   r   r   r1   ~  s    zTreemap.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zTreemap.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )a   
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `currentPath`, `root`, `entry`,
        `percentRoot`, `percentEntry`, `percentParent`, `label` and
        `value`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4     s    zTreemap.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5     s    zTreemap.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5     s    c             C   s   | d S )a  
        The 'tiling' property is an instance of Tiling
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.treemap.Tiling`
          - A dict of string/value properties that will be passed
            to the Tiling constructor
    
            Supported dict properties:
                
                flip
                    Determines if the positions obtained from
                    solver are flipped on each axis.
                packing
                    Determines d3 treemap solver. For more info
                    please refer to
                    https://github.com/d3/d3-hierarchy#treemap-
                    tiling
                pad
                    Sets the inner padding (in px).
                squarifyratio
                    When using "squarify" `packing` algorithm,
                    according to https://github.com/d3/d3-hierarchy
                    /blob/master/README.md#squarify_ratio this
                    option specifies the desired aspect ratio of
                    the generated rectangles. The ratio must be
                    specified as a number greater than or equal to
                    one. Note that the orientation of the generated
                    rectangles (tall or wide) is not implied by the
                    ratio; for example, a ratio of two will attempt
                    to produce a mixture of rectangles whose
                    width:height ratio is either 2:1 or 1:2. When
                    using "squarify", unlike d3 which uses the
                    Golden Ratio i.e. 1.618034, Plotly applies 1 to
                    increase squares in treemap layouts.

        Returns
        -------
        plotly.graph_objs.treemap.Tiling
        tilingr   )r   r   r   r   r     s    )zTreemap.tilingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7      s    zTreemap.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   #   s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   )   s    zTreemap.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   D   s    c             C   s   | d S )aB  
        Sets the values associated with each of the sectors. Use with
        `branchvalues` to determine how the values are summed.
    
        The 'values' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        valuesr   )r   r   r   r   r   J   s    zTreemap.valuesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Y   s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  values .
    
        The 'valuessrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        	valuessrcr   )r   r   r   r   r   _   s    zTreemap.valuessrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   m   s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   s   s    zTreemap.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9      s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD      s    zTreemap.typec             C   s   dS )NrF   r   )r   r   r   r   rG      s    zTreemap._parent_path_strc             C   s   dS )Na)          branchvalues
            Determines how the items in `values` are summed. When
            set to "total", items in `values` are taken to be value
            of all its descendants. When set to "remainder", items
            in `values` corresponding to the root and the branches
            sectors are taken to be the extra part not part of the
            sum of the values at their leaves.
        count
            Determines default for `values` when it is not
            provided, by inferring a 1 for each of the "leaves"
            and/or "branches", otherwise 0.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.treemap.Domain` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.treemap.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `currentPath`, `root`, `entry`,
            `percentRoot`, `percentEntry` and `percentParent`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        labels
            Sets the labels of each of the sectors.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        level
            Sets the level from which this trace hierarchy is
            rendered. Set `level` to `''` to start from the root
            node in the hierarchy. Must be an "id" if `ids` is
            filled in, otherwise plotly attempts to find a matching
            item in `labels`.
        marker
            :class:`plotly.graph_objects.treemap.Marker` instance
            or dict with compatible properties
        maxdepth
            Sets the number of rendered sectors from any given
            `level`. Set `maxdepth` to "-1" to render all the
            levels in the hierarchy.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        outsidetextfont
            Sets the font used for `textinfo` lying outside the
            sector. This option refers to the root of the hierarchy
            presented on top left corner of a treemap graph. Please
            note that if a hierarchy has multiple root nodes, this
            option won't have any effect and `insidetextfont` would
            be used.
        parents
            Sets the parent sectors for each of the sectors. Empty
            string items '' are understood to reference the root
            node in the hierarchy. If `ids` is filled, `parents`
            items are understood to be "ids" themselves. When `ids`
            is not set, plotly attempts to find matching items in
            `labels`, but beware they must be unique.
        parentssrc
            Sets the source reference on plot.ly for  parents .
        pathbar
            :class:`plotly.graph_objects.treemap.Pathbar` instance
            or dict with compatible properties
        stream
            :class:`plotly.graph_objects.treemap.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textposition
            Sets the positions of the `text` elements.
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables
            `currentPath`, `root`, `entry`, `percentRoot`,
            `percentEntry`, `percentParent`, `label` and `value`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        tiling
            :class:`plotly.graph_objects.treemap.Tiling` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values associated with each of the sectors.
            Use with `branchvalues` to determine how the values are
            summed.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH      s     RzTreemap._prop_descriptionsNc,       0         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|,
dd| _ddlm}- |- | jd< |- | jd	< |- | jd
< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |-  | jd< |-! | jd< |-" | jd< |-# | jd< |-$ | jd< |-% | jd< |-& | jd< |-' | jd < |-( | jd!< |-) | jd"< |-* | jd#< |-+ | jd$< |-, | jd%< |-- | jd&< |-. | jd'< |-/ | jd(< |-0 | jd)< |-1 | jd*< |-2 | jd+< |-3 | jd,< |-4 | jd-< |-5 | jd.< |-6 | jd/< |-7 | jd0< |-8 | jd1< |
dd}.|dk	r|n|.| d< |
d	d}.|dk	r|n|.| d	< |
d
d}.|dk	r|n|.| d
< |
dd}.|dk	r8|n|.| d< |
dd}.|dk	rZ|n|.| d< |
dd}.|dk	r||n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|	dk	r|	n|.| d< |
dd}.|
dk	r|
n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r&|n|.| d< |
dd}.|dk	rH|n|.| d< |
dd}.|dk	rj|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r6|n|.| d< |
dd}.|dk	rX|n|.| d< |
dd}.|dk	rz|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
d d}.|dk	r|n|.| d < |
d!d}.|dk	r$|n|.| d!< |
d"d}.|dk	rF|n|.| d"< |
d#d}.|dk	rh|n|.| d#< |
d$d}.|dk	r|n|.| d$< |
d%d}.|dk	r|n|.| d%< |
d&d}.| dk	r| n|.| d&< |
d'd}.|!dk	r|!n|.| d'< |
d(d}.|"dk	r|"n|.| d(< |
d)d}.|#dk	r4|#n|.| d)< |
d*d}.|$dk	rV|$n|.| d*< |
d+d}.|%dk	rx|%n|.| d+< |
d,d}.|&dk	r|&n|.| d,< |
d-d}.|'dk	r|'n|.| d-< |
d.d}.|(dk	r|(n|.| d.< |
d/d}.|)dk	r |)n|.| d/< |
d0d}.|*dk	r"|*n|.| d0< |
d1d}.|+dk	rD|+n|.| d1< dd2l9m:}/ d| j;d3< |/d3ddd4| jd3< |
d3d | j<f t|f|, d| _dS )5a*  
        Construct a new Treemap object
        
        Visualize hierarchal data from leaves (and/or outer branches)
        towards root with rectangles. The treemap sectors are
        determined by the entries in "labels" or "ids" and in
        "parents".

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Treemap`
        branchvalues
            Determines how the items in `values` are summed. When
            set to "total", items in `values` are taken to be value
            of all its descendants. When set to "remainder", items
            in `values` corresponding to the root and the branches
            sectors are taken to be the extra part not part of the
            sum of the values at their leaves.
        count
            Determines default for `values` when it is not
            provided, by inferring a 1 for each of the "leaves"
            and/or "branches", otherwise 0.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.treemap.Domain` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.treemap.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `currentPath`, `root`, `entry`,
            `percentRoot`, `percentEntry` and `percentParent`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        labels
            Sets the labels of each of the sectors.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        level
            Sets the level from which this trace hierarchy is
            rendered. Set `level` to `''` to start from the root
            node in the hierarchy. Must be an "id" if `ids` is
            filled in, otherwise plotly attempts to find a matching
            item in `labels`.
        marker
            :class:`plotly.graph_objects.treemap.Marker` instance
            or dict with compatible properties
        maxdepth
            Sets the number of rendered sectors from any given
            `level`. Set `maxdepth` to "-1" to render all the
            levels in the hierarchy.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        outsidetextfont
            Sets the font used for `textinfo` lying outside the
            sector. This option refers to the root of the hierarchy
            presented on top left corner of a treemap graph. Please
            note that if a hierarchy has multiple root nodes, this
            option won't have any effect and `insidetextfont` would
            be used.
        parents
            Sets the parent sectors for each of the sectors. Empty
            string items '' are understood to reference the root
            node in the hierarchy. If `ids` is filled, `parents`
            items are understood to be "ids" themselves. When `ids`
            is not set, plotly attempts to find matching items in
            `labels`, but beware they must be unique.
        parentssrc
            Sets the source reference on plot.ly for  parents .
        pathbar
            :class:`plotly.graph_objects.treemap.Pathbar` instance
            or dict with compatible properties
        stream
            :class:`plotly.graph_objects.treemap.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textposition
            Sets the positions of the `text` elements.
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables
            `currentPath`, `root`, `entry`, `percentRoot`,
            `percentEntry`, `percentParent`, `label` and `value`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        tiling
            :class:`plotly.graph_objects.treemap.Tiling` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values associated with each of the sectors.
            Use with `branchvalues` to determine how the values are
            summed.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Treemap
        treemapNzThe first argument to the plotly.graph_objs.Treemap 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Treemap`rJ   Fr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r)   r   r   r   r,   r-   r/   r0   r1   r3   r4   r5   r   r7   r8   r   r   r9   )rK   rD   )rL   rM   r   )=rN   r   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   BranchvaluesValidatorr[   CountValidatorr`   ra   DomainValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   rp   LabelsValidatorLabelssrcValidatorLevelValidatorr   MaxdepthValidatorrr   rs   rt   rx   rz   ParentsValidatorParentssrcValidatorZPathbarValidatorr}   r~   r   r   r   r   r   r   ZTilingValidatorr   r   ValuesValidatorValuessrcValidatorr   r   rK   rE   r   )0r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r)   r   r   r   r,   r-   r/   r0   r1   r3   r4   r5   r   r7   r8   r   r   r9   r   Z	v_treemapr   rK   )rQ   r   r   rO   i!  s$     


zTreemap.__init__)+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)4r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r)   r   r   r   r,   r-   r/   r0   r1   r3   r4   r5   r   r7   r8   r   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r     s  5$1w5"1+ V                                          r   c                   sd  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZedBdC ZedDdE ZdI fdGdH	Z  ZS )JTablec             C   s   | d S )ao
  
        The 'cells' property is an instance of Cells
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.table.Cells`
          - A dict of string/value properties that will be passed
            to the Cells constructor
    
            Supported dict properties:
                
                align
                    Sets the horizontal alignment of the `text`
                    within the box. Has an effect only if `text`
                    spans two or more lines (i.e. `text` contains
                    one or more <br> HTML tags) or if an explicit
                    width is set to override the text width.
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                fill
                    :class:`plotly.graph_objects.table.cells.Fill`
                    instance or dict with compatible properties
                font
                    :class:`plotly.graph_objects.table.cells.Font`
                    instance or dict with compatible properties
                format
                    Sets the cell value formatting rule using d3
                    formatting mini-language which is similar to
                    those of Python. See
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                formatsrc
                    Sets the source reference on plot.ly for
                    format .
                height
                    The height of cells.
                line
                    :class:`plotly.graph_objects.table.cells.Line`
                    instance or dict with compatible properties
                prefix
                    Prefix for cell values.
                prefixsrc
                    Sets the source reference on plot.ly for
                    prefix .
                suffix
                    Suffix for cell values.
                suffixsrc
                    Sets the source reference on plot.ly for
                    suffix .
                values
                    Cell values. `values[m][n]` represents the
                    value of the `n`th point in column `m`,
                    therefore the `values[m]` vector length for all
                    columns must be the same (longer vectors will
                    be truncated). Each value must be a finite
                    number or a string.
                valuessrc
                    Sets the source reference on plot.ly for
                    values .

        Returns
        -------
        plotly.graph_objs.table.Cells
        cellsr   )r   r   r   r   r  3#  s    AzTable.cellsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  v#  s    c             C   s   | d S )a  
        Specifies the rendered order of the data columns; for example,
        a value `2` at position `0` means that column index `0` in the
        data will be rendered as the third column, as columns have an
        index base of zero.
    
        The 'columnorder' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        columnorderr   )r   r   r   r   r  |#  s    zTable.columnorderc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  columnorder .
    
        The 'columnordersrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        columnordersrcr   )r   r   r   r   r  #  s    zTable.columnordersrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #  s    c             C   s   | d S )a  
        The width of columns expressed as a ratio. Columns fill the
        available width in proportion of their specified column widths.
    
        The 'columnwidth' property is a number and may be specified as:
          - An int or float
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        columnwidthr   )r   r   r   r   r  #  s    zTable.columnwidthc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  columnwidth .
    
        The 'columnwidthsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        columnwidthsrcr   )r   r   r   r   r  #  s    zTable.columnwidthsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   #  s    zTable.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   #  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   #  s    zTable.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   #  s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.table.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this table trace .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this table trace .
                x
                    Sets the horizontal domain of this table trace
                    (in plot fraction).
                y
                    Sets the vertical domain of this table trace
                    (in plot fraction).

        Returns
        -------
        plotly.graph_objs.table.Domain
        r   r   )r   r   r   r   r   #  s    zTable.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )a~
  
        The 'header' property is an instance of Header
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.table.Header`
          - A dict of string/value properties that will be passed
            to the Header constructor
    
            Supported dict properties:
                
                align
                    Sets the horizontal alignment of the `text`
                    within the box. Has an effect only if `text`
                    spans two or more lines (i.e. `text` contains
                    one or more <br> HTML tags) or if an explicit
                    width is set to override the text width.
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                fill
                    :class:`plotly.graph_objects.table.header.Fill`
                    instance or dict with compatible properties
                font
                    :class:`plotly.graph_objects.table.header.Font`
                    instance or dict with compatible properties
                format
                    Sets the cell value formatting rule using d3
                    formatting mini-language which is similar to
                    those of Python. See
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                formatsrc
                    Sets the source reference on plot.ly for
                    format .
                height
                    The height of cells.
                line
                    :class:`plotly.graph_objects.table.header.Line`
                    instance or dict with compatible properties
                prefix
                    Prefix for cell values.
                prefixsrc
                    Sets the source reference on plot.ly for
                    prefix .
                suffix
                    Suffix for cell values.
                suffixsrc
                    Sets the source reference on plot.ly for
                    suffix .
                values
                    Header cell values. `values[m][n]` represents
                    the value of the `n`th point in column `m`,
                    therefore the `values[m]` vector length for all
                    columns must be the same (longer vectors will
                    be truncated). Each value must be a finite
                    number or a string.
                valuessrc
                    Sets the source reference on plot.ly for
                    values .

        Returns
        -------
        plotly.graph_objs.table.Header
        headerr   )r   r   r   r   r   $  s    AzTable.headerc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  c$  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   i$  s    zTable.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }$  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   $  s    zTable.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.table.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.table.Hoverlabel
        r   r   )r   r   r   r   r   $  s    3zTable.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   $  s    z	Table.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   $  s    zTable.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   $  s    z
Table.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   %  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   %  s    zTable.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   &%  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   ,%  s    z
Table.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   <%  s    c             C   s   | d S )ad  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.table.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.table.Stream
        r,   r   )r   r   r   r   r,   B%  s    zTable.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   ]%  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   c%  s    z	Table.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   s%  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   y%  s    zTable.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   %  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   %  s    zTable.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   %  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   %  s    z
Table.typec             C   s   dS )NrF   r   )r   r   r   r   rG   %  s    zTable._parent_path_strc             C   s   dS )Na)          cells
            :class:`plotly.graph_objects.table.Cells` instance or
            dict with compatible properties
        columnorder
            Specifies the rendered order of the data columns; for
            example, a value `2` at position `0` means that column
            index `0` in the data will be rendered as the third
            column, as columns have an index base of zero.
        columnordersrc
            Sets the source reference on plot.ly for  columnorder .
        columnwidth
            The width of columns expressed as a ratio. Columns fill
            the available width in proportion of their specified
            column widths.
        columnwidthsrc
            Sets the source reference on plot.ly for  columnwidth .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.table.Domain` instance or
            dict with compatible properties
        header
            :class:`plotly.graph_objects.table.Header` instance or
            dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.table.Hoverlabel` instance
            or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        stream
            :class:`plotly.graph_objects.table.Stream` instance or
            dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   %  s    `zTable._prop_descriptionsNc                s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm} | | jd< | | jd	< | | jd
< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< |  | jd< |! | jd< |" | jd< |# | jd< |
dd}|dk	r|n|| d< |
d	d}|dk	r|n|| d	< |
d
d}|dk	r|n|| d
< |
dd}|dk	r|n|| d< |
dd}|dk	r4|n|| d< |
dd}|dk	rV|n|| d< |
dd}|dk	rx|n|| d< |
dd}|	dk	r|	n|| d< |
dd}|
dk	r|
n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r |n|| d< |
dd}|dk	r"|n|| d< |
dd}|dk	rD|n|| d< |
dd}|dk	rf|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r2|n|| d< |
dd}|dk	rT|n|| d< ddl$m%} d| j&d< |dddd| jd< |
dd | j'f t|f| d| _dS ) ab  
        Construct a new Table object
        
        Table view for detailed data viewing. The data are arranged in
        a grid of rows and columns. Most styling can be specified for
        columns, rows or individual cells. Table is using a column-
        major order, ie. the grid is represented as a vector of column
        vectors.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Table`
        cells
            :class:`plotly.graph_objects.table.Cells` instance or
            dict with compatible properties
        columnorder
            Specifies the rendered order of the data columns; for
            example, a value `2` at position `0` means that column
            index `0` in the data will be rendered as the third
            column, as columns have an index base of zero.
        columnordersrc
            Sets the source reference on plot.ly for  columnorder .
        columnwidth
            The width of columns expressed as a ratio. Columns fill
            the available width in proportion of their specified
            column widths.
        columnwidthsrc
            Sets the source reference on plot.ly for  columnwidth .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.table.Domain` instance or
            dict with compatible properties
        header
            :class:`plotly.graph_objects.table.Header` instance or
            dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.table.Hoverlabel` instance
            or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        stream
            :class:`plotly.graph_objects.table.Stream` instance or
            dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Table
        tableNzThe first argument to the plotly.graph_objs.Table 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Table`rJ   Fr   )r  r  r  r  r  r  r   r   r   r  r   r   r   r   r   r!   r"   r#   r,   r7   r8   r9   )rK   rD   )rL   rM   r   )(rN   r
  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZCellsValidatorr[   ZColumnorderValidatorZColumnordersrcValidatorZColumnwidthValidatorZColumnwidthsrcValidatorr`   ra   r  ZHeaderValidatorre   rf   rg   rl   rm   rr   rs   rt   r}   r   r   r   r   rK   rE   r   )r   r   r  r  r  r  r  r   r   r   r  r   r   r   r   r   r!   r"   r#   r,   r7   r8   r9   r   Zv_tabler   rK   )rQ   r   r   rO   &  s     


zTable.__init__)NNNNNNNNNNNNNNNNNNNNNN)r   r   r   r   r  r   r  r  r  r  r   r   r   r  r   r   r   r   r   r!   r"   r#   r,   r7   r8   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r
  /#  s   CC5d                     r
  c            3       sV  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7edd Z8edd Z9d fdd	Z:  Z;S )Surfacec             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   #'  s    zSurface.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6'  s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here z or surfacecolor) or the
        bounds set in `cmin` and `cmax`  Defaults to `false` when
        `cmin` and `cmax` are set by the user.
    
        The 'cauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   <'  s    zSurface.cautoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   M'  s    c             C   s   | d S )a>  
        Sets the upper bound of the color domain. Value should have the
        same units as z or surfacecolor and if set, `cmin` must be set
        as well.
    
        The 'cmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   S'  s    zSurface.cmaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c'  s    c             C   s   | d S )a  
        Sets the mid-point of the color domain by scaling `cmin` and/or
        `cmax` to be equidistant to this point. Value should have the
        same units as z or surfacecolor. Has no effect when `cauto` is
        `false`.
    
        The 'cmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   i'  s    zSurface.cmidc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z'  s    c             C   s   | d S )a>  
        Sets the lower bound of the color domain. Value should have the
        same units as z or surfacecolor and if set, `cmax` must be set
        as well.
    
        The 'cmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   '  s    zSurface.cminc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   '  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   '  s    zSurface.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   '  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.surface.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.surface
                    .colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.surface.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of surface.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.surface.colorbar.T
                    itle` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    surface.colorbar.title.font instead. Sets this
                    color bar's title font. Note that the title's
                    font used to be set by the now deprecated
                    `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    surface.colorbar.title.side instead. Determines
                    the location of color bar's title with respect
                    to the color bar. Note that the title's
                    location used to be set by the now deprecated
                    `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.surface.ColorBar
        r   r   )r   r   r   r   r   '  s     dzSurface.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (  s    c             C   s   | d S )a	  
        Sets the colorscale. 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`cmin` and `cmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   (  s    ,zSurface.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (  s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the `z` data are filled in.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        connectgapsr   )r   r   r   r   r  (  s    zSurface.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  (  s    c             C   s   | d S )ah  
        The 'contours' property is an instance of Contours
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.surface.Contours`
          - A dict of string/value properties that will be passed
            to the Contours constructor
    
            Supported dict properties:
                
                x
                    :class:`plotly.graph_objects.surface.contours.X
                    ` instance or dict with compatible properties
                y
                    :class:`plotly.graph_objects.surface.contours.Y
                    ` instance or dict with compatible properties
                z
                    :class:`plotly.graph_objects.surface.contours.Z
                    ` instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.surface.Contours
        contoursr   )r   r   r   r   r  (  s    zSurface.contoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   )  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   )  s    zSurface.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   )  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   )  s    zSurface.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   +)  s    c             C   s   | d S )a\  
        Determines whether or not a surface is drawn. For example, set
        `hidesurface` to False `contours.x.show` to True and
        `contours.y.show` to True to draw a wire frame plot.
    
        The 'hidesurface' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        hidesurfacer   )r   r   r   r   r  1)  s    zSurface.hidesurfacec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  A)  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   G)  s    zSurface.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [)  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   a)  s    zSurface.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   o)  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.surface.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.surface.Hoverlabel
        r   r   )r   r   r   r   r   u)  s    3zSurface.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   )  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   )  s    !zSurface.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   )  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   )  s    zSurface.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   )  s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   )  s    zSurface.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   )  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   *  s    zSurface.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   *  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   *  s    zSurface.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   '*  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   -*  s    zSurface.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ;*  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   A*  s    zSurface.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   R*  s    c             C   s   | d S )a  
        The 'lighting' property is an instance of Lighting
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.surface.Lighting`
          - A dict of string/value properties that will be passed
            to the Lighting constructor
    
            Supported dict properties:
                
                ambient
                    Ambient light increases overall color
                    visibility but can wash out the image.
                diffuse
                    Represents the extent that incident rays are
                    reflected in a range of angles.
                fresnel
                    Represents the reflectance as a dependency of
                    the viewing angle; e.g. paper is reflective
                    when viewing it from the edge of the paper
                    (almost 90 degrees), causing shine.
                roughness
                    Alters specular reflection; the rougher the
                    surface, the wider and less contrasty the
                    shine.
                specular
                    Represents the level that incident rays are
                    reflected in a single direction, causing shine.

        Returns
        -------
        plotly.graph_objs.surface.Lighting
        r   r   )r   r   r   r   r   X*  s    "zSurface.lightingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   |*  s    c             C   s   | d S )a$  
        The 'lightposition' property is an instance of Lightposition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.surface.Lightposition`
          - A dict of string/value properties that will be passed
            to the Lightposition constructor
    
            Supported dict properties:
                
                x
                    Numeric vector, representing the X coordinate
                    for each vertex.
                y
                    Numeric vector, representing the Y coordinate
                    for each vertex.
                z
                    Numeric vector, representing the Z coordinate
                    for each vertex.

        Returns
        -------
        plotly.graph_objs.surface.Lightposition
        r   r   )r   r   r   r   r   *  s    zSurface.lightpositionc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   *  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   *  s    zSurface.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   *  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   *  s    zSurface.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   *  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   *  s    zSurface.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   *  s    c             C   s   | d S )aS  
        Sets the opacity of the surface. Please note that in the case
        of using high `opacity` values for example a value greater than
        or equal to 0.5 on two surfaces (and 0.25 with four surfaces),
        an overlay of multiple transparent surfaces may not perfectly
        be sorted in depth by the webgl API. This behavior may be
        improved in the near future and is subject to change.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   *  s    zSurface.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   *  s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `cmin` will
        correspond to the last color in the array and `cmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   +  s    zSurface.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   +  s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   +  s    zSurface.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ++  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   1+  s    zSurface.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   @+  s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   F+  s    zSurface.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   U+  s    c             C   s   | d S )ah  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.surface.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.surface.Stream
        r,   r   )r   r   r   r   r,   [+  s    zSurface.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   v+  s    c             C   s   | d S )a%  
        Sets the surface color values, used for setting a color scale
        independent of `z`.
    
        The 'surfacecolor' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        surfacecolorr   )r   r   r   r   r  |+  s    zSurface.surfacecolorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  +  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  surfacecolor .
    
        The 'surfacecolorsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        surfacecolorsrcr   )r   r   r   r   r  +  s    zSurface.surfacecolorsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  +  s    c             C   s   | d S )a  
        Sets the text elements associated with each z value. If trace
        `hoverinfo` contains a "text" flag and "hovertext" is not set,
        these elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   +  s    zSurface.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   +  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   +  s    zSurface.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   +  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   +  s    zSurface.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   +  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   +  s    zSurface.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   ,  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   ,  s    zSurface.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   ,  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   ,  s    z	Surface.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   -,  s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        	xcalendarr   )r   r   r   r   r  3,  s    zSurface.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  E,  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   K,  s    zSurface.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   Y,  s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   _,  s    z	Surface.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   m,  s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        	ycalendarr   )r   r   r   r   r  s,  s    zSurface.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ,  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   ,  s    zSurface.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   ,  s    c             C   s   | d S )z
        Sets the z coordinates.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ,  s    z	Surface.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ,  s    c             C   s   | d S )a  
        Sets the calendar system to use with `z` date data.
    
        The 'zcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        	zcalendarr   )r   r   r   r   r  ,  s    zSurface.zcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ,  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ,  s    zSurface.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ,  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   ,  s    zSurface.typec             C   s   dS )NrF   r   )r   r   r   r   rG   ,  s    zSurface._parent_path_strc             C   s   dS )Na+          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here z or surfacecolor)
            or the bounds set in `cmin` and `cmax`  Defaults to
            `false` when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as z or surfacecolor and if set,
            `cmin` must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as z or surfacecolor.
            Has no effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as z or surfacecolor and if set,
            `cmax` must be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.surface.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data are filled in.
        contours
            :class:`plotly.graph_objects.surface.Contours` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hidesurface
            Determines whether or not a surface is drawn. For
            example, set `hidesurface` to False `contours.x.show`
            to True and `contours.y.show` to True to draw a wire
            frame plot.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.surface.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.surface.Lighting` instance
            or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.surface.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.surface.Stream` instance
            or dict with compatible properties
        surfacecolor
            Sets the surface color values, used for setting a color
            scale independent of `z`.
        surfacecolorsrc
            Sets the source reference on plot.ly for  surfacecolor
            .
        text
            Sets the text elements associated with each z value. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates.
        zcalendar
            Sets the calendar system to use with `z` date data.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   ,  s     dzSurface._prop_descriptionsNc4       8         s 
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|4
dd| _ddlm}5 |5 | jd< |5 | jd	< |5 | jd
< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5  | jd< |5! | jd< |5" | jd< |5# | jd< |5$ | jd< |5% | jd< |5& | jd< |5' | jd < |5( | jd!< |5) | jd"< |5* | jd#< |5+ | jd$< |5, | jd%< |5- | jd&< |5. | jd'< |5/ | jd(< |50 | jd)< |51 | jd*< |52 | jd+< |53 | jd,< |54 | jd-< |55 | jd.< |56 | jd/< |57 | jd0< |58 | jd1< |59 | jd2< |5: | jd3< |5; | jd4< |5< | jd5< |5= | jd6< |5> | jd7< |5? | jd8< |5@ | jd9< |
dd}6|dk	rB|n|6| d< |
d	d}6|dk	rd|n|6| d	< |
d
d}6|dk	r|n|6| d
< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|	dk	r0|	n|6| d< |
dd}6|
dk	rR|
n|6| d< |
dd}6|dk	rt|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r@|n|6| d< |
dd}6|dk	rb|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r.|n|6| d< |
dd}6|dk	rP|n|6| d< |
d d}6|dk	rr|n|6| d < |
d!d}6|dk	r|n|6| d!< |
d"d}6|dk	r|n|6| d"< |
d#d}6|dk	r|n|6| d#< |
d$d}6|dk	r|n|6| d$< |
d%d}6|dk	r|n|6| d%< |
d&d}6| dk	r>| n|6| d&< |
d'd}6|!dk	r`|!n|6| d'< |
d(d}6|"dk	r|"n|6| d(< |
d)d}6|#dk	r|#n|6| d)< |
d*d}6|$dk	r|$n|6| d*< |
d+d}6|%dk	r|%n|6| d+< |
d,d}6|&dk	r
|&n|6| d,< |
d-d}6|'dk	r,|'n|6| d-< |
d.d}6|(dk	rN|(n|6| d.< |
d/d}6|)dk	rp|)n|6| d/< |
d0d}6|*dk	r|*n|6| d0< |
d1d}6|+dk	r|+n|6| d1< |
d2d}6|,dk	r|,n|6| d2< |
d3d}6|-dk	r|-n|6| d3< |
d4d}6|.dk		r|.n|6| d4< |
d5d}6|/dk		r<|/n|6| d5< |
d6d}6|0dk		r^|0n|6| d6< |
d7d}6|1dk		r|1n|6| d7< |
d8d}6|2dk		r|2n|6| d8< |
d9d}6|3dk		r|3n|6| d9< dd:lAmB}7 d| jCd;< |7d;ddd<| jd;< |
d;d | jDf t|f|4 d| _dS )=a.  
        Construct a new Surface object
        
        The data the describes the coordinates of the surface is set in
        `z`. Data in `z` should be a 2D list. Coordinates in `x` and
        `y` can either be 1D lists or 2D lists (e.g. to graph
        parametric surfaces). If not provided in `x` and `y`, the x and
        y coordinates are assumed to be linear starting at 0 with a
        unit step. The color scale corresponds to the `z` values by
        default. For custom color scales, use `surfacecolor` which
        should be a 2D list, where its bounds can be controlled using
        `cmin` and `cmax`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Surface`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here z or surfacecolor)
            or the bounds set in `cmin` and `cmax`  Defaults to
            `false` when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as z or surfacecolor and if set,
            `cmin` must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as z or surfacecolor.
            Has no effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as z or surfacecolor and if set,
            `cmax` must be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.surface.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data are filled in.
        contours
            :class:`plotly.graph_objects.surface.Contours` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hidesurface
            Determines whether or not a surface is drawn. For
            example, set `hidesurface` to False `contours.x.show`
            to True and `contours.y.show` to True to draw a wire
            frame plot.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.surface.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.surface.Lighting` instance
            or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.surface.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.surface.Stream` instance
            or dict with compatible properties
        surfacecolor
            Sets the surface color values, used for setting a color
            scale independent of `z`.
        surfacecolorsrc
            Sets the source reference on plot.ly for  surfacecolor
            .
        text
            Sets the text elements associated with each z value. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates.
        zcalendar
            Sets the calendar system to use with `z` date data.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Surface
        r   NzThe first argument to the plotly.graph_objs.Surface 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Surface`rJ   Fr   )r   r   r   r   r   r   r   r   r   r  r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r,   r  r  r-   r3   r7   r8   r9   r<   r  r?   r@   r  rC   r   r  r   )rK   rD   )rL   rM   r   )ErN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   r   r[   r   r   r   r   r   r   r   ConnectgapsValidatorContoursValidatorr`   ra   ZHidesurfaceValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rt   rx   r   r   r|   r   r}   SurfacecolorValidatorZSurfacecolorsrcValidatorr~   r   r   r   r   r   XcalendarValidatorr   r   YcalendarValidatorr   r   ZcalendarValidatorr   r   rK   rE   r   )8r   r   r   r   r   r   r   r   r   r   r  r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r,   r  r  r-   r3   r7   r8   r9   r<   r  r?   r@   r  rC   r   r  r   r   Z	v_surfacer   rK   )rQ   r   r   rO   -  sT     0


zSurface.__init__)3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)<r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r,   r  r  r-   r3   r7   r8   r9   r<   r  r?   r@   r  rC   r   r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r  '  s8   f.5#$ h                                                  r  c            *       sl  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.ed~d Z/edd Z0d fdd	Z1  Z2S )Sunburstc             C   s   | d S )aM  
        Determines how the items in `values` are summed. When set to
        "total", items in `values` are taken to be value of all its
        descendants. When set to "remainder", items in `values`
        corresponding to the root and the branches sectors are taken to
        be the extra part not part of the sum of the values at their
        leaves.
    
        The 'branchvalues' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['remainder', 'total']

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   /  s    zSunburst.branchvaluesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   /  s    c             C   s   | d S )a  
        Determines default for `values` when it is not provided, by
        inferring a 1 for each of the "leaves" and/or "branches",
        otherwise 0.
    
        The 'count' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['branches', 'leaves'] joined with '+' characters
            (e.g. 'branches+leaves')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   /  s    zSunburst.countc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   /  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   0  s    zSunburst.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   0  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   0  s    zSunburst.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (0  s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this sunburst trace
                    .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this sunburst trace .
                x
                    Sets the horizontal domain of this sunburst
                    trace (in plot fraction).
                y
                    Sets the vertical domain of this sunburst trace
                    (in plot fraction).

        Returns
        -------
        plotly.graph_objs.sunburst.Domain
        r   r   )r   r   r   r   r   .0  s    zSunburst.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   M0  s    c             C   s   | d S )a  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'name', 'current path', 'percent root', 'percent entry', 'percent parent'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   S0  s    zSunburst.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   g0  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   m0  s    zSunburst.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {0  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.sunburst.Hoverlabel
        r   r   )r   r   r   r   r   0  s    3zSunburst.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   0  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `currentPath`, `root`, `entry`, `percentRoot`,
        `percentEntry` and `percentParent`. Anything contained in tag
        `<extra>` is displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   0  s    "zSunburst.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   0  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   0  s    zSunburst.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   0  s    c             C   s   | d S )aK  
        Sets hover text elements associated with each sector. If a
        single string, the same string appears for all data points. If
        an array of string, the items are mapped in order of this
        trace's sectors. To be seen, trace `hoverinfo` must contain a
        "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   0  s    zSunburst.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   1  s    zSunburst.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   "1  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   (1  s    zSunburst.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   81  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   >1  s    zSunburst.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   L1  s    c             C   s   | d S )ax  
        Sets the font used for `textinfo` lying inside the sector.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.sunburst.Insidetextfont
        r   r   )r   r   r   r   r   R1  s    /zSunburst.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )a  
        Controls the orientation of the text inside chart sectors. When
        set to "auto", text may be oriented in any direction in order
        to be as big as possible in the middle of a sector. The
        "horizontal" option orients text to be parallel with the bottom
        of the chart, and may make text smaller in order to achieve
        that goal. The "radial" option orients text along the radius of
        the sector. The "tangential" option orients text perpendicular
        to the radius of the sector.
    
        The 'insidetextorientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['horizontal', 'radial', 'tangential', 'auto']

        Returns
        -------
        Any
        insidetextorientationr   )r   r   r   r   r"  1  s    zSunburst.insidetextorientationc             C   s   || d< d S )Nr"  r   )r   r   r   r   r   r"  1  s    c             C   s   | d S )z
        Sets the labels of each of the sectors.
    
        The 'labels' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   1  s    zSunburst.labelsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  labels .
    
        The 'labelssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   1  s    zSunburst.labelssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )aI  
        The 'leaf' property is an instance of Leaf
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Leaf`
          - A dict of string/value properties that will be passed
            to the Leaf constructor
    
            Supported dict properties:
                
                opacity
                    Sets the opacity of the leaves. With colorscale
                    it is defaulted to 1; otherwise it is defaulted
                    to 0.7

        Returns
        -------
        plotly.graph_objs.sunburst.Leaf
        leafr   )r   r   r   r   r#  1  s    zSunburst.leafc             C   s   || d< d S )Nr#  r   )r   r   r   r   r   r#  1  s    c             C   s   | d S )aw  
        Sets the level from which this trace hierarchy is rendered. Set
        `level` to `''` to start from the root node in the hierarchy.
        Must be an "id" if `ids` is filled in, otherwise plotly
        attempts to find a matching item in `labels`.
    
        The 'level' property accepts values of any type

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   1  s    zSunburst.levelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )aC  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    Determines whether the colorscale is a default
                    palette (`autocolorscale: true`) or the palette
                    determined by `marker.colorscale`. Has an
                    effect only if colorsis 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.
                cauto
                    Determines whether or not the color domain is
                    computed with respect to the input data (here
                    colors) or the bounds set in `marker.cmin` and
                    `marker.cmax`  Has an effect only if colorsis
                    set to a numerical array. Defaults to `false`
                    when `marker.cmin` and `marker.cmax` are set by
                    the user.
                cmax
                    Sets the upper bound of the color domain. Has
                    an effect only if colorsis set to a numerical
                    array. Value should have the same units as
                    colors and if set, `marker.cmin` must be set as
                    well.
                cmid
                    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 colorsis set to a numerical array.
                    Value should have the same units as colors. Has
                    no effect when `marker.cauto` is `false`.
                cmin
                    Sets the lower bound of the color domain. Has
                    an effect only if colorsis set to a numerical
                    array. Value should have the same units as
                    colors and if set, `marker.cmax` must be set as
                    well.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.sunburst.marker.Co
                    lorBar` instance or dict with compatible
                    properties
                colors
                    Sets the color of each sector of this trace. If
                    not specified, the default trace color set is
                    used to pick the sector colors.
                colorscale
                    Sets the colorscale. Has an effect only if
                    colorsis 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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorssrc
                    Sets the source reference on plot.ly for
                    colors .
                line
                    :class:`plotly.graph_objects.sunburst.marker.Li
                    ne` instance or dict with compatible properties
                reversescale
                    Reverses the color mapping if true. Has an
                    effect only if colorsis 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.
                showscale
                    Determines whether or not a colorbar is
                    displayed for this trace. Has an effect only if
                    colorsis set to a numerical array.

        Returns
        -------
        plotly.graph_objs.sunburst.Marker
        r   r   )r   r   r   r   r   1  s    gzSunburst.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h2  s    c             C   s   | d S )aI  
        Sets the number of rendered sectors from any given `level`. Set
        `maxdepth` to "-1" to render all the levels in the hierarchy.
    
        The 'maxdepth' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)

        Returns
        -------
        int
        r   r   )r   r   r   r   r   n2  s    zSunburst.maxdepthc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }2  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   2  s    zSunburst.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   2  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   2  s    zSunburst.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   2  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   2  s    zSunburst.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   2  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   2  s    zSunburst.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   2  s    c             C   s   | d S )az  
        Sets the font used for `textinfo` lying outside the sector.
        This option refers to the root of the hierarchy presented at
        the center of a sunburst graph. Please note that if a hierarchy
        has multiple root nodes, this option won't have any effect and
        `insidetextfont` would be used.
    
        The 'outsidetextfont' property is an instance of Outsidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Outsidetextfont`
          - A dict of string/value properties that will be passed
            to the Outsidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.sunburst.Outsidetextfont
        r)   r   )r   r   r   r   r)   2  s    3zSunburst.outsidetextfontc             C   s   || d< d S )Nr)   r   )r   r   r   r   r   r)   3  s    c             C   s   | d S )a'  
        Sets the parent sectors for each of the sectors. Empty string
        items '' are understood to reference the root node in the
        hierarchy. If `ids` is filled, `parents` items are understood
        to be "ids" themselves. When `ids` is not set, plotly attempts
        to find matching items in `labels`, but beware they must be
        unique.
    
        The 'parents' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   3  s    zSunburst.parentsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   +3  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  parents .
    
        The 'parentssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   13  s    zSunburst.parentssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ?3  s    c             C   s   | d S )aj  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.sunburst.Stream
        r,   r   )r   r   r   r   r,   E3  s    zSunburst.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   `3  s    c             C   s   | d S )a  
        Sets text elements associated with each sector. If trace
        `textinfo` contains a "text" flag, these elements will be seen
        on the chart. If trace `hoverinfo` contains a "text" flag and
        "hovertext" is not set, these elements will be seen in the
        hover labels.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-   f3  s    zSunburst.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   x3  s    c             C   s   | d S )aB  
        Sets the font used for `textinfo`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sunburst.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.sunburst.Textfont
        r/   r   )r   r   r   r   r/   ~3  s    /zSunburst.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   3  s    c             C   s   | d S )a  
        Determines which trace information appear on the graph.
    
        The 'textinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'current path', 'percent root', 'percent entry', 'percent parent'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        r0   r   )r   r   r   r   r0   3  s    zSunburst.textinfoc             C   s   || d< d S )Nr0   r   )r   r   r   r   r   r0   3  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   3  s    zSunburst.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   3  s    c             C   s   | d S )a   
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `currentPath`, `root`, `entry`,
        `percentRoot`, `percentEntry`, `percentParent`, `label` and
        `value`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   3  s    zSunburst.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   3  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   4  s    zSunburst.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   4  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   4  s    zSunburst.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   )4  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   /4  s    zSunburst.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   J4  s    c             C   s   | d S )aB  
        Sets the values associated with each of the sectors. Use with
        `branchvalues` to determine how the values are summed.
    
        The 'values' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   P4  s    zSunburst.valuesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _4  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  values .
    
        The 'valuessrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   e4  s    zSunburst.valuessrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   s4  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   y4  s    zSunburst.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   4  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   4  s    zSunburst.typec             C   s   dS )NrF   r   )r   r   r   r   rG   4  s    zSunburst._parent_path_strc             C   s   dS )Na*          branchvalues
            Determines how the items in `values` are summed. When
            set to "total", items in `values` are taken to be value
            of all its descendants. When set to "remainder", items
            in `values` corresponding to the root and the branches
            sectors are taken to be the extra part not part of the
            sum of the values at their leaves.
        count
            Determines default for `values` when it is not
            provided, by inferring a 1 for each of the "leaves"
            and/or "branches", otherwise 0.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.sunburst.Domain` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.sunburst.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `currentPath`, `root`, `entry`,
            `percentRoot`, `percentEntry` and `percentParent`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        insidetextorientation
            Controls the orientation of the text inside chart
            sectors. When set to "auto", text may be oriented in
            any direction in order to be as big as possible in the
            middle of a sector. The "horizontal" option orients
            text to be parallel with the bottom of the chart, and
            may make text smaller in order to achieve that goal.
            The "radial" option orients text along the radius of
            the sector. The "tangential" option orients text
            perpendicular to the radius of the sector.
        labels
            Sets the labels of each of the sectors.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        leaf
            :class:`plotly.graph_objects.sunburst.Leaf` instance or
            dict with compatible properties
        level
            Sets the level from which this trace hierarchy is
            rendered. Set `level` to `''` to start from the root
            node in the hierarchy. Must be an "id" if `ids` is
            filled in, otherwise plotly attempts to find a matching
            item in `labels`.
        marker
            :class:`plotly.graph_objects.sunburst.Marker` instance
            or dict with compatible properties
        maxdepth
            Sets the number of rendered sectors from any given
            `level`. Set `maxdepth` to "-1" to render all the
            levels in the hierarchy.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        outsidetextfont
            Sets the font used for `textinfo` lying outside the
            sector. This option refers to the root of the hierarchy
            presented at the center of a sunburst graph. Please
            note that if a hierarchy has multiple root nodes, this
            option won't have any effect and `insidetextfont` would
            be used.
        parents
            Sets the parent sectors for each of the sectors. Empty
            string items '' are understood to reference the root
            node in the hierarchy. If `ids` is filled, `parents`
            items are understood to be "ids" themselves. When `ids`
            is not set, plotly attempts to find matching items in
            `labels`, but beware they must be unique.
        parentssrc
            Sets the source reference on plot.ly for  parents .
        stream
            :class:`plotly.graph_objects.sunburst.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables
            `currentPath`, `root`, `entry`, `percentRoot`,
            `percentEntry`, `percentParent`, `label` and `value`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values associated with each of the sectors.
            Use with `branchvalues` to determine how the values are
            summed.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   4  s     WzSunburst._prop_descriptionsNc+       /         sp  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|+
dd| _ddlm}, |, | jd< |, | jd	< |, | jd
< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |, | jd< |,  | jd< |,! | jd< |," | jd< |,# | jd< |,$ | jd< |,% | jd< |,& | jd< |,' | jd < |,( | jd!< |,) | jd"< |,* | jd#< |,+ | jd$< |,, | jd%< |,- | jd&< |,. | jd'< |,/ | jd(< |,0 | jd)< |,1 | jd*< |,2 | jd+< |,3 | jd,< |,4 | jd-< |,5 | jd.< |,6 | jd/< |,7 | jd0< |
dd}-|dk	r|n|-| d< |
d	d}-|dk	r|n|-| d	< |
d
d}-|dk	r|n|-| d
< |
dd}-|dk	r*|n|-| d< |
dd}-|dk	rL|n|-| d< |
dd}-|dk	rn|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|	dk	r|	n|-| d< |
dd}-|
dk	r|
n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r:|n|-| d< |
dd}-|dk	r\|n|-| d< |
dd}-|dk	r~|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r(|n|-| d< |
dd}-|dk	rJ|n|-| d< |
dd}-|dk	rl|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r|n|-| d< |
dd}-|dk	r|n|-| d< |
d d}-|dk	r|n|-| d < |
d!d}-|dk	r|n|-| d!< |
d"d}-|dk	r8|n|-| d"< |
d#d}-|dk	rZ|n|-| d#< |
d$d}-|dk	r||n|-| d$< |
d%d}-|dk	r|n|-| d%< |
d&d}-| dk	r| n|-| d&< |
d'd}-|!dk	r|!n|-| d'< |
d(d}-|"dk	r|"n|-| d(< |
d)d}-|#dk	r&|#n|-| d)< |
d*d}-|$dk	rH|$n|-| d*< |
d+d}-|%dk	rj|%n|-| d+< |
d,d}-|&dk	r|&n|-| d,< |
d-d}-|'dk	r|'n|-| d-< |
d.d}-|(dk	r|(n|-| d.< |
d/d}-|)dk	r|)n|-| d/< |
d0d}-|*dk	r|*n|-| d0< dd1l8m9}. d| j:d2< |.d2ddd3| jd2< |
d2d | j;f t|f|+ d| _dS )4a],  
        Construct a new Sunburst object
        
        Visualize hierarchal data spanning outward radially from root
        to leaves. The sunburst sectors are determined by the entries
        in "labels" or "ids" and in "parents".

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Sunburst`
        branchvalues
            Determines how the items in `values` are summed. When
            set to "total", items in `values` are taken to be value
            of all its descendants. When set to "remainder", items
            in `values` corresponding to the root and the branches
            sectors are taken to be the extra part not part of the
            sum of the values at their leaves.
        count
            Determines default for `values` when it is not
            provided, by inferring a 1 for each of the "leaves"
            and/or "branches", otherwise 0.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.sunburst.Domain` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.sunburst.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `currentPath`, `root`, `entry`,
            `percentRoot`, `percentEntry` and `percentParent`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        insidetextorientation
            Controls the orientation of the text inside chart
            sectors. When set to "auto", text may be oriented in
            any direction in order to be as big as possible in the
            middle of a sector. The "horizontal" option orients
            text to be parallel with the bottom of the chart, and
            may make text smaller in order to achieve that goal.
            The "radial" option orients text along the radius of
            the sector. The "tangential" option orients text
            perpendicular to the radius of the sector.
        labels
            Sets the labels of each of the sectors.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        leaf
            :class:`plotly.graph_objects.sunburst.Leaf` instance or
            dict with compatible properties
        level
            Sets the level from which this trace hierarchy is
            rendered. Set `level` to `''` to start from the root
            node in the hierarchy. Must be an "id" if `ids` is
            filled in, otherwise plotly attempts to find a matching
            item in `labels`.
        marker
            :class:`plotly.graph_objects.sunburst.Marker` instance
            or dict with compatible properties
        maxdepth
            Sets the number of rendered sectors from any given
            `level`. Set `maxdepth` to "-1" to render all the
            levels in the hierarchy.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        outsidetextfont
            Sets the font used for `textinfo` lying outside the
            sector. This option refers to the root of the hierarchy
            presented at the center of a sunburst graph. Please
            note that if a hierarchy has multiple root nodes, this
            option won't have any effect and `insidetextfont` would
            be used.
        parents
            Sets the parent sectors for each of the sectors. Empty
            string items '' are understood to reference the root
            node in the hierarchy. If `ids` is filled, `parents`
            items are understood to be "ids" themselves. When `ids`
            is not set, plotly attempts to find matching items in
            `labels`, but beware they must be unique.
        parentssrc
            Sets the source reference on plot.ly for  parents .
        stream
            :class:`plotly.graph_objects.sunburst.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables
            `currentPath`, `root`, `entry`, `percentRoot`,
            `percentEntry`, `percentParent`, `label` and `value`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values associated with each of the sectors.
            Use with `branchvalues` to determine how the values are
            summed.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Sunburst
        sunburstNzThe first argument to the plotly.graph_objs.Sunburst 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Sunburst`rJ   Fr   )r$  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"  r   r   r#  r   r   r   r!   r"   r#   r'   r)   r   r   r,   r-   r/   r0   r3   r4   r5   r7   r8   r   r   r9   )rK   rD   )rL   rM   r   )<rN   r!  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r$  r   r[   r   r`   ra   r  re   rf   rg   rh   ri   rj   rk   rl   rm   rp   InsidetextorientationValidatorr  r  ZLeafValidatorr  r   r  rr   rs   rt   rx   rz   r  r  r}   r~   r   r   r   r   r   r   r   r  r	  r   r   rK   rE   r   )/r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"  r   r   r#  r   r   r   r!   r"   r#   r'   r)   r   r   r,   r-   r/   r0   r3   r4   r5   r7   r8   r   r   r9   r   Z
v_sunburstr   rK   )rQ   r   r   rO   t5  s     


zSunburst.__init__)*NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)3r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"  r   r   r#  r   r   r   r!   r"   r#   r'   r)   r   r   r,   r-   r/   r0   r3   r4   r5   r7   r8   r   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r!  /  s   5$1i51 [                                         r!  c            2       s<  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6edd Z7edd Z8d fdd	Z9  Z:S )
Streamtubec             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   B7  s    zStreamtube.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   U7  s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here u/v/w norm) or the bounds set
        in `cmin` and `cmax`  Defaults to `false` when `cmin` and
        `cmax` are set by the user.
    
        The 'cauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   [7  s    zStreamtube.cautoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l7  s    c             C   s   | d S )a7  
        Sets the upper bound of the color domain. Value should have the
        same units as u/v/w norm and if set, `cmin` must be set as
        well.
    
        The 'cmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   r7  s    zStreamtube.cmaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7  s    c             C   s   | d S )a}  
        Sets the mid-point of the color domain by scaling `cmin` and/or
        `cmax` to be equidistant to this point. Value should have the
        same units as u/v/w norm. Has no effect when `cauto` is
        `false`.
    
        The 'cmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   7  s    zStreamtube.cmidc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7  s    c             C   s   | d S )a7  
        Sets the lower bound of the color domain. Value should have the
        same units as u/v/w norm and if set, `cmax` must be set as
        well.
    
        The 'cmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   7  s    zStreamtube.cminc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   7  s    zStreamtube.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.streamtube.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.streamt
                    ube.colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.streamtube.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of streamtube.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.streamtube.colorba
                    r.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    streamtube.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    streamtube.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.streamtube.ColorBar
        r   r   )r   r   r   r   r   7  s     dzStreamtube.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   8  s    c             C   s   | d S )a	  
        Sets the colorscale. 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`cmin` and `cmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   8  s    ,zStreamtube.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   8  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   8  s    zStreamtube.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    9  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   9  s    zStreamtube.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )a  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'u', 'v', 'w', 'norm', 'divergence', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   9  s    zStreamtube.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   .9  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   49  s    zStreamtube.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   B9  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.streamtube.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.streamtube.Hoverlabel
        r   r   )r   r   r   r   r   H9  s    3zStreamtube.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }9  s    c             C   s   | d S )a~  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`,
        `norm` and `divergence`. Anything contained in tag `<extra>` is
        displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   9  s    "zStreamtube.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   9  s    zStreamtube.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )z
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   9  s    zStreamtube.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   9  s    zStreamtube.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   9  s    zStreamtube.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r    :  s    zStreamtube.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   :  s    c             C   s   | d S )ao  
        The 'lighting' property is an instance of Lighting
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.streamtube.Lighting`
          - A dict of string/value properties that will be passed
            to the Lighting constructor
    
            Supported dict properties:
                
                ambient
                    Ambient light increases overall color
                    visibility but can wash out the image.
                diffuse
                    Represents the extent that incident rays are
                    reflected in a range of angles.
                facenormalsepsilon
                    Epsilon for face normals calculation avoids
                    math issues arising from degenerate geometry.
                fresnel
                    Represents the reflectance as a dependency of
                    the viewing angle; e.g. paper is reflective
                    when viewing it from the edge of the paper
                    (almost 90 degrees), causing shine.
                roughness
                    Alters specular reflection; the rougher the
                    surface, the wider and less contrasty the
                    shine.
                specular
                    Represents the level that incident rays are
                    reflected in a single direction, causing shine.
                vertexnormalsepsilon
                    Epsilon for vertex normals calculation avoids
                    math issues arising from degenerate geometry.

        Returns
        -------
        plotly.graph_objs.streamtube.Lighting
        r   r   )r   r   r   r   r   :  s    (zStreamtube.lightingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   A:  s    c             C   s   | d S )a*  
        The 'lightposition' property is an instance of Lightposition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.streamtube.Lightposition`
          - A dict of string/value properties that will be passed
            to the Lightposition constructor
    
            Supported dict properties:
                
                x
                    Numeric vector, representing the X coordinate
                    for each vertex.
                y
                    Numeric vector, representing the Y coordinate
                    for each vertex.
                z
                    Numeric vector, representing the Z coordinate
                    for each vertex.

        Returns
        -------
        plotly.graph_objs.streamtube.Lightposition
        r   r   )r   r   r   r   r   G:  s    zStreamtube.lightpositionc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   b:  s    c             C   s   | d S )a6  
        The maximum number of displayed segments in a streamtube.
    
        The 'maxdisplayed' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        maxdisplayedr   )r   r   r   r   r'  h:  s    zStreamtube.maxdisplayedc             C   s   || d< d S )Nr'  r   )r   r   r   r   r   r'  w:  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   }:  s    zStreamtube.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   :  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   :  s    zStreamtube.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   :  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   :  s    zStreamtube.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   :  s    c             C   s   | d S )aS  
        Sets the opacity of the surface. Please note that in the case
        of using high `opacity` values for example a value greater than
        or equal to 0.5 on two surfaces (and 0.25 with four surfaces),
        an overlay of multiple transparent surfaces may not perfectly
        be sorted in depth by the webgl API. This behavior may be
        improved in the near future and is subject to change.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   :  s    zStreamtube.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   :  s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `cmin` will
        correspond to the last color in the array and `cmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   :  s    zStreamtube.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   :  s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   :  s    zStreamtube.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ;  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   ;  s    zStreamtube.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   ;  s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r    ;  s    zStreamtube.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   /;  s    c             C   s   | d S )a`  
        The scaling factor for the streamtubes. The default is 1, which
        avoids two max divergence tubes from touching at adjacent
        starting positions.
    
        The 'sizeref' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        sizerefr   )r   r   r   r   r(  5;  s    zStreamtube.sizerefc             C   s   || d< d S )Nr(  r   )r   r   r   r   r   r(  E;  s    c             C   s   | d S )a  
        The 'starts' property is an instance of Starts
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.streamtube.Starts`
          - A dict of string/value properties that will be passed
            to the Starts constructor
    
            Supported dict properties:
                
                x
                    Sets the x components of the starting position
                    of the streamtubes
                xsrc
                    Sets the source reference on plot.ly for  x .
                y
                    Sets the y components of the starting position
                    of the streamtubes
                ysrc
                    Sets the source reference on plot.ly for  y .
                z
                    Sets the z components of the starting position
                    of the streamtubes
                zsrc
                    Sets the source reference on plot.ly for  z .

        Returns
        -------
        plotly.graph_objs.streamtube.Starts
        startsr   )r   r   r   r   r)  K;  s    zStreamtube.startsc             C   s   || d< d S )Nr)  r   )r   r   r   r   r   r)  l;  s    c             C   s   | d S )an  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.streamtube.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.streamtube.Stream
        r,   r   )r   r   r   r   r,   r;  s    zStreamtube.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   ;  s    c             C   s   | d S )a  
        Sets a text element associated with this trace. If trace
        `hoverinfo` contains a "text" flag, this text element will be
        seen in all hover labels. Note that streamtube traces do not
        support array `text` values.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r-   r   )r   r   r   r   r-   ;  s    zStreamtube.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   ;  s    c             C   s   | d S )z
        Sets the x components of the vector field.
    
        The 'u' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        ur   )r   r   r   r   r*  ;  s    zStreamtube.uc             C   s   || d< d S )Nr*  r   )r   r   r   r   r   r*  ;  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   ;  s    zStreamtube.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   ;  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   ;  s    zStreamtube.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   ;  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  u .
    
        The 'usrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        usrcr   )r   r   r   r   r+  ;  s    zStreamtube.usrcc             C   s   || d< d S )Nr+  r   )r   r   r   r   r   r+  <  s    c             C   s   | d S )z
        Sets the y components of the vector field.
    
        The 'v' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        vr   )r   r   r   r   r,  
<  s    zStreamtube.vc             C   s   || d< d S )Nr,  r   )r   r   r   r   r   r,  <  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   <  s    zStreamtube.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   /<  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  v .
    
        The 'vsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        vsrcr   )r   r   r   r   r-  5<  s    zStreamtube.vsrcc             C   s   || d< d S )Nr-  r   )r   r   r   r   r   r-  C<  s    c             C   s   | d S )z
        Sets the z components of the vector field.
    
        The 'w' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        wr   )r   r   r   r   r.  I<  s    zStreamtube.wc             C   s   || d< d S )Nr.  r   )r   r   r   r   r   r.  W<  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  w .
    
        The 'wsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        wsrcr   )r   r   r   r   r/  ]<  s    zStreamtube.wsrcc             C   s   || d< d S )Nr/  r   )r   r   r   r   r   r/  k<  s    c             C   s   | d S )z
        Sets the x coordinates of the vector field.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   q<  s    zStreamtube.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   <  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   <  s    zStreamtube.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   <  s    c             C   s   | d S )z
        Sets the y coordinates of the vector field.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   <  s    zStreamtube.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   <  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   <  s    zStreamtube.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   <  s    c             C   s   | d S )z
        Sets the z coordinates of the vector field.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   <  s    zStreamtube.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   <  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   <  s    zStreamtube.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   <  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   <  s    zStreamtube.typec             C   s   dS )NrF   r   )r   r   r   r   rG   <  s    zStreamtube._parent_path_strc             C   s   dS )Na$+          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here u/v/w norm) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmin`
            must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as u/v/w norm. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmax`
            must be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.streamtube.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.streamtube.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `tubex`, `tubey`, `tubez`,
            `tubeu`, `tubev`, `tubew`, `norm` and `divergence`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.streamtube.Lighting`
            instance or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.streamtube.Lightposition`
            instance or dict with compatible properties
        maxdisplayed
            The maximum number of displayed segments in a
            streamtube.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        sizeref
            The scaling factor for the streamtubes. The default is
            1, which avoids two max divergence tubes from touching
            at adjacent starting positions.
        starts
            :class:`plotly.graph_objects.streamtube.Starts`
            instance or dict with compatible properties
        stream
            :class:`plotly.graph_objects.streamtube.Stream`
            instance or dict with compatible properties
        text
            Sets a text element associated with this trace. If
            trace `hoverinfo` contains a "text" flag, this text
            element will be seen in all hover labels. Note that
            streamtube traces do not support array `text` values.
        u
            Sets the x components of the vector field.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        usrc
            Sets the source reference on plot.ly for  u .
        v
            Sets the y components of the vector field.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        vsrc
            Sets the source reference on plot.ly for  v .
        w
            Sets the z components of the vector field.
        wsrc
            Sets the source reference on plot.ly for  w .
        x
            Sets the x coordinates of the vector field.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates of the vector field.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates of the vector field.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   <  s     azStreamtube._prop_descriptionsNc3       7         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|3
dd| _ddlm}4 |4 | jd< |4 | jd	< |4 | jd
< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4  | jd< |4! | jd< |4" | jd< |4# | jd< |4$ | jd< |4% | jd< |4& | jd< |4' | jd < |4( | jd!< |4) | jd"< |4* | jd#< |4+ | jd$< |4, | jd%< |4- | jd&< |4. | jd'< |4/ | jd(< |40 | jd)< |41 | jd*< |42 | jd+< |43 | jd,< |44 | jd-< |45 | jd.< |46 | jd/< |47 | jd0< |48 | jd1< |49 | jd2< |4: | jd3< |4; | jd4< |4< | jd5< |4= | jd6< |4> | jd7< |4? | jd8< |
dd}5|dk	r4|n|5| d< |
d	d}5|dk	rV|n|5| d	< |
d
d}5|dk	rx|n|5| d
< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r |n|5| d< |
dd}5|	dk	r"|	n|5| d< |
dd}5|
dk	rD|
n|5| d< |
dd}5|dk	rf|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r2|n|5| d< |
dd}5|dk	rT|n|5| d< |
dd}5|dk	rv|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r |n|5| d< |
dd}5|dk	rB|n|5| d< |
d d}5|dk	rd|n|5| d < |
d!d}5|dk	r|n|5| d!< |
d"d}5|dk	r|n|5| d"< |
d#d}5|dk	r|n|5| d#< |
d$d}5|dk	r|n|5| d$< |
d%d}5|dk	r|n|5| d%< |
d&d}5| dk	r0| n|5| d&< |
d'd}5|!dk	rR|!n|5| d'< |
d(d}5|"dk	rt|"n|5| d(< |
d)d}5|#dk	r|#n|5| d)< |
d*d}5|$dk	r|$n|5| d*< |
d+d}5|%dk	r|%n|5| d+< |
d,d}5|&dk	r|&n|5| d,< |
d-d}5|'dk	r|'n|5| d-< |
d.d}5|(dk	r@|(n|5| d.< |
d/d}5|)dk	rb|)n|5| d/< |
d0d}5|*dk	r|*n|5| d0< |
d1d}5|+dk	r|+n|5| d1< |
d2d}5|,dk	r|,n|5| d2< |
d3d}5|-dk	r|-n|5| d3< |
d4d}5|.dk		r|.n|5| d4< |
d5d}5|/dk		r.|/n|5| d5< |
d6d}5|0dk		rP|0n|5| d6< |
d7d}5|1dk		rr|1n|5| d7< |
d8d}5|2dk		r|2n|5| d8< dd9l@mA}6 d| jBd:< |6d:ddd;| jd:< |
d:d | jCf t|f|3 d| _dS )<a.  
        Construct a new Streamtube object
        
        Use a streamtube trace to visualize flow in a vector field.
        Specify a vector field using 6 1D arrays of equal length, 3
        position arrays `x`, `y` and `z` and 3 vector component arrays
        `u`, `v`, and `w`.  By default, the tubes' starting positions
        will be cut from the vector field's x-z plane at its minimum y
        value. To specify your own starting position, use attributes
        `starts.x`, `starts.y` and `starts.z`. The color is encoded by
        the norm of (u, v, w), and the local radius by the divergence
        of (u, v, w).

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Streamtube`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here u/v/w norm) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmin`
            must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as u/v/w norm. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmax`
            must be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.streamtube.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.streamtube.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `tubex`, `tubey`, `tubez`,
            `tubeu`, `tubev`, `tubew`, `norm` and `divergence`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.streamtube.Lighting`
            instance or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.streamtube.Lightposition`
            instance or dict with compatible properties
        maxdisplayed
            The maximum number of displayed segments in a
            streamtube.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        sizeref
            The scaling factor for the streamtubes. The default is
            1, which avoids two max divergence tubes from touching
            at adjacent starting positions.
        starts
            :class:`plotly.graph_objects.streamtube.Starts`
            instance or dict with compatible properties
        stream
            :class:`plotly.graph_objects.streamtube.Stream`
            instance or dict with compatible properties
        text
            Sets a text element associated with this trace. If
            trace `hoverinfo` contains a "text" flag, this text
            element will be seen in all hover labels. Note that
            streamtube traces do not support array `text` values.
        u
            Sets the x components of the vector field.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        usrc
            Sets the source reference on plot.ly for  u .
        v
            Sets the y components of the vector field.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        vsrc
            Sets the source reference on plot.ly for  v .
        w
            Sets the z components of the vector field.
        wsrc
            Sets the source reference on plot.ly for  w .
        x
            Sets the x coordinates of the vector field.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates of the vector field.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates of the vector field.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Streamtube
        
streamtubeNzThe first argument to the plotly.graph_objs.Streamtube 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Streamtube`rJ   Fr   )r0  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'  r!   r"   r#   r'   r   r   r+   r   r(  r)  r,   r-   r*  r7   r8   r+  r,  r9   r-  r.  r/  r<   r?   r@   rC   r   r   )rK   rD   )rL   rM   r   )DrN   r&  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r0  r   r[   r   r   r   r   r   r   r   r`   ra   re   rf   rg   rh   ri   rj   rl   rm   rq   r   r   ZMaxdisplayedValidatorrr   rs   rt   rx   r   r   r|   r   SizerefValidatorZStartsValidatorr}   r~   
UValidatorr   r   UsrcValidator
VValidatorr   VsrcValidator
WValidatorWsrcValidatorr   r   r   r   r   r   r   rK   rE   r   )7r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'  r!   r"   r#   r'   r   r   r+   r   r(  r)  r,   r-   r*  r7   r8   r+  r,  r9   r-  r.  r/  r<   r?   r@   rC   r   r   r   Zv_streamtuber   rK   )rQ   r   r   rO   =  sN     ,


zStreamtube.__init__)2NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN);r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'  r!   r"   r#   r'   r   r   r+   r   r(  r)  r,   r-   r*  r7   r8   r+  r,  r9   r-  r.  r/  r<   r?   r@   rC   r   r   rD   rG   rH   rO   r   r   r   )rQ   r   r&  >7  s2   f.5$*! e                                                 r&  c            #       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'edidj Z(edkdl Z)dp fdndo	Z*  Z+S )qSplomc             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ?  s    zSplom.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ?  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ?  s    zSplom.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ?  s    c             C   s   | d S )a  
        The 'diagonal' property is an instance of Diagonal
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Diagonal`
          - A dict of string/value properties that will be passed
            to the Diagonal constructor
    
            Supported dict properties:
                
                visible
                    Determines whether or not subplots on the
                    diagonal are displayed.

        Returns
        -------
        plotly.graph_objs.splom.Diagonal
        diagonalr   )r   r   r   r   r9  ?  s    zSplom.diagonalc             C   s   || d< d S )Nr9  r   )r   r   r   r   r   r9  @  s    c             C   s   | d S )a	  
        The 'dimensions' property is a tuple of instances of
        Dimension that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.splom.Dimension
          - A list or tuple of dicts of string/value properties that
            will be passed to the Dimension constructor
    
            Supported dict properties:
                
                axis
                    :class:`plotly.graph_objects.splom.dimension.Ax
                    is` instance or dict with compatible properties
                label
                    Sets the label corresponding to this splom
                    dimension.
                name
                    When used in a template, named items are
                    created in the output figure in addition to any
                    items the figure already has in this array. You
                    can modify these items in the output figure by
                    making your own item with `templateitemname`
                    matching this `name` alongside your
                    modifications (including `visible: false` or
                    `enabled: false` to hide it). Has no effect
                    outside of a template.
                templateitemname
                    Used to refer to a named item in this array in
                    the template. Named items from the template
                    will be created even without a matching item in
                    the input figure, but you can modify one by
                    making an item with `templateitemname` matching
                    its `name`, alongside your modifications
                    (including `visible: false` or `enabled: false`
                    to hide it). If there is no template or no
                    matching item, this item will be hidden unless
                    you explicitly show it with `visible: true`.
                values
                    Sets the dimension values to be plotted.
                valuessrc
                    Sets the source reference on plot.ly for
                    values .
                visible
                    Determines whether or not this dimension is
                    shown on the graph. Note that even visible
                    false dimension contribute to the default grid
                    generate by this splom trace.

        Returns
        -------
        tuple[plotly.graph_objs.splom.Dimension]
        
dimensionsr   )r   r   r   r   r:  @  s    5zSplom.dimensionsc             C   s   || d< d S )Nr:  r   )r   r   r   r   r   r:  N@  s    c             C   s   | d S )aI  
        When used in a template (as
        layout.template.data.splom.dimensiondefaults), sets the default
        property values to use for elements of splom.dimensions
    
        The 'dimensiondefaults' property is an instance of Dimension
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Dimension`
          - A dict of string/value properties that will be passed
            to the Dimension constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.splom.Dimension
        dimensiondefaultsr   )r   r   r   r   r;  T@  s    zSplom.dimensiondefaultsc             C   s   || d< d S )Nr;  r   )r   r   r   r   r   r;  i@  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   o@  s    zSplom.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   @  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   @  s    zSplom.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   @  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.splom.Hoverlabel
        r   r   )r   r   r   r   r   @  s    3zSplom.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   @  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   @  s    !zSplom.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   @  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   A  s    zSplom.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   A  s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   A  s    zSplom.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   %A  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   +A  s    zSplom.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9A  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ?A  s    z	Splom.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   OA  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   UA  s    zSplom.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   cA  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   iA  s    zSplom.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   zA  s    c             C   s   | d S )av  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.splom.marker.Color
                    Bar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.splom.marker.Line`
                    instance or dict with compatible properties
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.splom.Marker
        r   r   )r   r   r   r   r   A  s     zSplom.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   B  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   B  s    z
Splom.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   )B  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   /B  s    zSplom.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   =B  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   CB  s    z
Splom.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   SB  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   YB  s    zSplom.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   gB  s    c             C   s   | d S )aP  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.splom.selected.Mar
                    ker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.splom.Selected
        r   r   )r   r   r   r   r   mB  s    zSplom.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   B  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   B  s    zSplom.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   B  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   B  s    zSplom.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   B  s    c             C   s   | d S )a  
        Determines whether or not subplots on the lower half from the
        diagonal are displayed.
    
        The 'showlowerhalf' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        showlowerhalfr   )r   r   r   r   r<  B  s    zSplom.showlowerhalfc             C   s   || d< d S )Nr<  r   )r   r   r   r   r   r<  B  s    c             C   s   | d S )a  
        Determines whether or not subplots on the upper half from the
        diagonal are displayed.
    
        The 'showupperhalf' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        showupperhalfr   )r   r   r   r   r=  B  s    zSplom.showupperhalfc             C   s   || d< d S )Nr=  r   )r   r   r   r   r   r=  B  s    c             C   s   | d S )ad  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.splom.Stream
        r,   r   )r   r   r   r   r,   B  s    zSplom.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   B  s    c             C   s   | d S )a(  
        Sets text elements associated with each (x,y) pair to appear on
        hover. If a single string, the same string appears over all the
        data points. If an array of string, the items are mapped in
        order to the this trace's (x,y) coordinates.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   C  s    z
Splom.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   C  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   C  s    zSplom.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   (C  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   .C  s    z	Splom.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   >C  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   DC  s    zSplom.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   _C  s    c             C   s   | d S )a\  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.splom.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.splom.unselected.M
                    arker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.splom.Unselected
        r   r   )r   r   r   r   r   eC  s    zSplom.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {C  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   C  s    zSplom.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   C  s    c             C   s   | d S )a
  
        Sets the list of x axes corresponding to dimensions of this
        splom trace. By default, a splom will match the first N xaxes
        where N is the number of input dimensions. Note that, in case
        where `diagonal.visible` is false and `showupperhalf` or
        `showlowerhalf` is false, this splom trace will generate one
        less x-axis and one less y-axis.
    
        The 'xaxes' property is an info array that may be specified as:
        * a list of elements where:
          The 'xaxes[i]' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        list
        xaxesr   )r   r   r   r   r>  C  s    zSplom.xaxesc             C   s   || d< d S )Nr>  r   )r   r   r   r   r   r>  C  s    c             C   s   | d S )a
  
        Sets the list of y axes corresponding to dimensions of this
        splom trace. By default, a splom will match the first N yaxes
        where N is the number of input dimensions. Note that, in case
        where `diagonal.visible` is false and `showupperhalf` or
        `showlowerhalf` is false, this splom trace will generate one
        less x-axis and one less y-axis.
    
        The 'yaxes' property is an info array that may be specified as:
        * a list of elements where:
          The 'yaxes[i]' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        list
        yaxesr   )r   r   r   r   r?  C  s    zSplom.yaxesc             C   s   || d< d S )Nr?  r   )r   r   r   r   r   r?  C  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   C  s    z
Splom.typec             C   s   dS )NrF   r   )r   r   r   r   rG   C  s    zSplom._parent_path_strc             C   s   dS )Na"!          customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        diagonal
            :class:`plotly.graph_objects.splom.Diagonal` instance
            or dict with compatible properties
        dimensions
            A tuple of
            :class:`plotly.graph_objects.splom.Dimension` instances
            or dicts with compatible properties
        dimensiondefaults
            When used in a template (as
            layout.template.data.splom.dimensiondefaults), sets the
            default property values to use for elements of
            splom.dimensions
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.splom.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.splom.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.splom.Selected` instance
            or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showlowerhalf
            Determines whether or not subplots on the lower half
            from the diagonal are displayed.
        showupperhalf
            Determines whether or not subplots on the upper half
            from the diagonal are displayed.
        stream
            :class:`plotly.graph_objects.splom.Stream` instance or
            dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair to
            appear on hover. If a single string, the same string
            appears over all the data points. If an array of
            string, the items are mapped in order to the this
            trace's (x,y) coordinates.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.splom.Unselected` instance
            or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        xaxes
            Sets the list of x axes corresponding to dimensions of
            this splom trace. By default, a splom will match the
            first N xaxes where N is the number of input
            dimensions. Note that, in case where `diagonal.visible`
            is false and `showupperhalf` or `showlowerhalf` is
            false, this splom trace will generate one less x-axis
            and one less y-axis.
        yaxes
            Sets the list of y axes corresponding to dimensions of
            this splom trace. By default, a splom will match the
            first N yaxes where N is the number of input
            dimensions. Note that, in case where `diagonal.visible`
            is false and `showupperhalf` or `showlowerhalf` is
            false, this splom trace will generate one less x-axis
            and one less y-axis.
        r   )r   r   r   r   rH   C  s     ,zSplom._prop_descriptionsNc$       (         s   t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|$
dd| _ddlm}% |% | jd< |% | jd	< |% | jd
< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |%  | jd< |%! | jd< |%" | jd< |%# | jd< |%$ | jd< |%% | jd< |%& | jd< |%' | jd < |%( | jd!< |%) | jd"< |%* | jd#< |%+ | jd$< |%, | jd%< |%- | jd&< |%. | jd'< |%/ | jd(< |%0 | jd)< |
dd}&|dk	rb|n|&| d< |
d	d}&|dk	r|n|&| d	< |
d
d}&|dk	r|n|&| d
< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r.|n|&| d< |
dd}&|	dk	rP|	n|&| d< |
dd}&|
dk	rr|
n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r>|n|&| d< |
dd}&|dk	r`|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r
|n|&| d< |
dd}&|dk	r,|n|&| d< |
dd}&|dk	rN|n|&| d< |
dd}&|dk	rp|n|&| d< |
d d}&|dk	r|n|&| d < |
d!d}&|dk	r|n|&| d!< |
d"d}&|dk	r|n|&| d"< |
d#d}&|dk	r|n|&| d#< |
d$d}&|dk	r|n|&| d$< |
d%d}&|dk	r<|n|&| d%< |
d&d}&| dk	r^| n|&| d&< |
d'd}&|!dk	r|!n|&| d'< |
d(d}&|"dk	r|"n|&| d(< |
d)d}&|#dk	r|#n|&| d)< dd*l1m2}' d| j3d+< |'d+ddd,| jd+< |
d+d | j4f t|f|$ d| _dS )-a#  
        Construct a new Splom object
        
        Splom traces generate scatter plot matrix visualizations. Each
        splom `dimensions` items correspond to a generated axis. Values
        for each of those dimensions are set in `dimensions[i].values`.
        Splom traces support all `scattergl` marker style attributes.
        Specify `layout.grid` attributes and/or layout x-axis and
        y-axis attributes for more control over the axis positioning
        and style.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Splom`
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        diagonal
            :class:`plotly.graph_objects.splom.Diagonal` instance
            or dict with compatible properties
        dimensions
            A tuple of
            :class:`plotly.graph_objects.splom.Dimension` instances
            or dicts with compatible properties
        dimensiondefaults
            When used in a template (as
            layout.template.data.splom.dimensiondefaults), sets the
            default property values to use for elements of
            splom.dimensions
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.splom.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.splom.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.splom.Selected` instance
            or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showlowerhalf
            Determines whether or not subplots on the lower half
            from the diagonal are displayed.
        showupperhalf
            Determines whether or not subplots on the upper half
            from the diagonal are displayed.
        stream
            :class:`plotly.graph_objects.splom.Stream` instance or
            dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair to
            appear on hover. If a single string, the same string
            appears over all the data points. If an array of
            string, the items are mapped in order to the this
            trace's (x,y) coordinates.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.splom.Unselected` instance
            or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        xaxes
            Sets the list of x axes corresponding to dimensions of
            this splom trace. By default, a splom will match the
            first N xaxes where N is the number of input
            dimensions. Note that, in case where `diagonal.visible`
            is false and `showupperhalf` or `showlowerhalf` is
            false, this splom trace will generate one less x-axis
            and one less y-axis.
        yaxes
            Sets the list of y axes corresponding to dimensions of
            this splom trace. By default, a splom will match the
            first N yaxes where N is the number of input
            dimensions. Note that, in case where `diagonal.visible`
            is false and `showupperhalf` or `showlowerhalf` is
            false, this splom trace will generate one less x-axis
            and one less y-axis.

        Returns
        -------
        Splom
        splomNzThe first argument to the plotly.graph_objs.Splom 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Splom`rJ   Fr   )r@  r   r   r9  r:  r;  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r*   r+   r<  r=  r,   r-   r3   r7   r8   r   r9   r>  r?  )rK   rD   )rL   rM   r   )5rN   r8  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r@  r`   r[   ra   ZDiagonalValidatorDimensionsValidatorDimensionValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   rr   rs   rt   rx   r   r{   r|   ZShowlowerhalfValidatorZShowupperhalfValidatorr}   r~   r   r   r   r   r   ZXaxesValidatorZYaxesValidatorr   rK   rE   r   )(r   r   r   r   r9  r:  r;  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r*   r+   r<  r=  r,   r-   r3   r7   r8   r   r9   r>  r?  r   Zv_splomr   rK   )rQ   r   r   rO   D  s     e


zSplom.__init__)#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN),r   r   r   r   r   r   r   r9  r:  r;  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r*   r+   r<  r=  r,   r-   r3   r7   r8   r   r9   r>  r?  rD   rG   rH   rO   r   r   r   )rQ   r   r8  ?  s   75#  0                                  r8  c            0       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4edd Z5edd Z6d fdd	Z7  Z8S )Scatterternaryc             C   s   | d S )a  
        Sets the quantity of component `a` in each data point. If `a`,
        `b`, and `c` are all provided, they need not be normalized,
        only the relative values matter. If only two arrays are
        provided they must be normalized to match `ternary<i>.sum`.
    
        The 'a' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        ar   )r   r   r   r   rD  F  s    zScatterternary.ac             C   s   || d< d S )NrD  r   )r   r   r   r   r   rD  %F  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  a .
    
        The 'asrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        asrcr   )r   r   r   r   rE  +F  s    zScatterternary.asrcc             C   s   || d< d S )NrE  r   )r   r   r   r   r   rE  9F  s    c             C   s   | d S )a  
        Sets the quantity of component `a` in each data point. If `a`,
        `b`, and `c` are all provided, they need not be normalized,
        only the relative values matter. If only two arrays are
        provided they must be normalized to match `ternary<i>.sum`.
    
        The 'b' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        br   )r   r   r   r   rF  ?F  s    zScatterternary.bc             C   s   || d< d S )NrF  r   )r   r   r   r   r   rF  PF  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  b .
    
        The 'bsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        bsrcr   )r   r   r   r   rG  VF  s    zScatterternary.bsrcc             C   s   || d< d S )NrG  r   )r   r   r   r   r   rG  dF  s    c             C   s   | d S )a  
        Sets the quantity of component `a` in each data point. If `a`,
        `b`, and `c` are all provided, they need not be normalized,
        only the relative values matter. If only two arrays are
        provided they must be normalized to match `ternary<i>.sum`.
    
        The 'c' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        cr   )r   r   r   r   rH  jF  s    zScatterternary.cc             C   s   || d< d S )NrH  r   )r   r   r   r   r   rH  {F  s    c             C   s   | d S )a  
        Determines whether or not markers and text nodes are clipped
        about the subplot axes. To show markers and text nodes above
        axis lines and tick labels, make sure to set `xaxis.layer` and
        `yaxis.layer` to *below traces*.
    
        The 'cliponaxis' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
   r   )r   r   r   r   r
   F  s    zScatterternary.cliponaxisc             C   s   || d< d S )Nr
   r   )r   r   r   r   r   r
   F  s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  F  s    zScatterternary.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  F  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  c .
    
        The 'csrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        csrcr   )r   r   r   r   rI  F  s    zScatterternary.csrcc             C   s   || d< d S )NrI  r   )r   r   r   r   r   rI  F  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   F  s    zScatterternary.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   F  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   F  s    zScatterternary.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   F  s    c             C   s   | d S )a  
        Sets the area to fill with a solid color. Use with `fillcolor`
        if not "none". scatterternary has a subset of the options
        available to scatter. "toself" connects the endpoints of the
        trace (or each segment of the trace if it has gaps) into a
        closed shape. "tonext" fills the space between two traces if
        one completely encloses the other (eg consecutive contour
        lines), and behaves like "toself" if there is no trace before
        it. "tonext" should not be used if one trace does not enclose
        the other.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'toself', 'tonext']

        Returns
        -------
        Any
        fillr   )r   r   r   r   rJ  F  s    zScatterternary.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  G  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   	G  s    5zScatterternary.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   @G  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['a', 'b', 'c', 'text', 'name'] joined with '+' characters
            (e.g. 'a+b')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   FG  s    zScatterternary.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ZG  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   `G  s    zScatterternary.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   nG  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scatterternary.Hoverlabel
        r   r   )r   r   r   r   r   tG  s    3zScatterternary.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   G  s    c             C   s   | d S )a  
        Do the hover effects highlight individual points (markers or
        line points) or do they highlight filled regions? If the fill
        is "toself" or "tonext" and there are no markers or text, then
        the default is "fills", otherwise it is "points".
    
        The 'hoveron' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['points', 'fills'] joined with '+' characters
            (e.g. 'points+fills')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   G  s    zScatterternary.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   G  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   G  s    !zScatterternary.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   G  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   G  s    zScatterternary.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   G  s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (a,b,c) point. If
        a single string, the same string appears over all the data
        points. If an array of strings, the items are mapped in order
        to the the data points in (a,b,c). To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   H  s    zScatterternary.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   H  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   H  s    zScatterternary.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   -H  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   3H  s    zScatterternary.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   CH  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   IH  s    zScatterternary.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   WH  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ]H  s    zScatterternary.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   nH  s    c             C   s   | d S )a,  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                shape
                    Determines the line shape. With "spline" the
                    lines are drawn using spline interpolation. The
                    other available values correspond to step-wise
                    line shapes.
                smoothing
                    Has an effect only if `shape` is set to
                    "spline" Sets the amount of smoothing. 0
                    corresponds to no smoothing (equivalent to a
                    "linear" shape).
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scatterternary.Line
        r   r   )r   r   r   r   r   tH  s    #zScatterternary.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   H  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scatterternary.mar
                    ker.ColorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                gradient
                    :class:`plotly.graph_objects.scatterternary.mar
                    ker.Gradient` instance or dict with compatible
                    properties
                line
                    :class:`plotly.graph_objects.scatterternary.mar
                    ker.Line` instance or dict with compatible
                    properties
                maxdisplayed
                    Sets a maximum number of points to be drawn on
                    the graph. 0 corresponds to no limit.
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scatterternary.Marker
        r   r   )r   r   r   r   r   H  s     zScatterternary.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   4I  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   :I  s    zScatterternary.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   PI  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   VI  s    zScatterternary.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   dI  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        moder   )r   r   r   r   rK  jI  s    zScatterternary.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  I  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   I  s    zScatterternary.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   I  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   I  s    zScatterternary.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   I  s    c             C   s   | d S )a,  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatterternary.sel
                    ected.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scatterternary.sel
                    ected.Textfont` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.scatterternary.Selected
        r   r   )r   r   r   r   r   I  s    zScatterternary.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   I  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   I  s    zScatterternary.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   I  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   I  s    zScatterternary.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   I  s    c             C   s   | d S )av  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scatterternary.Stream
        r,   r   )r   r   r   r   r,   I  s    zScatterternary.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   J  s    c             C   s   | d S )a2  
        Sets a reference between this trace's data coordinates and a
        ternary subplot. If "ternary" (the default value), the data
        refer to `layout.ternary`. If "ternary2", the data refer to
        `layout.ternary2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'ternary', that may be specified as the string 'ternary'
        optionally followed by an integer >= 1
        (e.g. 'ternary', 'ternary1', 'ternary2', 'ternary3', etc.)

        Returns
        -------
        str
        subplotr   )r   r   r   r   rL  J  s    zScatterternary.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  1J  s    c             C   s   | d S )a  
        The number each triplet should sum to, if only two of `a`, `b`,
        and `c` are provided. This overrides `ternary<i>.sum` to
        normalize this specific trace, but does not affect the values
        displayed on the axes. 0 (or missing) means to use
        ternary<i>.sum
    
        The 'sum' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        sumr   )r   r   r   r   rM  7J  s    zScatterternary.sumc             C   s   || d< d S )NrM  r   )r   r   r   r   r   rM  IJ  s    c             C   s   | d S )a  
        Sets text elements associated with each (a,b,c) point. If a
        single string, the same string appears over all the data
        points. If an array of strings, the items are mapped in order
        to the the data points in (a,b,c). If trace `hoverinfo`
        contains a "text" flag and "hovertext" is not set, these
        elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   OJ  s    zScatterternary.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   dJ  s    c             C   s   | d S )a?  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scatterternary.Textfont
        r/   r   )r   r   r   r   r/   jJ  s    /zScatterternary.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   J  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   J  s    zScatterternary.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   J  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   J  s    zScatterternary.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   J  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   J  s    zScatterternary.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   J  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `a`, `b`, `c` and `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   J  s    zScatterternary.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   J  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   K  s    zScatterternary.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   K  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   K  s    zScatterternary.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   )K  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   /K  s    zScatterternary.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   JK  s    c             C   s   | d S )a:  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterternary.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatterternary.uns
                    elected.Marker` instance or dict with
                    compatible properties
                textfont
                    :class:`plotly.graph_objects.scatterternary.uns
                    elected.Textfont` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.scatterternary.Unselected
        r   r   )r   r   r   r   r   PK  s    zScatterternary.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   jK  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   pK  s    zScatterternary.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   K  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   K  s    zScatterternary.typec             C   s   dS )NrF   r   )r   r   r   r   rG   K  s    zScatterternary._parent_path_strc             C   s   dS )Na1          a
            Sets the quantity of component `a` in each data point.
            If `a`, `b`, and `c` are all provided, they need not be
            normalized, only the relative values matter. If only
            two arrays are provided they must be normalized to
            match `ternary<i>.sum`.
        asrc
            Sets the source reference on plot.ly for  a .
        b
            Sets the quantity of component `a` in each data point.
            If `a`, `b`, and `c` are all provided, they need not be
            normalized, only the relative values matter. If only
            two arrays are provided they must be normalized to
            match `ternary<i>.sum`.
        bsrc
            Sets the source reference on plot.ly for  b .
        c
            Sets the quantity of component `a` in each data point.
            If `a`, `b`, and `c` are all provided, they need not be
            normalized, only the relative values matter. If only
            two arrays are provided they must be normalized to
            match `ternary<i>.sum`.
        cliponaxis
            Determines whether or not markers and text nodes are
            clipped about the subplot axes. To show markers and
            text nodes above axis lines and tick labels, make sure
            to set `xaxis.layer` and `yaxis.layer` to *below
            traces*.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        csrc
            Sets the source reference on plot.ly for  c .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". scatterternary has a subset
            of the options available to scatter. "toself" connects
            the endpoints of the trace (or each segment of the
            trace if it has gaps) into a closed shape. "tonext"
            fills the space between two traces if one completely
            encloses the other (eg consecutive contour lines), and
            behaves like "toself" if there is no trace before it.
            "tonext" should not be used if one trace does not
            enclose the other.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatterternary.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (a,b,c)
            point. If a single string, the same string appears over
            all the data points. If an array of strings, the items
            are mapped in order to the the data points in (a,b,c).
            To be seen, trace `hoverinfo` must contain a "text"
            flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatterternary.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatterternary.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scatterternary.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatterternary.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a ternary subplot. If "ternary" (the default
            value), the data refer to `layout.ternary`. If
            "ternary2", the data refer to `layout.ternary2`, and so
            on.
        sum
            The number each triplet should sum to, if only two of
            `a`, `b`, and `c` are provided. This overrides
            `ternary<i>.sum` to normalize this specific trace, but
            does not affect the values displayed on the axes. 0 (or
            missing) means to use ternary<i>.sum
        text
            Sets text elements associated with each (a,b,c) point.
            If a single string, the same string appears over all
            the data points. If an array of strings, the items are
            mapped in order to the the data points in (a,b,c). If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `a`, `b`, `c`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatterternary.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   K  s     yz!Scatterternary._prop_descriptionsNc1       5         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|1
dd| _ddlm}2 |2 | jd< |2 | jd	< |2 | jd
< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2  | jd< |2! | jd< |2" | jd< |2# | jd< |2$ | jd< |2% | jd< |2& | jd< |2' | jd < |2( | jd!< |2) | jd"< |2* | jd#< |2+ | jd$< |2, | jd%< |2- | jd&< |2. | jd'< |2/ | jd(< |20 | jd)< |21 | jd*< |22 | jd+< |23 | jd,< |24 | jd-< |25 | jd.< |26 | jd/< |27 | jd0< |28 | jd1< |29 | jd2< |2: | jd3< |2; | jd4< |2< | jd5< |2= | jd6< |
dd}3|dk	r|n|3| d< |
d	d}3|dk	r:|n|3| d	< |
d
d}3|dk	r\|n|3| d
< |
dd}3|dk	r~|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|	dk	r|	n|3| d< |
dd}3|
dk	r(|
n|3| d< |
dd}3|dk	rJ|n|3| d< |
dd}3|dk	rl|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r8|n|3| d< |
dd}3|dk	rZ|n|3| d< |
dd}3|dk	r||n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r&|n|3| d< |
d d}3|dk	rH|n|3| d < |
d!d}3|dk	rj|n|3| d!< |
d"d}3|dk	r|n|3| d"< |
d#d}3|dk	r|n|3| d#< |
d$d}3|dk	r|n|3| d$< |
d%d}3|dk	r|n|3| d%< |
d&d}3| dk	r| n|3| d&< |
d'd}3|!dk	r6|!n|3| d'< |
d(d}3|"dk	rX|"n|3| d(< |
d)d}3|#dk	rz|#n|3| d)< |
d*d}3|$dk	r|$n|3| d*< |
d+d}3|%dk	r|%n|3| d+< |
d,d}3|&dk	r|&n|3| d,< |
d-d}3|'dk	r|'n|3| d-< |
d.d}3|(dk	r$|(n|3| d.< |
d/d}3|)dk	rF|)n|3| d/< |
d0d}3|*dk	rh|*n|3| d0< |
d1d}3|+dk	r|+n|3| d1< |
d2d}3|,dk	r|,n|3| d2< |
d3d}3|-dk	r|-n|3| d3< |
d4d}3|.dk	r|.n|3| d4< |
d5d}3|/dk		r|/n|3| d5< |
d6d}3|0dk		r4|0n|3| d6< dd7l>m?}4 d| j@d8< |4d8ddd9| jd8< |
d8d | jAf t|f|1 d| _dS ):a3  
        Construct a new Scatterternary object
        
        Provides similar functionality to the "scatter" type but on a
        ternary phase diagram. The data is provided by at least two
        arrays out of `a`, `b`, `c` triplets.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.Scatterternary`
        a
            Sets the quantity of component `a` in each data point.
            If `a`, `b`, and `c` are all provided, they need not be
            normalized, only the relative values matter. If only
            two arrays are provided they must be normalized to
            match `ternary<i>.sum`.
        asrc
            Sets the source reference on plot.ly for  a .
        b
            Sets the quantity of component `a` in each data point.
            If `a`, `b`, and `c` are all provided, they need not be
            normalized, only the relative values matter. If only
            two arrays are provided they must be normalized to
            match `ternary<i>.sum`.
        bsrc
            Sets the source reference on plot.ly for  b .
        c
            Sets the quantity of component `a` in each data point.
            If `a`, `b`, and `c` are all provided, they need not be
            normalized, only the relative values matter. If only
            two arrays are provided they must be normalized to
            match `ternary<i>.sum`.
        cliponaxis
            Determines whether or not markers and text nodes are
            clipped about the subplot axes. To show markers and
            text nodes above axis lines and tick labels, make sure
            to set `xaxis.layer` and `yaxis.layer` to *below
            traces*.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        csrc
            Sets the source reference on plot.ly for  c .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". scatterternary has a subset
            of the options available to scatter. "toself" connects
            the endpoints of the trace (or each segment of the
            trace if it has gaps) into a closed shape. "tonext"
            fills the space between two traces if one completely
            encloses the other (eg consecutive contour lines), and
            behaves like "toself" if there is no trace before it.
            "tonext" should not be used if one trace does not
            enclose the other.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatterternary.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (a,b,c)
            point. If a single string, the same string appears over
            all the data points. If an array of strings, the items
            are mapped in order to the the data points in (a,b,c).
            To be seen, trace `hoverinfo` must contain a "text"
            flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatterternary.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatterternary.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scatterternary.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatterternary.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a ternary subplot. If "ternary" (the default
            value), the data refer to `layout.ternary`. If
            "ternary2", the data refer to `layout.ternary2`, and so
            on.
        sum
            The number each triplet should sum to, if only two of
            `a`, `b`, and `c` are provided. This overrides
            `ternary<i>.sum` to normalize this specific trace, but
            does not affect the values displayed on the axes. 0 (or
            missing) means to use ternary<i>.sum
        text
            Sets text elements associated with each (a,b,c) point.
            If a single string, the same string appears over all
            the data points. If an array of strings, the items are
            mapped in order to the the data points in (a,b,c). If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `a`, `b`, `c`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatterternary.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Scatterternary
        scatterternaryNzThe first argument to the plotly.graph_objs.Scatterternary 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scatterternary`rJ   Fr   )rN  rD  rE  rF  rG  rH  r
   r  rI  r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   rL  rM  r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   )rK   rD   )rL   rM   r   )BrN   rC  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rN  
AValidatorr[   AsrcValidator
BValidatorBsrcValidatorZ
CValidatorr]   r  ZCsrcValidatorr`   ra   FillValidatorr   re   rf   rg   r   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   ModeValidatorrt   rx   r   r{   r|   r}   SubplotValidatorZSumValidatorr~   r   r   r   r   r   r   r   r   r   r   r   rK   rE   r   )5r   r   rD  rE  rF  rG  rH  r
   r  rI  r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   rL  rM  r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r   Zv_scatterternaryr   rK   )rQ   r   r   rO   L  sB     =


zScatterternary.__init__)0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)9r   r   r   r   rD  r   rE  rF  rG  rH  r
   r  rI  r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   rL  rM  r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   rC  F  s&  75#% 1 }                                               rC  c            0       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4edd Z5edd Z6d fdd	Z7  Z8S )Scatterpolarglc             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  N  s    zScatterpolargl.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  N  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   N  s    zScatterpolargl.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   N  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   N  s    zScatterpolargl.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   N  s    c             C   s   | d S )z
        Sets the r coordinate step.
    
        The 'dr' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        drr   )r   r   r   r   rW  N  s    zScatterpolargl.drc             C   s   || d< d S )NrW  r   )r   r   r   r   r   rW  N  s    c             C   s   | d S )a@  
        Sets the theta coordinate step. By default, the `dtheta` step
        equals the subplot's period divided by the length of the `r`
        coordinates.
    
        The 'dtheta' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        dthetar   )r   r   r   r   rX  N  s    zScatterpolargl.dthetac             C   s   || d< d S )NrX  r   )r   r   r   r   r   rX  N  s    c             C   s   | d S )a"  
        Sets the area to fill with a solid color. Defaults to "none"
        unless this trace is stacked, then it gets "tonexty"
        ("tonextx") if `orientation` is "v" ("h") Use with `fillcolor`
        if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0
        respectively. "tonextx" and "tonexty" fill between the
        endpoints of this trace and the endpoints of the trace before
        it, connecting those endpoints with straight lines (to make a
        stacked area graph); if there is no trace before it, they
        behave like "tozerox" and "tozeroy". "toself" connects the
        endpoints of the trace (or each segment of the trace if it has
        gaps) into a closed shape. "tonext" fills the space between two
        traces if one completely encloses the other (eg consecutive
        contour lines), and behaves like "toself" if there is no trace
        before it. "tonext" should not be used if one trace does not
        enclose the other. Traces in a `stackgroup` will only fill to
        (or be filled to) other traces in the same group. With multiple
        `stackgroup`s or some traces stacked and some not, if fill-
        linked traces are not already consecutive, the later ones will
        be pushed down in the drawing order.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'tozeroy', 'tozerox', 'tonexty', 'tonextx',
                'toself', 'tonext']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ  O  s     zScatterpolargl.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  $O  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   *O  s    5zScatterpolargl.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   aO  s    c             C   s   | d S )ac  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['r', 'theta', 'text', 'name'] joined with '+' characters
            (e.g. 'r+theta')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   gO  s    zScatterpolargl.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {O  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   O  s    zScatterpolargl.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Hoverlabel
        r   r   )r   r   r   r   r   O  s    3zScatterpolargl.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   O  s    !zScatterpolargl.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   O  s    zScatterpolargl.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P  s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   P  s    zScatterpolargl.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   !P  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   'P  s    zScatterpolargl.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5P  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ;P  s    zScatterpolargl.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   KP  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   QP  s    zScatterpolargl.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _P  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   eP  s    zScatterpolargl.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   vP  s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the style of the lines.
                shape
                    Determines the line shape. The values
                    correspond to step-wise line shapes.
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Line
        r   r   )r   r   r   r   r   |P  s    zScatterpolargl.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scatterpolargl.mar
                    ker.ColorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.scatterpolargl.mar
                    ker.Line` instance or dict with compatible
                    properties
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Marker
        r   r   )r   r   r   r   r   P  s     zScatterpolargl.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   +Q  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   1Q  s    zScatterpolargl.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   GQ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   MQ  s    zScatterpolargl.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   [Q  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  aQ  s    zScatterpolargl.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  wQ  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   }Q  s    zScatterpolargl.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   Q  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   Q  s    zScatterpolargl.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   Q  s    c             C   s   | d S )z
        Sets the radial coordinates
    
        The 'r' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rr   )r   r   r   r   rY  Q  s    zScatterpolargl.rc             C   s   || d< d S )NrY  r   )r   r   r   r   r   rY  Q  s    c             C   s   | d S )a	  
        Alternate to `r`. Builds a linear space of r coordinates. Use
        with `dr` where `r0` is the starting coordinate and `dr` the
        step.
    
        The 'r0' property accepts values of any type

        Returns
        -------
        Any
        r0r   )r   r   r   r   rZ  Q  s    zScatterpolargl.r0c             C   s   || d< d S )NrZ  r   )r   r   r   r   r   rZ  Q  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  r .
    
        The 'rsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rsrcr   )r   r   r   r   r[  Q  s    zScatterpolargl.rsrcc             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  Q  s    c             C   s   | d S )a,  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatterpolargl.sel
                    ected.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scatterpolargl.sel
                    ected.Textfont` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Selected
        r   r   )r   r   r   r   r   Q  s    zScatterpolargl.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   R  s    zScatterpolargl.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   R  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   R  s    zScatterpolargl.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   +R  s    c             C   s   | d S )av  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Stream
        r,   r   )r   r   r   r   r,   1R  s    zScatterpolargl.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   LR  s    c             C   s   | d S )a  
        Sets a reference between this trace's data coordinates and a
        polar subplot. If "polar" (the default value), the data refer
        to `layout.polar`. If "polar2", the data refer to
        `layout.polar2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'polar', that may be specified as the string 'polar'
        optionally followed by an integer >= 1
        (e.g. 'polar', 'polar1', 'polar2', 'polar3', etc.)

        Returns
        -------
        str
        rL  r   )r   r   r   r   rL  RR  s    zScatterpolargl.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  eR  s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   kR  s    zScatterpolargl.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   R  s    c             C   s   | d S )a?  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Textfont
        r/   r   )r   r   r   r   r/   R  s    /zScatterpolargl.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   R  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   R  s    zScatterpolargl.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   R  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   R  s    zScatterpolargl.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   R  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   R  s    zScatterpolargl.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   R  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `r`, `theta` and `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   R  s    zScatterpolargl.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   S  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   !S  s    zScatterpolargl.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   /S  s    c             C   s   | d S )z
        Sets the angular coordinates
    
        The 'theta' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        thetar   )r   r   r   r   r\  5S  s    zScatterpolargl.thetac             C   s   || d< d S )Nr\  r   )r   r   r   r   r   r\  CS  s    c             C   s   | d S )a!  
        Alternate to `theta`. Builds a linear space of theta
        coordinates. Use with `dtheta` where `theta0` is the starting
        coordinate and `dtheta` the step.
    
        The 'theta0' property accepts values of any type

        Returns
        -------
        Any
        theta0r   )r   r   r   r   r]  IS  s    zScatterpolargl.theta0c             C   s   || d< d S )Nr]  r   )r   r   r   r   r   r]  XS  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  theta .
    
        The 'thetasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        thetasrcr   )r   r   r   r   r^  ^S  s    zScatterpolargl.thetasrcc             C   s   || d< d S )Nr^  r   )r   r   r   r   r   r^  lS  s    c             C   s   | d S )aY  
        Sets the unit of input "theta" values. Has an effect only when
        on "linear" angular axes.
    
        The 'thetaunit' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['radians', 'degrees', 'gradians']

        Returns
        -------
        Any
        	thetaunitr   )r   r   r   r   r_  rS  s    zScatterpolargl.thetaunitc             C   s   || d< d S )Nr_  r   )r   r   r   r   r   r_  S  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   S  s    zScatterpolargl.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   S  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   S  s    zScatterpolargl.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   S  s    c             C   s   | d S )a:  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolargl.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatterpolargl.uns
                    elected.Marker` instance or dict with
                    compatible properties
                textfont
                    :class:`plotly.graph_objects.scatterpolargl.uns
                    elected.Textfont` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.scatterpolargl.Unselected
        r   r   )r   r   r   r   r   S  s    zScatterpolargl.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   S  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   S  s    zScatterpolargl.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   S  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   S  s    zScatterpolargl.typec             C   s   dS )NrF   r   )r   r   r   r   rG   S  s    zScatterpolargl._parent_path_strc             C   s   dS )Na/          connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dr
            Sets the r coordinate step.
        dtheta
            Sets the theta coordinate step. By default, the
            `dtheta` step equals the subplot's period divided by
            the length of the `r` coordinates.
        fill
            Sets the area to fill with a solid color. Defaults to
            "none" unless this trace is stacked, then it gets
            "tonexty" ("tonextx") if `orientation` is "v" ("h") Use
            with `fillcolor` if not "none". "tozerox" and "tozeroy"
            fill to x=0 and y=0 respectively. "tonextx" and
            "tonexty" fill between the endpoints of this trace and
            the endpoints of the trace before it, connecting those
            endpoints with straight lines (to make a stacked area
            graph); if there is no trace before it, they behave
            like "tozerox" and "tozeroy". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other. Traces in a `stackgroup` will only fill to (or
            be filled to) other traces in the same group. With
            multiple `stackgroup`s or some traces stacked and some
            not, if fill-linked traces are not already consecutive,
            the later ones will be pushed down in the drawing
            order.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatterpolargl.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatterpolargl.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatterpolargl.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        r
            Sets the radial coordinates
        r0
            Alternate to `r`. Builds a linear space of r
            coordinates. Use with `dr` where `r0` is the starting
            coordinate and `dr` the step.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.scatterpolargl.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatterpolargl.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a polar subplot. If "polar" (the default value),
            the data refer to `layout.polar`. If "polar2", the data
            refer to `layout.polar2`, and so on.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `r`, `theta`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        theta
            Sets the angular coordinates
        theta0
            Alternate to `theta`. Builds a linear space of theta
            coordinates. Use with `dtheta` where `theta0` is the
            starting coordinate and `dtheta` the step.
        thetasrc
            Sets the source reference on plot.ly for  theta .
        thetaunit
            Sets the unit of input "theta" values. Has an effect
            only when on "linear" angular axes.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatterpolargl.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   T  s     sz!Scatterpolargl._prop_descriptionsNc1       5         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|1
dd| _ddlm}2 |2 | jd< |2 | jd	< |2 | jd
< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2  | jd< |2! | jd< |2" | jd< |2# | jd< |2$ | jd< |2% | jd< |2& | jd< |2' | jd < |2( | jd!< |2) | jd"< |2* | jd#< |2+ | jd$< |2, | jd%< |2- | jd&< |2. | jd'< |2/ | jd(< |20 | jd)< |21 | jd*< |22 | jd+< |23 | jd,< |24 | jd-< |25 | jd.< |26 | jd/< |27 | jd0< |28 | jd1< |29 | jd2< |2: | jd3< |2; | jd4< |2< | jd5< |2= | jd6< |
dd}3|dk	r|n|3| d< |
d	d}3|dk	r:|n|3| d	< |
d
d}3|dk	r\|n|3| d
< |
dd}3|dk	r~|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|	dk	r|	n|3| d< |
dd}3|
dk	r(|
n|3| d< |
dd}3|dk	rJ|n|3| d< |
dd}3|dk	rl|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r8|n|3| d< |
dd}3|dk	rZ|n|3| d< |
dd}3|dk	r||n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r&|n|3| d< |
d d}3|dk	rH|n|3| d < |
d!d}3|dk	rj|n|3| d!< |
d"d}3|dk	r|n|3| d"< |
d#d}3|dk	r|n|3| d#< |
d$d}3|dk	r|n|3| d$< |
d%d}3|dk	r|n|3| d%< |
d&d}3| dk	r| n|3| d&< |
d'd}3|!dk	r6|!n|3| d'< |
d(d}3|"dk	rX|"n|3| d(< |
d)d}3|#dk	rz|#n|3| d)< |
d*d}3|$dk	r|$n|3| d*< |
d+d}3|%dk	r|%n|3| d+< |
d,d}3|&dk	r|&n|3| d,< |
d-d}3|'dk	r|'n|3| d-< |
d.d}3|(dk	r$|(n|3| d.< |
d/d}3|)dk	rF|)n|3| d/< |
d0d}3|*dk	rh|*n|3| d0< |
d1d}3|+dk	r|+n|3| d1< |
d2d}3|,dk	r|,n|3| d2< |
d3d}3|-dk	r|-n|3| d3< |
d4d}3|.dk	r|.n|3| d4< |
d5d}3|/dk		r|/n|3| d5< |
d6d}3|0dk		r4|0n|3| d6< dd7l>m?}4 d| j@d8< |4d8ddd9| jd8< |
d8d | jAf t|f|1 d| _dS ):a2  
        Construct a new Scatterpolargl object
        
        The scatterpolargl trace type encompasses line charts, scatter
        charts, and bubble charts in polar coordinates using the WebGL
        plotting engine. The data visualized as scatter point or lines
        is set in `r` (radial) and `theta` (angular) coordinates Bubble
        charts are achieved by setting `marker.size` and/or
        `marker.color` to numerical arrays.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.Scatterpolargl`
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dr
            Sets the r coordinate step.
        dtheta
            Sets the theta coordinate step. By default, the
            `dtheta` step equals the subplot's period divided by
            the length of the `r` coordinates.
        fill
            Sets the area to fill with a solid color. Defaults to
            "none" unless this trace is stacked, then it gets
            "tonexty" ("tonextx") if `orientation` is "v" ("h") Use
            with `fillcolor` if not "none". "tozerox" and "tozeroy"
            fill to x=0 and y=0 respectively. "tonextx" and
            "tonexty" fill between the endpoints of this trace and
            the endpoints of the trace before it, connecting those
            endpoints with straight lines (to make a stacked area
            graph); if there is no trace before it, they behave
            like "tozerox" and "tozeroy". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other. Traces in a `stackgroup` will only fill to (or
            be filled to) other traces in the same group. With
            multiple `stackgroup`s or some traces stacked and some
            not, if fill-linked traces are not already consecutive,
            the later ones will be pushed down in the drawing
            order.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatterpolargl.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatterpolargl.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatterpolargl.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        r
            Sets the radial coordinates
        r0
            Alternate to `r`. Builds a linear space of r
            coordinates. Use with `dr` where `r0` is the starting
            coordinate and `dr` the step.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.scatterpolargl.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatterpolargl.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a polar subplot. If "polar" (the default value),
            the data refer to `layout.polar`. If "polar2", the data
            refer to `layout.polar2`, and so on.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `r`, `theta`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        theta
            Sets the angular coordinates
        theta0
            Alternate to `theta`. Builds a linear space of theta
            coordinates. Use with `dtheta` where `theta0` is the
            starting coordinate and `dtheta` the step.
        thetasrc
            Sets the source reference on plot.ly for  theta .
        thetaunit
            Sets the unit of input "theta" values. Has an effect
            only when on "linear" angular axes.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatterpolargl.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Scatterpolargl
        scatterpolarglNzThe first argument to the plotly.graph_objs.Scatterpolargl 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scatterpolargl`rJ   Fr   )r`  r  r   r   rW  rX  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r/   r1   r2   r3   r4   r5   r\  r]  r^  r_  r7   r8   r   r9   )rK   rD   )rL   rM   r   )BrN   rV  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r`  r  r[   r`   ra   DrValidatorDthetaValidatorrS  r   re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rT  rt   rx   
RValidatorR0ValidatorRsrcValidatorr   r{   r|   r}   rU  r~   r   r   r   r   r   r   ThetaValidatorTheta0ValidatorThetasrcValidatorThetaunitValidatorr   r   r   r   r   rK   rE   r   )5r   r   r  r   r   rW  rX  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r/   r1   r2   r3   r4   r5   r\  r]  r^  r_  r7   r8   r   r9   r   Zv_scatterpolarglr   rK   )rQ   r   r   rO   T  sB     :


zScatterpolargl.__init__)0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)9r   r   r   r   r  r   r   r   rW  rX  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r/   r1   r2   r3   r4   r5   r\  r]  r^  r_  r7   r8   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   rV  N  s&  "75# 1 w                                               rV  c            2       s<  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6edd Z7edd Z8d fdd	Z9  Z:S )Scatterpolarc             C   s   | d S )a  
        Determines whether or not markers and text nodes are clipped
        about the subplot axes. To show markers and text nodes above
        axis lines and tick labels, make sure to set `xaxis.layer` and
        `yaxis.layer` to *below traces*.
    
        The 'cliponaxis' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
   r   )r   r   r   r   r
   V  s    zScatterpolar.cliponaxisc             C   s   || d< d S )Nr
   r   )r   r   r   r   r   r
   W  s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  W  s    zScatterpolar.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  $W  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   *W  s    zScatterpolar.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ;W  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   AW  s    zScatterpolar.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   OW  s    c             C   s   | d S )z
        Sets the r coordinate step.
    
        The 'dr' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rW  r   )r   r   r   r   rW  UW  s    zScatterpolar.drc             C   s   || d< d S )NrW  r   )r   r   r   r   r   rW  cW  s    c             C   s   | d S )a@  
        Sets the theta coordinate step. By default, the `dtheta` step
        equals the subplot's period divided by the length of the `r`
        coordinates.
    
        The 'dtheta' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rX  r   )r   r   r   r   rX  iW  s    zScatterpolar.dthetac             C   s   || d< d S )NrX  r   )r   r   r   r   r   rX  yW  s    c             C   s   | d S )a  
        Sets the area to fill with a solid color. Use with `fillcolor`
        if not "none". scatterpolar has a subset of the options
        available to scatter. "toself" connects the endpoints of the
        trace (or each segment of the trace if it has gaps) into a
        closed shape. "tonext" fills the space between two traces if
        one completely encloses the other (eg consecutive contour
        lines), and behaves like "toself" if there is no trace before
        it. "tonext" should not be used if one trace does not enclose
        the other.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'toself', 'tonext']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ  W  s    zScatterpolar.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  W  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   W  s    5zScatterpolar.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   W  s    c             C   s   | d S )ac  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['r', 'theta', 'text', 'name'] joined with '+' characters
            (e.g. 'r+theta')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   W  s    zScatterpolar.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   W  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   W  s    zScatterpolar.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scatterpolar.Hoverlabel
        r   r   )r   r   r   r   r   X  s    3zScatterpolar.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   <X  s    c             C   s   | d S )a  
        Do the hover effects highlight individual points (markers or
        line points) or do they highlight filled regions? If the fill
        is "toself" or "tonext" and there are no markers or text, then
        the default is "fills", otherwise it is "points".
    
        The 'hoveron' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['points', 'fills'] joined with '+' characters
            (e.g. 'points+fills')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   BX  s    zScatterpolar.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   UX  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   [X  s    !zScatterpolar.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ~X  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   X  s    zScatterpolar.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   X  s    zScatterpolar.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   X  s    zScatterpolar.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   X  s    zScatterpolar.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   X  s    zScatterpolar.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   X  s    zScatterpolar.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Y  s    c             C   s   | d S )a(  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                shape
                    Determines the line shape. With "spline" the
                    lines are drawn using spline interpolation. The
                    other available values correspond to step-wise
                    line shapes.
                smoothing
                    Has an effect only if `shape` is set to
                    "spline" Sets the amount of smoothing. 0
                    corresponds to no smoothing (equivalent to a
                    "linear" shape).
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scatterpolar.Line
        r   r   )r   r   r   r   r   Y  s    #zScatterpolar.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ,Y  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scatterpolar.marke
                    r.ColorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                gradient
                    :class:`plotly.graph_objects.scatterpolar.marke
                    r.Gradient` instance or dict with compatible
                    properties
                line
                    :class:`plotly.graph_objects.scatterpolar.marke
                    r.Line` instance or dict with compatible
                    properties
                maxdisplayed
                    Sets a maximum number of points to be drawn on
                    the graph. 0 corresponds to no limit.
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scatterpolar.Marker
        r   r   )r   r   r   r   r   2Y  s     zScatterpolar.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Y  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   Y  s    zScatterpolar.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   Y  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   Y  s    zScatterpolar.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   Y  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  Y  s    zScatterpolar.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  Z  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   Z  s    zScatterpolar.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   )Z  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   /Z  s    zScatterpolar.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   =Z  s    c             C   s   | d S )z
        Sets the radial coordinates
    
        The 'r' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rY  r   )r   r   r   r   rY  CZ  s    zScatterpolar.rc             C   s   || d< d S )NrY  r   )r   r   r   r   r   rY  QZ  s    c             C   s   | d S )a	  
        Alternate to `r`. Builds a linear space of r coordinates. Use
        with `dr` where `r0` is the starting coordinate and `dr` the
        step.
    
        The 'r0' property accepts values of any type

        Returns
        -------
        Any
        rZ  r   )r   r   r   r   rZ  WZ  s    zScatterpolar.r0c             C   s   || d< d S )NrZ  r   )r   r   r   r   r   rZ  fZ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  r .
    
        The 'rsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r[  r   )r   r   r   r   r[  lZ  s    zScatterpolar.rsrcc             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  zZ  s    c             C   s   | d S )a$  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatterpolar.selec
                    ted.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scatterpolar.selec
                    ted.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scatterpolar.Selected
        r   r   )r   r   r   r   r   Z  s    zScatterpolar.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Z  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   Z  s    zScatterpolar.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   Z  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   Z  s    zScatterpolar.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   Z  s    c             C   s   | d S )ar  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scatterpolar.Stream
        r,   r   )r   r   r   r   r,   Z  s    zScatterpolar.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   Z  s    c             C   s   | d S )a  
        Sets a reference between this trace's data coordinates and a
        polar subplot. If "polar" (the default value), the data refer
        to `layout.polar`. If "polar2", the data refer to
        `layout.polar2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'polar', that may be specified as the string 'polar'
        optionally followed by an integer >= 1
        (e.g. 'polar', 'polar1', 'polar2', 'polar3', etc.)

        Returns
        -------
        str
        rL  r   )r   r   r   r   rL  Z  s    zScatterpolar.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  [  s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   [  s    zScatterpolar.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   [  s    c             C   s   | d S )a;  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scatterpolar.Textfont
        r/   r   )r   r   r   r   r/   "[  s    /zScatterpolar.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   S[  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   Y[  s    zScatterpolar.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   l[  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   r[  s    zScatterpolar.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   [  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   [  s    zScatterpolar.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   [  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `r`, `theta` and `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   [  s    zScatterpolar.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   [  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   [  s    zScatterpolar.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   [  s    c             C   s   | d S )z
        Sets the angular coordinates
    
        The 'theta' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r\  r   )r   r   r   r   r\  [  s    zScatterpolar.thetac             C   s   || d< d S )Nr\  r   )r   r   r   r   r   r\  [  s    c             C   s   | d S )a!  
        Alternate to `theta`. Builds a linear space of theta
        coordinates. Use with `dtheta` where `theta0` is the starting
        coordinate and `dtheta` the step.
    
        The 'theta0' property accepts values of any type

        Returns
        -------
        Any
        r]  r   )r   r   r   r   r]  [  s    zScatterpolar.theta0c             C   s   || d< d S )Nr]  r   )r   r   r   r   r   r]  [  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  theta .
    
        The 'thetasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r^  r   )r   r   r   r   r^  [  s    zScatterpolar.thetasrcc             C   s   || d< d S )Nr^  r   )r   r   r   r   r   r^  \  s    c             C   s   | d S )aY  
        Sets the unit of input "theta" values. Has an effect only when
        on "linear" angular axes.
    
        The 'thetaunit' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['radians', 'degrees', 'gradians']

        Returns
        -------
        Any
        r_  r   )r   r   r   r   r_  \  s    zScatterpolar.thetaunitc             C   s   || d< d S )Nr_  r   )r   r   r   r   r   r_  \  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   $\  s    zScatterpolar.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   4\  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   :\  s    zScatterpolar.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   U\  s    c             C   s   | d S )a2  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatterpolar.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatterpolar.unsel
                    ected.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scatterpolar.unsel
                    ected.Textfont` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.scatterpolar.Unselected
        r   r   )r   r   r   r   r   [\  s    zScatterpolar.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   u\  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   {\  s    zScatterpolar.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   \  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   \  s    zScatterpolar.typec             C   s   dS )NrF   r   )r   r   r   r   rG   \  s    zScatterpolar._parent_path_strc             C   s   dS )Na'/          cliponaxis
            Determines whether or not markers and text nodes are
            clipped about the subplot axes. To show markers and
            text nodes above axis lines and tick labels, make sure
            to set `xaxis.layer` and `yaxis.layer` to *below
            traces*.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dr
            Sets the r coordinate step.
        dtheta
            Sets the theta coordinate step. By default, the
            `dtheta` step equals the subplot's period divided by
            the length of the `r` coordinates.
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". scatterpolar has a subset of
            the options available to scatter. "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatterpolar.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatterpolar.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatterpolar.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        r
            Sets the radial coordinates
        r0
            Alternate to `r`. Builds a linear space of r
            coordinates. Use with `dr` where `r0` is the starting
            coordinate and `dr` the step.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.scatterpolar.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatterpolar.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a polar subplot. If "polar" (the default value),
            the data refer to `layout.polar`. If "polar2", the data
            refer to `layout.polar2`, and so on.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `r`, `theta`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        theta
            Sets the angular coordinates
        theta0
            Alternate to `theta`. Builds a linear space of theta
            coordinates. Use with `dtheta` where `theta0` is the
            starting coordinate and `dtheta` the step.
        thetasrc
            Sets the source reference on plot.ly for  theta .
        thetaunit
            Sets the unit of input "theta" values. Has an effect
            only when on "linear" angular axes.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatterpolar.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   \  s     szScatterpolar._prop_descriptionsNc3       7         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|3
dd| _ddlm}4 |4 | jd< |4 | jd	< |4 | jd
< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4  | jd< |4! | jd< |4" | jd< |4# | jd< |4$ | jd< |4% | jd< |4& | jd< |4' | jd < |4( | jd!< |4) | jd"< |4* | jd#< |4+ | jd$< |4, | jd%< |4- | jd&< |4. | jd'< |4/ | jd(< |40 | jd)< |41 | jd*< |42 | jd+< |43 | jd,< |44 | jd-< |45 | jd.< |46 | jd/< |47 | jd0< |48 | jd1< |49 | jd2< |4: | jd3< |4; | jd4< |4< | jd5< |4= | jd6< |4> | jd7< |4? | jd8< |
dd}5|dk	r4|n|5| d< |
d	d}5|dk	rV|n|5| d	< |
d
d}5|dk	rx|n|5| d
< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r |n|5| d< |
dd}5|	dk	r"|	n|5| d< |
dd}5|
dk	rD|
n|5| d< |
dd}5|dk	rf|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r2|n|5| d< |
dd}5|dk	rT|n|5| d< |
dd}5|dk	rv|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r |n|5| d< |
dd}5|dk	rB|n|5| d< |
d d}5|dk	rd|n|5| d < |
d!d}5|dk	r|n|5| d!< |
d"d}5|dk	r|n|5| d"< |
d#d}5|dk	r|n|5| d#< |
d$d}5|dk	r|n|5| d$< |
d%d}5|dk	r|n|5| d%< |
d&d}5| dk	r0| n|5| d&< |
d'd}5|!dk	rR|!n|5| d'< |
d(d}5|"dk	rt|"n|5| d(< |
d)d}5|#dk	r|#n|5| d)< |
d*d}5|$dk	r|$n|5| d*< |
d+d}5|%dk	r|%n|5| d+< |
d,d}5|&dk	r|&n|5| d,< |
d-d}5|'dk	r|'n|5| d-< |
d.d}5|(dk	r@|(n|5| d.< |
d/d}5|)dk	rb|)n|5| d/< |
d0d}5|*dk	r|*n|5| d0< |
d1d}5|+dk	r|+n|5| d1< |
d2d}5|,dk	r|,n|5| d2< |
d3d}5|-dk	r|-n|5| d3< |
d4d}5|.dk		r|.n|5| d4< |
d5d}5|/dk		r.|/n|5| d5< |
d6d}5|0dk		rP|0n|5| d6< |
d7d}5|1dk		rr|1n|5| d7< |
d8d}5|2dk		r|2n|5| d8< dd9l@mA}6 d| jBd:< |6d:ddd;| jd:< |
d:d | jCf t|f|3 d| _dS )<a	2  
        Construct a new Scatterpolar object
        
        The scatterpolar trace type encompasses line charts, scatter
        charts, text charts, and bubble charts in polar coordinates.
        The data visualized as scatter point or lines is set in `r`
        (radial) and `theta` (angular) coordinates Text (appearing
        either on the chart or on hover only) is via `text`. Bubble
        charts are achieved by setting `marker.size` and/or
        `marker.color` to numerical arrays.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scatterpolar`
        cliponaxis
            Determines whether or not markers and text nodes are
            clipped about the subplot axes. To show markers and
            text nodes above axis lines and tick labels, make sure
            to set `xaxis.layer` and `yaxis.layer` to *below
            traces*.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dr
            Sets the r coordinate step.
        dtheta
            Sets the theta coordinate step. By default, the
            `dtheta` step equals the subplot's period divided by
            the length of the `r` coordinates.
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". scatterpolar has a subset of
            the options available to scatter. "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatterpolar.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatterpolar.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatterpolar.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        r
            Sets the radial coordinates
        r0
            Alternate to `r`. Builds a linear space of r
            coordinates. Use with `dr` where `r0` is the starting
            coordinate and `dr` the step.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.scatterpolar.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatterpolar.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a polar subplot. If "polar" (the default value),
            the data refer to `layout.polar`. If "polar2", the data
            refer to `layout.polar2`, and so on.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `r`, `theta`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        theta
            Sets the angular coordinates
        theta0
            Alternate to `theta`. Builds a linear space of theta
            coordinates. Use with `dtheta` where `theta0` is the
            starting coordinate and `dtheta` the step.
        thetasrc
            Sets the source reference on plot.ly for  theta .
        thetaunit
            Sets the unit of input "theta" values. Has an effect
            only when on "linear" angular axes.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatterpolar.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Scatterpolar
        scatterpolarNzThe first argument to the plotly.graph_objs.Scatterpolar 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scatterpolar`rJ   Fr   )rk  r
   r  r   r   rW  rX  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r/   r1   r2   r3   r4   r5   r\  r]  r^  r_  r7   r8   r   r9   )rK   rD   )rL   rM   r   )DrN   rj  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rk  r]   r[   r  r`   ra   ra  rb  rS  r   re   rf   rg   r   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rT  rt   rx   rc  rd  re  r   r{   r|   r}   rU  r~   r   r   r   r   r   r   rf  rg  rh  ri  r   r   r   r   r   rK   rE   r   )7r   r   r
   r  r   r   rW  rX  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r/   r1   r2   r3   r4   r5   r\  r]  r^  r_  r7   r8   r   r9   r   Zv_scatterpolarr   rK   )rQ   r   r   rO   ]  sN     <


zScatterpolar.__init__)2NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN);r   r   r   r   r
   r   r  r   r   rW  rX  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r/   r1   r2   r3   r4   r5   r\  r]  r^  r_  r7   r8   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   rj  V  s2  75#% 1 w                                                 rj  c            +       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/edd Z0edd Z1d fdd	Z2  Z3S )Scattermapboxc             C   s   | d S )a  
        Determines if this scattermapbox trace's layers are to be
        inserted before the layer with the specified ID. By default,
        scattermapbox layers are inserted above all the base layers. To
        place the scattermapbox layers above every other layer, set
        `below` to "''".
    
        The 'below' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        belowr   )r   r   r   r   rm  _  s    zScattermapbox.belowc             C   s   || d< d S )Nrm  r   )r   r   r   r   r   rm  _  s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  _  s    zScattermapbox.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  _  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   _  s    zScattermapbox.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   _  s    zScattermapbox.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _  s    c             C   s   | d S )a  
        Sets the area to fill with a solid color. Use with `fillcolor`
        if not "none". "toself" connects the endpoints of the trace (or
        each segment of the trace if it has gaps) into a closed shape.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'toself']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ  _  s    zScattermapbox.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  `  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   `  s    5zScattermapbox.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   E`  s    c             C   s   | d S )ac  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lon', 'lat', 'text', 'name'] joined with '+' characters
            (e.g. 'lon+lat')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   K`  s    zScattermapbox.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _`  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   e`  s    zScattermapbox.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   s`  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scattermapbox.Hoverlabel
        r   r   )r   r   r   r   r   y`  s    3zScattermapbox.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   `  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   `  s    !zScattermapbox.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   `  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   `  s    zScattermapbox.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   `  s    c             C   s   | d S )ai  
        Sets hover text elements associated with each (lon,lat) pair If
        a single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (lon,lat) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   `  s    zScattermapbox.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   a  s    zScattermapbox.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   a  s    zScattermapbox.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   /a  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   5a  s    zScattermapbox.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Ca  s    c             C   s   | d S )z
        Sets the latitude coordinates (in degrees North).
    
        The 'lat' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        latr   )r   r   r   r   rn  Ia  s    zScattermapbox.latc             C   s   || d< d S )Nrn  r   )r   r   r   r   r   rn  Wa  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lat .
    
        The 'latsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        latsrcr   )r   r   r   r   ro  ]a  s    zScattermapbox.latsrcc             C   s   || d< d S )Nro  r   )r   r   r   r   r   ro  ka  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   qa  s    zScattermapbox.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a  s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scattermapbox.Line
        r   r   )r   r   r   r   r   a  s    zScattermapbox.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a  s    c             C   s   | d S )z
        Sets the longitude coordinates (in degrees East).
    
        The 'lon' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        lonr   )r   r   r   r   rp  a  s    zScattermapbox.lonc             C   s   || d< d S )Nrp  r   )r   r   r   r   r   rp  a  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lon .
    
        The 'lonsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        lonsrcr   )r   r   r   r   rq  a  s    zScattermapbox.lonsrcc             C   s   || d< d S )Nrq  r   )r   r   r   r   r   rq  a  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scattermapbox.mark
                    er.ColorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol. Full list:
                    https://www.mapbox.com/maki-icons/ Note that
                    the array `marker.color` and `marker.size` are
                    only available for "circle" symbols.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scattermapbox.Marker
        r   r   )r   r   r   r   r   a  s     zScattermapbox.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Tb  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   Zb  s    zScattermapbox.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   pb  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   vb  s    zScattermapbox.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   b  s    c             C   s   | d S )a(  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover.
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  b  s    zScattermapbox.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  b  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   b  s    zScattermapbox.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   b  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   b  s    zScattermapbox.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   b  s    c             C   s   | d S )ah  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattermapbox.sele
                    cted.Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattermapbox.Selected
        r   r   )r   r   r   r   r   b  s    zScattermapbox.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   b  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   b  s    zScattermapbox.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   b  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   c  s    zScattermapbox.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   c  s    c             C   s   | d S )at  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scattermapbox.Stream
        r,   r   )r   r   r   r   r,   c  s    zScattermapbox.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   2c  s    c             C   s   | d S )a'  
        Sets a reference between this trace's data coordinates and a
        mapbox subplot. If "mapbox" (the default value), the data refer
        to `layout.mapbox`. If "mapbox2", the data refer to
        `layout.mapbox2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'mapbox', that may be specified as the string 'mapbox'
        optionally followed by an integer >= 1
        (e.g. 'mapbox', 'mapbox1', 'mapbox2', 'mapbox3', etc.)

        Returns
        -------
        str
        rL  r   )r   r   r   r   rL  8c  s    zScattermapbox.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  Kc  s    c             C   s   | d S )a  
        Sets text elements associated with each (lon,lat) pair If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (lon,lat) coordinates. If trace `hoverinfo`
        contains a "text" flag and "hovertext" is not set, these
        elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   Qc  s    zScattermapbox.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   fc  s    c             C   s   | d S )ar  
        Sets the icon text font (color=mapbox.layer.paint.text-color,
        size=mapbox.layer.layout.text-size). Has an effect only when
        `type` is set to "symbol".
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.scattermapbox.Textfont
        r/   r   )r   r   r   r   r/   lc  s    'zScattermapbox.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   c  s    c             C   s   | d S )a  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']

        Returns
        -------
        Any
        r1   r   )r   r   r   r   r1   c  s    zScattermapbox.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   c  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   c  s    zScattermapbox.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   c  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `lat`, `lon` and `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   c  s    zScattermapbox.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   c  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   c  s    zScattermapbox.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   c  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   c  s    zScattermapbox.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   d  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   d  s    zScattermapbox.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   /d  s    c             C   s   | d S )at  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattermapbox.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattermapbox.unse
                    lected.Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattermapbox.Unselected
        r   r   )r   r   r   r   r   5d  s    zScattermapbox.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Kd  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   Qd  s    zScattermapbox.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   bd  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   hd  s    zScattermapbox.typec             C   s   dS )NrF   r   )r   r   r   r   rG   nd  s    zScattermapbox._parent_path_strc             C   s   dS )Na)          below
            Determines if this scattermapbox trace's layers are to
            be inserted before the layer with the specified ID. By
            default, scattermapbox layers are inserted above all
            the base layers. To place the scattermapbox layers
            above every other layer, set `below` to "''".
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattermapbox.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (lon,lat)
            pair If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (lon,lat)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        lat
            Sets the latitude coordinates (in degrees North).
        latsrc
            Sets the source reference on plot.ly for  lat .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattermapbox.Line`
            instance or dict with compatible properties
        lon
            Sets the longitude coordinates (in degrees East).
        lonsrc
            Sets the source reference on plot.ly for  lon .
        marker
            :class:`plotly.graph_objects.scattermapbox.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover.
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattermapbox.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattermapbox.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a mapbox subplot. If "mapbox" (the default value),
            the data refer to `layout.mapbox`. If "mapbox2", the
            data refer to `layout.mapbox2`, and so on.
        text
            Sets text elements associated with each (lon,lat) pair
            If a single string, the same string appears over all
            the data points. If an array of string, the items are
            mapped in order to the this trace's (lon,lat)
            coordinates. If trace `hoverinfo` contains a "text"
            flag and "hovertext" is not set, these elements will be
            seen in the hover labels.
        textfont
            Sets the icon text font (color=mapbox.layer.paint.text-
            color, size=mapbox.layer.layout.text-size). Has an
            effect only when `type` is set to "symbol".
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `lat`, `lon`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattermapbox.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   td  s     Sz Scattermapbox._prop_descriptionsNc,       0         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|,
dd| _ddlm}- |- | jd< |- | jd	< |- | jd
< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |-  | jd< |-! | jd< |-" | jd< |-# | jd< |-$ | jd< |-% | jd< |-& | jd< |-' | jd < |-( | jd!< |-) | jd"< |-* | jd#< |-+ | jd$< |-, | jd%< |-- | jd&< |-. | jd'< |-/ | jd(< |-0 | jd)< |-1 | jd*< |-2 | jd+< |-3 | jd,< |-4 | jd-< |-5 | jd.< |-6 | jd/< |-7 | jd0< |-8 | jd1< |
dd}.|dk	r|n|.| d< |
d	d}.|dk	r|n|.| d	< |
d
d}.|dk	r|n|.| d
< |
dd}.|dk	r8|n|.| d< |
dd}.|dk	rZ|n|.| d< |
dd}.|dk	r||n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|	dk	r|	n|.| d< |
dd}.|
dk	r|
n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r&|n|.| d< |
dd}.|dk	rH|n|.| d< |
dd}.|dk	rj|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r6|n|.| d< |
dd}.|dk	rX|n|.| d< |
dd}.|dk	rz|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
d d}.|dk	r|n|.| d < |
d!d}.|dk	r$|n|.| d!< |
d"d}.|dk	rF|n|.| d"< |
d#d}.|dk	rh|n|.| d#< |
d$d}.|dk	r|n|.| d$< |
d%d}.|dk	r|n|.| d%< |
d&d}.| dk	r| n|.| d&< |
d'd}.|!dk	r|!n|.| d'< |
d(d}.|"dk	r|"n|.| d(< |
d)d}.|#dk	r4|#n|.| d)< |
d*d}.|$dk	rV|$n|.| d*< |
d+d}.|%dk	rx|%n|.| d+< |
d,d}.|&dk	r|&n|.| d,< |
d-d}.|'dk	r|'n|.| d-< |
d.d}.|(dk	r|(n|.| d.< |
d/d}.|)dk	r |)n|.| d/< |
d0d}.|*dk	r"|*n|.| d0< |
d1d}.|+dk	rD|+n|.| d1< dd2l9m:}/ d| j;d3< |/d3ddd4| jd3< |
d3d | j<f t|f|, d| _dS )5as+  
        Construct a new Scattermapbox object
        
        The data visualized as scatter point, lines or marker symbols
        on a Mapbox GL geographic map is provided by longitude/latitude
        pairs in `lon` and `lat`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scattermapbox`
        below
            Determines if this scattermapbox trace's layers are to
            be inserted before the layer with the specified ID. By
            default, scattermapbox layers are inserted above all
            the base layers. To place the scattermapbox layers
            above every other layer, set `below` to "''".
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattermapbox.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (lon,lat)
            pair If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (lon,lat)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        lat
            Sets the latitude coordinates (in degrees North).
        latsrc
            Sets the source reference on plot.ly for  lat .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattermapbox.Line`
            instance or dict with compatible properties
        lon
            Sets the longitude coordinates (in degrees East).
        lonsrc
            Sets the source reference on plot.ly for  lon .
        marker
            :class:`plotly.graph_objects.scattermapbox.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover.
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattermapbox.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattermapbox.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a mapbox subplot. If "mapbox" (the default value),
            the data refer to `layout.mapbox`. If "mapbox2", the
            data refer to `layout.mapbox2`, and so on.
        text
            Sets text elements associated with each (lon,lat) pair
            If a single string, the same string appears over all
            the data points. If an array of string, the items are
            mapped in order to the this trace's (lon,lat)
            coordinates. If trace `hoverinfo` contains a "text"
            flag and "hovertext" is not set, these elements will be
            seen in the hover labels.
        textfont
            Sets the icon text font (color=mapbox.layer.paint.text-
            color, size=mapbox.layer.layout.text-size). Has an
            effect only when `type` is set to "symbol".
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `lat`, `lon`
            and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattermapbox.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Scattermapbox
        scattermapboxNzThe first argument to the plotly.graph_objs.Scattermapbox 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scattermapbox`rJ   Fr   )rr  rm  r  r   r   rJ  r   r   r   r   r   r   r   r   r   r   rn  ro  r   r   rp  rq  r   r!   r"   rK  r#   r'   r   r*   r+   r,   rL  r-   r/   r1   r3   r4   r5   r7   r8   r   r9   )rK   rD   )rL   rM   r   )=rN   rl  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rr  BelowValidatorr[   r  r`   ra   rS  r   re   rf   rg   rh   ri   rj   rk   rl   rm   LatValidatorLatsrcValidatorrq   r   LonValidatorLonsrcValidatorr   rr   rs   rT  rt   rx   r   r{   r|   r}   rU  r~   r   r   r   r   r   r   r   r   r   r   rK   rE   r   )0r   r   rm  r  r   r   rJ  r   r   r   r   r   r   r   r   r   r   rn  ro  r   r   rp  rq  r   r!   r"   rK  r#   r'   r   r*   r+   r,   rL  r-   r/   r1   r3   r4   r5   r7   r8   r   r9   r   Zv_scattermapboxr   rK   )rQ   r   r   rO   He  s$     


zScattermapbox.__init__)+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)4r   r   r   r   rm  r   r  r   r   rJ  r   r   r   r   r   r   r   r   r   r   rn  ro  r   r   rp  rq  r   r!   r"   rK  r#   r'   r   r*   r+   r,   rL  r-   r/   r1   r3   r4   r5   r7   r8   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   rl  _  s  75# 	) W                                          rl  c            4       sp  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8edd Z9edd Z:d fdd	Z;  Z<S )	Scatterglc             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  g  s    zScattergl.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #g  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   )g  s    zScattergl.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   :g  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   @g  s    zScattergl.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Ng  s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   Tg  s    zScattergl.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   bg  s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   hg  s    zScattergl.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   vg  s    c             C   s   | d S )a'  
        The 'error_x' property is an instance of ErrorX
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.ErrorX`
          - A dict of string/value properties that will be passed
            to the ErrorX constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                copy_ystyle
    
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scattergl.ErrorX
        error_xr   )r   r   r   r   ry  |g  s    IzScattergl.error_xc             C   s   || d< d S )Nry  r   )r   r   r   r   r   ry  g  s    c             C   s   | d S )a  
        The 'error_y' property is an instance of ErrorY
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.ErrorY`
          - A dict of string/value properties that will be passed
            to the ErrorY constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scattergl.ErrorY
        error_yr   )r   r   r   r   rz  g  s    GzScattergl.error_yc             C   s   || d< d S )Nrz  r   )r   r   r   r   r   rz  h  s    c             C   s   | d S )a"  
        Sets the area to fill with a solid color. Defaults to "none"
        unless this trace is stacked, then it gets "tonexty"
        ("tonextx") if `orientation` is "v" ("h") Use with `fillcolor`
        if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0
        respectively. "tonextx" and "tonexty" fill between the
        endpoints of this trace and the endpoints of the trace before
        it, connecting those endpoints with straight lines (to make a
        stacked area graph); if there is no trace before it, they
        behave like "tozerox" and "tozeroy". "toself" connects the
        endpoints of the trace (or each segment of the trace if it has
        gaps) into a closed shape. "tonext" fills the space between two
        traces if one completely encloses the other (eg consecutive
        contour lines), and behaves like "toself" if there is no trace
        before it. "tonext" should not be used if one trace does not
        enclose the other. Traces in a `stackgroup` will only fill to
        (or be filled to) other traces in the same group. With multiple
        `stackgroup`s or some traces stacked and some not, if fill-
        linked traces are not already consecutive, the later ones will
        be pushed down in the drawing order.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'tozeroy', 'tozerox', 'tonexty', 'tonextx',
                'toself', 'tonext']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ  h  s     zScattergl.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  >h  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Dh  s    5zScattergl.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {h  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   h  s    zScattergl.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   h  s    zScattergl.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scattergl.Hoverlabel
        r   r   )r   r   r   r   r   h  s    3zScattergl.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   h  s    !zScattergl.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   i  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   i  s    zScattergl.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   !i  s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   'i  s    zScattergl.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ;i  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Ai  s    zScattergl.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Oi  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Ui  s    zScattergl.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ei  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ki  s    zScattergl.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   yi  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   i  s    zScattergl.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   i  s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the style of the lines.
                shape
                    Determines the line shape. The values
                    correspond to step-wise line shapes.
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scattergl.Line
        r   r   )r   r   r   r   r   i  s    zScattergl.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   i  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scattergl.marker.C
                    olorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.scattergl.marker.L
                    ine` instance or dict with compatible
                    properties
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scattergl.Marker
        r   r   )r   r   r   r   r   i  s     zScattergl.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Ej  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   Kj  s    zScattergl.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   aj  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   gj  s    zScattergl.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   uj  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace.
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  {j  s    zScattergl.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  j  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   j  s    zScattergl.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   j  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   j  s    zScattergl.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   j  s    c             C   s   | d S )a  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattergl.selected
                    .Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scattergl.selected
                    .Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattergl.Selected
        r   r   )r   r   r   r   r   j  s    zScattergl.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   j  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   j  s    zScattergl.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   j  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   j  s    zScattergl.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   k  s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scattergl.Stream
        r,   r   )r   r   r   r   r,   	k  s    zScattergl.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   $k  s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   *k  s    zScattergl.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   ?k  s    c             C   s   | d S )a5  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scattergl.Textfont
        r/   r   )r   r   r   r   r/   Ek  s    /zScattergl.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   vk  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   |k  s    zScattergl.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   k  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   k  s    zScattergl.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   k  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   k  s    zScattergl.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   k  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   k  s    zScattergl.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   k  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   k  s    zScattergl.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   k  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   k  s    zScattergl.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   l  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   
l  s    zScattergl.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   %l  s    c             C   s   | d S )a&  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergl.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattergl.unselect
                    ed.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scattergl.unselect
                    ed.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattergl.Unselected
        r   r   )r   r   r   r   r   +l  s    zScattergl.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   El  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   Kl  s    zScattergl.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   \l  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   bl  s    zScattergl.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   pl  s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   vl  s    zScattergl.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=   l  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   l  s    zScattergl.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   l  s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  l  s    zScattergl.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  l  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   l  s    zScattergl.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   l  s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   l  s    zScattergl.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   l  s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA   l  s    zScattergl.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA   l  s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   l  s    zScattergl.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   m  s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  m  s    zScattergl.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  $m  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   *m  s    zScattergl.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   8m  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   >m  s    zScattergl.typec             C   s   dS )NrF   r   )r   r   r   r   rG   Dm  s    zScattergl._parent_path_strc             C   s   dS )Na0          connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        error_x
            :class:`plotly.graph_objects.scattergl.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.scattergl.ErrorY` instance
            or dict with compatible properties
        fill
            Sets the area to fill with a solid color. Defaults to
            "none" unless this trace is stacked, then it gets
            "tonexty" ("tonextx") if `orientation` is "v" ("h") Use
            with `fillcolor` if not "none". "tozerox" and "tozeroy"
            fill to x=0 and y=0 respectively. "tonextx" and
            "tonexty" fill between the endpoints of this trace and
            the endpoints of the trace before it, connecting those
            endpoints with straight lines (to make a stacked area
            graph); if there is no trace before it, they behave
            like "tozerox" and "tozeroy". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other. Traces in a `stackgroup` will only fill to (or
            be filled to) other traces in the same group. With
            multiple `stackgroup`s or some traces stacked and some
            not, if fill-linked traces are not already consecutive,
            the later ones will be pushed down in the drawing
            order.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattergl.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattergl.Line` instance
            or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scattergl.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace.
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattergl.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattergl.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattergl.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   Jm  s     wzScattergl._prop_descriptionsNc5       9         sP
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|5
dd| _ddlm}6 |6 | jd< |6 | jd	< |6 | jd
< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6  | jd< |6! | jd< |6" | jd< |6# | jd< |6$ | jd< |6% | jd< |6& | jd< |6' | jd < |6( | jd!< |6) | jd"< |6* | jd#< |6+ | jd$< |6, | jd%< |6- | jd&< |6. | jd'< |6/ | jd(< |60 | jd)< |61 | jd*< |62 | jd+< |63 | jd,< |64 | jd-< |65 | jd.< |66 | jd/< |67 | jd0< |68 | jd1< |69 | jd2< |6: | jd3< |6; | jd4< |6< | jd5< |6= | jd6< |6> | jd7< |6? | jd8< |6@ | jd9< |6A | jd:< |
dd}7|dk	rP|n|7| d< |
d	d}7|dk	rr|n|7| d	< |
d
d}7|dk	r|n|7| d
< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|	dk	r>|	n|7| d< |
dd}7|
dk	r`|
n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r
|n|7| d< |
dd}7|dk	r,|n|7| d< |
dd}7|dk	rN|n|7| d< |
dd}7|dk	rp|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r<|n|7| d< |
dd}7|dk	r^|n|7| d< |
d d}7|dk	r|n|7| d < |
d!d}7|dk	r|n|7| d!< |
d"d}7|dk	r|n|7| d"< |
d#d}7|dk	r|n|7| d#< |
d$d}7|dk	r|n|7| d$< |
d%d}7|dk	r*|n|7| d%< |
d&d}7| dk	rL| n|7| d&< |
d'd}7|!dk	rn|!n|7| d'< |
d(d}7|"dk	r|"n|7| d(< |
d)d}7|#dk	r|#n|7| d)< |
d*d}7|$dk	r|$n|7| d*< |
d+d}7|%dk	r|%n|7| d+< |
d,d}7|&dk	r|&n|7| d,< |
d-d}7|'dk	r:|'n|7| d-< |
d.d}7|(dk	r\|(n|7| d.< |
d/d}7|)dk	r~|)n|7| d/< |
d0d}7|*dk	r|*n|7| d0< |
d1d}7|+dk	r|+n|7| d1< |
d2d}7|,dk	r|,n|7| d2< |
d3d}7|-dk		r|-n|7| d3< |
d4d}7|.dk		r(|.n|7| d4< |
d5d}7|/dk		rJ|/n|7| d5< |
d6d}7|0dk		rl|0n|7| d6< |
d7d}7|1dk		r|1n|7| d7< |
d8d}7|2dk		r|2n|7| d8< |
d9d}7|3dk		r|3n|7| d9< |
d:d}7|4dk		r|4n|7| d:< dd;lBmC}8 d| jDd<< |8d<ddd=| jd<< |
d<d | jEf t|f|5 d| _dS )>a2  
        Construct a new Scattergl object
        
        The data visualized as scatter point or lines is set in `x` and
        `y` using the WebGL plotting engine. Bubble charts are achieved
        by setting `marker.size` and/or `marker.color` to a numerical
        arrays.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scattergl`
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        error_x
            :class:`plotly.graph_objects.scattergl.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.scattergl.ErrorY` instance
            or dict with compatible properties
        fill
            Sets the area to fill with a solid color. Defaults to
            "none" unless this trace is stacked, then it gets
            "tonexty" ("tonextx") if `orientation` is "v" ("h") Use
            with `fillcolor` if not "none". "tozerox" and "tozeroy"
            fill to x=0 and y=0 respectively. "tonextx" and
            "tonexty" fill between the endpoints of this trace and
            the endpoints of the trace before it, connecting those
            endpoints with straight lines (to make a stacked area
            graph); if there is no trace before it, they behave
            like "tozerox" and "tozeroy". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other. Traces in a `stackgroup` will only fill to (or
            be filled to) other traces in the same group. With
            multiple `stackgroup`s or some traces stacked and some
            not, if fill-linked traces are not already consecutive,
            the later ones will be pushed down in the drawing
            order.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattergl.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattergl.Line` instance
            or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scattergl.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace.
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattergl.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattergl.Stream` instance
            or dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattergl.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Scattergl
        	scatterglNzThe first argument to the plotly.graph_objs.Scattergl 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scattergl`rJ   Fr   )r{  r  r   r   r   r   ry  rz  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r<   r=   r>   r  r?   r@   rA   rB   r  rC   )rK   rD   )rL   rM   r   )FrN   rx  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r{  r  r[   r`   ra   rc   rd   ErrorXValidatorErrorYValidatorrS  r   re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rT  rt   rx   r   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   rK   rE   r   )9r   r   r  r   r   r   r   ry  rz  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r<   r=   r>   r  r?   r@   rA   rB   r  rC   r   Zv_scatterglr   rK   )rQ   r   r   rO   Bn  sZ     ?


zScattergl.__init__)4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)=r   r   r   r   r  r   r   r   r   r   ry  rz  rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r<   r=   r>   r  r?   r@   rA   rB   r  rC   rD   rG   rH   rO   r   r   r   )rQ   r   rx  g  s>  KI"75# 1 {                                                   rx  c            0       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4edd Z5edd Z6d fdd	Z7  Z8S )
Scattergeoc             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  Up  s    zScattergeo.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  dp  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   jp  s    zScattergeo.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {p  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   p  s    zScattergeo.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   p  s    c             C   s   | d S )a  
        Sets the key in GeoJSON features which is used as id to match
        the items included in the `locations` array. Only has an effect
        when `geojson` is set. Support nested property, for example
        "properties.name".
    
        The 'featureidkey' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        featureidkeyr   )r   r   r   r   r  p  s    zScattergeo.featureidkeyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  p  s    c             C   s   | d S )a  
        Sets the area to fill with a solid color. Use with `fillcolor`
        if not "none". "toself" connects the endpoints of the trace (or
        each segment of the trace if it has gaps) into a closed shape.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'toself']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ  p  s    zScattergeo.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  p  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   p  s    5zScattergeo.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   p  s    c             C   s   | d S )a/  
        Sets a reference between this trace's geospatial coordinates
        and a geographic map. If "geo" (the default value), the
        geospatial coordinates refer to `layout.geo`. If "geo2", the
        geospatial coordinates refer to `layout.geo2`, and so on.
    
        The 'geo' property is an identifier of a particular
        subplot, of type 'geo', that may be specified as the string 'geo'
        optionally followed by an integer >= 1
        (e.g. 'geo', 'geo1', 'geo2', 'geo3', etc.)

        Returns
        -------
        str
        geor   )r   r   r   r   r  q  s    zScattergeo.geoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q  s    c             C   s   | d S )a  
        Sets optional GeoJSON data associated with this trace. If not
        given, the features on the base map are used when `locations`
        is set. It can be set as a valid GeoJSON object or as a URL
        string. Note that we only accept GeoJSONs of type
        "FeatureCollection" or "Feature" with geometries of type
        "Polygon" or "MultiPolygon".
    
        The 'geojson' property accepts values of any type

        Returns
        -------
        Any
        geojsonr   )r   r   r   r   r  q  s    zScattergeo.geojsonc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ,q  s    c             C   s   | d S )ao  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lon', 'lat', 'location', 'text', 'name'] joined with '+' characters
            (e.g. 'lon+lat')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   2q  s    zScattergeo.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Fq  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Lq  s    zScattergeo.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Zq  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scattergeo.Hoverlabel
        r   r   )r   r   r   r   r   `q  s    3zScattergeo.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   q  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   q  s    !zScattergeo.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   q  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   q  s    zScattergeo.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   q  s    c             C   s   | d S )a  
        Sets hover text elements associated with each (lon,lat) pair or
        item in `locations`. If a single string, the same string
        appears over all the data points. If an array of string, the
        items are mapped in order to the this trace's (lon,lat) or
        `locations` coordinates. To be seen, trace `hoverinfo` must
        contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   q  s    zScattergeo.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   q  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   q  s    zScattergeo.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   r  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   r  s    zScattergeo.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   r  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   r  s    zScattergeo.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   +r  s    c             C   s   | d S )z
        Sets the latitude coordinates (in degrees North).
    
        The 'lat' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rn  r   )r   r   r   r   rn  1r  s    zScattergeo.latc             C   s   || d< d S )Nrn  r   )r   r   r   r   r   rn  ?r  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lat .
    
        The 'latsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        ro  r   )r   r   r   r   ro  Er  s    zScattergeo.latsrcc             C   s   || d< d S )Nro  r   )r   r   r   r   r   ro  Sr  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Yr  s    zScattergeo.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   jr  s    c             C   s   | d S )a,  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scattergeo.Line
        r   r   )r   r   r   r   r   pr  s    zScattergeo.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   r  s    c             C   s   | d S )aI  
        Determines the set of locations used to match entries in
        `locations` to regions on the map. Values "ISO-3", "USA-
        states", *country names* correspond to features on the base map
        and value "geojson-id" corresponds to features from a custom
        GeoJSON linked to the `geojson` attribute.
    
        The 'locationmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['ISO-3', 'USA-states', 'country names', 'geojson-id']

        Returns
        -------
        Any
        locationmoder   )r   r   r   r   r  r  s    zScattergeo.locationmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  r  s    c             C   s   | d S )ai  
        Sets the coordinates via location IDs or names. Coordinates
        correspond to the centroid of each location given. See
        `locationmode` for more info.
    
        The 'locations' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        	locationsr   )r   r   r   r   r  r  s    zScattergeo.locationsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  r  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  locations .
    
        The 'locationssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        locationssrcr   )r   r   r   r   r  r  s    zScattergeo.locationssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  r  s    c             C   s   | d S )z
        Sets the longitude coordinates (in degrees East).
    
        The 'lon' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rp  r   )r   r   r   r   rp  r  s    zScattergeo.lonc             C   s   || d< d S )Nrp  r   )r   r   r   r   r   rp  r  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lon .
    
        The 'lonsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rq  r   )r   r   r   r   rq  r  s    zScattergeo.lonsrcc             C   s   || d< d S )Nrq  r   )r   r   r   r   r   rq  r  s    c             C   s   | d S )aZ  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scattergeo.marker.
                    ColorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                gradient
                    :class:`plotly.graph_objects.scattergeo.marker.
                    Gradient` instance or dict with compatible
                    properties
                line
                    :class:`plotly.graph_objects.scattergeo.marker.
                    Line` instance or dict with compatible
                    properties
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scattergeo.Marker
        r   r   )r   r   r   r   r   r  s     zScattergeo.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   s  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   s  s    zScattergeo.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   s  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   s  s    zScattergeo.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   s  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  s  s    zScattergeo.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  s  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   s  s    zScattergeo.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   s  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   s  s    zScattergeo.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   t  s    c             C   s   | d S )a  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattergeo.selecte
                    d.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scattergeo.selecte
                    d.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattergeo.Selected
        r   r   )r   r   r   r   r   
t  s    zScattergeo.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $t  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   *t  s    zScattergeo.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   <t  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   Bt  s    zScattergeo.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   Qt  s    c             C   s   | d S )an  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scattergeo.Stream
        r,   r   )r   r   r   r   r,   Wt  s    zScattergeo.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   rt  s    c             C   s   | d S )a  
        Sets text elements associated with each (lon,lat) pair or item
        in `locations`. If a single string, the same string appears
        over all the data points. If an array of string, the items are
        mapped in order to the this trace's (lon,lat) or `locations`
        coordinates. If trace `hoverinfo` contains a "text" flag and
        "hovertext" is not set, these elements will be seen in the
        hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   xt  s    zScattergeo.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   t  s    c             C   s   | d S )a7  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scattergeo.Textfont
        r/   r   )r   r   r   r   r/   t  s    /zScattergeo.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   t  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   t  s    zScattergeo.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   t  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   t  s    zScattergeo.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   t  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   t  s    zScattergeo.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   u  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `lat`, `lon`, `location` and `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   u  s    zScattergeo.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   )u  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   /u  s    zScattergeo.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   =u  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   Cu  s    zScattergeo.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   Su  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   Yu  s    zScattergeo.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   tu  s    c             C   s   | d S )a*  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattergeo.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattergeo.unselec
                    ted.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scattergeo.unselec
                    ted.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattergeo.Unselected
        r   r   )r   r   r   r   r   zu  s    zScattergeo.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   u  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   u  s    zScattergeo.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   u  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   u  s    zScattergeo.typec             C   s   dS )NrF   r   )r   r   r   r   rG   u  s    zScattergeo._parent_path_strc             C   s   dS )Nan.          connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        featureidkey
            Sets the key in GeoJSON features which is used as id to
            match the items included in the `locations` array. Only
            has an effect when `geojson` is set. Support nested
            property, for example "properties.name".
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        geo
            Sets a reference between this trace's geospatial
            coordinates and a geographic map. If "geo" (the default
            value), the geospatial coordinates refer to
            `layout.geo`. If "geo2", the geospatial coordinates
            refer to `layout.geo2`, and so on.
        geojson
            Sets optional GeoJSON data associated with this trace.
            If not given, the features on the base map are used
            when `locations` is set. It can be set as a valid
            GeoJSON object or as a URL string. Note that we only
            accept GeoJSONs of type "FeatureCollection" or
            "Feature" with geometries of type "Polygon" or
            "MultiPolygon".
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattergeo.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (lon,lat)
            pair or item in `locations`. If a single string, the
            same string appears over all the data points. If an
            array of string, the items are mapped in order to the
            this trace's (lon,lat) or `locations` coordinates. To
            be seen, trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        lat
            Sets the latitude coordinates (in degrees North).
        latsrc
            Sets the source reference on plot.ly for  lat .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattergeo.Line` instance
            or dict with compatible properties
        locationmode
            Determines the set of locations used to match entries
            in `locations` to regions on the map. Values "ISO-3",
            "USA-states", *country names* correspond to features on
            the base map and value "geojson-id" corresponds to
            features from a custom GeoJSON linked to the `geojson`
            attribute.
        locations
            Sets the coordinates via location IDs or names.
            Coordinates correspond to the centroid of each location
            given. See `locationmode` for more info.
        locationssrc
            Sets the source reference on plot.ly for  locations .
        lon
            Sets the longitude coordinates (in degrees East).
        lonsrc
            Sets the source reference on plot.ly for  lon .
        marker
            :class:`plotly.graph_objects.scattergeo.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattergeo.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattergeo.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each (lon,lat) pair
            or item in `locations`. If a single string, the same
            string appears over all the data points. If an array of
            string, the items are mapped in order to the this
            trace's (lon,lat) or `locations` coordinates. If trace
            `hoverinfo` contains a "text" flag and "hovertext" is
            not set, these elements will be seen in the hover
            labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `lat`, `lon`,
            `location` and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattergeo.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   u  s     lzScattergeo._prop_descriptionsNc1       5         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|1
dd| _ddlm}2 |2 | jd< |2 | jd	< |2 | jd
< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2 | jd< |2  | jd< |2! | jd< |2" | jd< |2# | jd< |2$ | jd< |2% | jd< |2& | jd< |2' | jd < |2( | jd!< |2) | jd"< |2* | jd#< |2+ | jd$< |2, | jd%< |2- | jd&< |2. | jd'< |2/ | jd(< |20 | jd)< |21 | jd*< |22 | jd+< |23 | jd,< |24 | jd-< |25 | jd.< |26 | jd/< |27 | jd0< |28 | jd1< |29 | jd2< |2: | jd3< |2; | jd4< |2< | jd5< |2= | jd6< |
dd}3|dk	r|n|3| d< |
d	d}3|dk	r:|n|3| d	< |
d
d}3|dk	r\|n|3| d
< |
dd}3|dk	r~|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|	dk	r|	n|3| d< |
dd}3|
dk	r(|
n|3| d< |
dd}3|dk	rJ|n|3| d< |
dd}3|dk	rl|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r8|n|3| d< |
dd}3|dk	rZ|n|3| d< |
dd}3|dk	r||n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r|n|3| d< |
dd}3|dk	r&|n|3| d< |
d d}3|dk	rH|n|3| d < |
d!d}3|dk	rj|n|3| d!< |
d"d}3|dk	r|n|3| d"< |
d#d}3|dk	r|n|3| d#< |
d$d}3|dk	r|n|3| d$< |
d%d}3|dk	r|n|3| d%< |
d&d}3| dk	r| n|3| d&< |
d'd}3|!dk	r6|!n|3| d'< |
d(d}3|"dk	rX|"n|3| d(< |
d)d}3|#dk	rz|#n|3| d)< |
d*d}3|$dk	r|$n|3| d*< |
d+d}3|%dk	r|%n|3| d+< |
d,d}3|&dk	r|&n|3| d,< |
d-d}3|'dk	r|'n|3| d-< |
d.d}3|(dk	r$|(n|3| d.< |
d/d}3|)dk	rF|)n|3| d/< |
d0d}3|*dk	rh|*n|3| d0< |
d1d}3|+dk	r|+n|3| d1< |
d2d}3|,dk	r|,n|3| d2< |
d3d}3|-dk	r|-n|3| d3< |
d4d}3|.dk	r|.n|3| d4< |
d5d}3|/dk		r|/n|3| d5< |
d6d}3|0dk		r4|0n|3| d6< dd7l>m?}4 d| j@d8< |4d8ddd9| jd8< |
d8d | jAf t|f|1 d| _dS ):au0  
        Construct a new Scattergeo object
        
        The data visualized as scatter point or lines on a geographic
        map is provided either by longitude/latitude pairs in `lon` and
        `lat` respectively or by geographic location IDs or names in
        `locations`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scattergeo`
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        featureidkey
            Sets the key in GeoJSON features which is used as id to
            match the items included in the `locations` array. Only
            has an effect when `geojson` is set. Support nested
            property, for example "properties.name".
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        geo
            Sets a reference between this trace's geospatial
            coordinates and a geographic map. If "geo" (the default
            value), the geospatial coordinates refer to
            `layout.geo`. If "geo2", the geospatial coordinates
            refer to `layout.geo2`, and so on.
        geojson
            Sets optional GeoJSON data associated with this trace.
            If not given, the features on the base map are used
            when `locations` is set. It can be set as a valid
            GeoJSON object or as a URL string. Note that we only
            accept GeoJSONs of type "FeatureCollection" or
            "Feature" with geometries of type "Polygon" or
            "MultiPolygon".
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattergeo.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (lon,lat)
            pair or item in `locations`. If a single string, the
            same string appears over all the data points. If an
            array of string, the items are mapped in order to the
            this trace's (lon,lat) or `locations` coordinates. To
            be seen, trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        lat
            Sets the latitude coordinates (in degrees North).
        latsrc
            Sets the source reference on plot.ly for  lat .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattergeo.Line` instance
            or dict with compatible properties
        locationmode
            Determines the set of locations used to match entries
            in `locations` to regions on the map. Values "ISO-3",
            "USA-states", *country names* correspond to features on
            the base map and value "geojson-id" corresponds to
            features from a custom GeoJSON linked to the `geojson`
            attribute.
        locations
            Sets the coordinates via location IDs or names.
            Coordinates correspond to the centroid of each location
            given. See `locationmode` for more info.
        locationssrc
            Sets the source reference on plot.ly for  locations .
        lon
            Sets the longitude coordinates (in degrees East).
        lonsrc
            Sets the source reference on plot.ly for  lon .
        marker
            :class:`plotly.graph_objects.scattergeo.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattergeo.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattergeo.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each (lon,lat) pair
            or item in `locations`. If a single string, the same
            string appears over all the data points. If an array of
            string, the items are mapped in order to the this
            trace's (lon,lat) or `locations` coordinates. If trace
            `hoverinfo` contains a "text" flag and "hovertext" is
            not set, these elements will be seen in the hover
            labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `lat`, `lon`,
            `location` and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattergeo.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Scattergeo
        
scattergeoNzThe first argument to the plotly.graph_objs.Scattergeo 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scattergeo`rJ   Fr   )r  r  r   r   r  rJ  r   r  r  r   r   r   r   r   r   r   r   r   rn  ro  r   r   r  r  r  rp  rq  r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   )rK   rD   )rL   rM   r   )BrN   r~  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r  r[   r`   ra   FeatureidkeyValidatorrS  r   GeoValidatorGeojsonValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   rt  ru  rq   r   LocationmodeValidatorLocationsValidatorLocationssrcValidatorrv  rw  r   rr   rs   rT  rt   rx   r   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   rK   rE   r   )5r   r   r  r   r   r  rJ  r   r  r  r   r   r   r   r   r   r   r   r   rn  ro  r   r   r  r  r  rp  rq  r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r   Zv_scattergeor   rK   )rQ   r   r   rO   v  sB     0


zScattergeo.__init__)0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)9r   r   r   r   r  r   r   r   r  rJ  r   r  r  r   r   r   r   r   r   r   r   r   rn  ro  r   r   r  r  r  rp  rq  r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r~  Qp  s&  75# 1 p                                               r~  c            .       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2edd Z3edd Z4d fdd	Z5  Z6S )Scattercarpetc             C   s   | d S )z
        Sets the a-axis coordinates.
    
        The 'a' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rD  r   )r   r   r   r   rD  x  s    zScattercarpet.ac             C   s   || d< d S )NrD  r   )r   r   r   r   r   rD  x  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  a .
    
        The 'asrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rE  r   )r   r   r   r   rE  x  s    zScattercarpet.asrcc             C   s   || d< d S )NrE  r   )r   r   r   r   r   rE  x  s    c             C   s   | d S )z
        Sets the b-axis coordinates.
    
        The 'b' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rF  r   )r   r   r   r   rF  x  s    zScattercarpet.bc             C   s   || d< d S )NrF  r   )r   r   r   r   r   rF  x  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  b .
    
        The 'bsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rG  r   )r   r   r   r   rG  x  s    zScattercarpet.bsrcc             C   s   || d< d S )NrG  r   )r   r   r   r   r   rG  x  s    c             C   s   | d S )ab  
        An identifier for this carpet, so that `scattercarpet` and
        `contourcarpet` traces can specify a carpet plot on which they
        lie
    
        The 'carpet' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        carpetr   )r   r   r   r   r  x  s    zScattercarpet.carpetc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  y  s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  	y  s    zScattercarpet.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  y  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   y  s    zScattercarpet.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   /y  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   5y  s    zScattercarpet.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Cy  s    c             C   s   | d S )a  
        Sets the area to fill with a solid color. Use with `fillcolor`
        if not "none". scatterternary has a subset of the options
        available to scatter. "toself" connects the endpoints of the
        trace (or each segment of the trace if it has gaps) into a
        closed shape. "tonext" fills the space between two traces if
        one completely encloses the other (eg consecutive contour
        lines), and behaves like "toself" if there is no trace before
        it. "tonext" should not be used if one trace does not enclose
        the other.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'toself', 'tonext']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ  Iy  s    zScattercarpet.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  `y  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   fy  s    5zScattercarpet.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   y  s    c             C   s   | d S )a[  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['a', 'b', 'text', 'name'] joined with '+' characters
            (e.g. 'a+b')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   y  s    zScattercarpet.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   y  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   y  s    zScattercarpet.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   y  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scattercarpet.Hoverlabel
        r   r   )r   r   r   r   r   y  s    3zScattercarpet.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )a  
        Do the hover effects highlight individual points (markers or
        line points) or do they highlight filled regions? If the fill
        is "toself" or "tonext" and there are no markers or text, then
        the default is "fills", otherwise it is "points".
    
        The 'hoveron' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['points', 'fills'] joined with '+' characters
            (e.g. 'points+fills')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   z  s    zScattercarpet.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   %z  s    !zScattercarpet.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Hz  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Nz  s    zScattercarpet.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \z  s    c             C   s   | d S )a^  
        Sets hover text elements associated with each (a,b) point. If a
        single string, the same string appears over all the data
        points. If an array of strings, the items are mapped in order
        to the the data points in (a,b). To be seen, trace `hoverinfo`
        must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   bz  s    zScattercarpet.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   vz  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   |z  s    zScattercarpet.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   z  s    zScattercarpet.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   z  s    zScattercarpet.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   z  s    zScattercarpet.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )a*  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                shape
                    Determines the line shape. With "spline" the
                    lines are drawn using spline interpolation. The
                    other available values correspond to step-wise
                    line shapes.
                smoothing
                    Has an effect only if `shape` is set to
                    "spline" Sets the amount of smoothing. 0
                    corresponds to no smoothing (equivalent to a
                    "linear" shape).
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scattercarpet.Line
        r   r   )r   r   r   r   r   z  s    #zScattercarpet.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scattercarpet.mark
                    er.ColorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                gradient
                    :class:`plotly.graph_objects.scattercarpet.mark
                    er.Gradient` instance or dict with compatible
                    properties
                line
                    :class:`plotly.graph_objects.scattercarpet.mark
                    er.Line` instance or dict with compatible
                    properties
                maxdisplayed
                    Sets a maximum number of points to be drawn on
                    the graph. 0 corresponds to no limit.
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scattercarpet.Marker
        r   r   )r   r   r   r   r   z  s     zScattercarpet.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   {  s    zScattercarpet.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   {  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   {  s    zScattercarpet.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   {  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  {  s    zScattercarpet.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  {  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   {  s    zScattercarpet.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   {  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   {  s    zScattercarpet.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   |  s    c             C   s   | d S )a(  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattercarpet.sele
                    cted.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scattercarpet.sele
                    cted.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scattercarpet.Selected
        r   r   )r   r   r   r   r   |  s    zScattercarpet.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   '|  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   -|  s    zScattercarpet.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   ?|  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   E|  s    zScattercarpet.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   T|  s    c             C   s   | d S )at  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scattercarpet.Stream
        r,   r   )r   r   r   r   r,   Z|  s    zScattercarpet.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   u|  s    c             C   s   | d S )a  
        Sets text elements associated with each (a,b) point. If a
        single string, the same string appears over all the data
        points. If an array of strings, the items are mapped in order
        to the the data points in (a,b). If trace `hoverinfo` contains
        a "text" flag and "hovertext" is not set, these elements will
        be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   {|  s    zScattercarpet.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   |  s    c             C   s   | d S )a=  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scattercarpet.Textfont
        r/   r   )r   r   r   r   r/   |  s    /zScattercarpet.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   |  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   |  s    zScattercarpet.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   |  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   |  s    zScattercarpet.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   |  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   |  s    zScattercarpet.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   }  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `a`, `b` and `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   }  s    zScattercarpet.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   +}  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   1}  s    zScattercarpet.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   ?}  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   E}  s    zScattercarpet.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   U}  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   [}  s    zScattercarpet.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   v}  s    c             C   s   | d S )a6  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scattercarpet.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scattercarpet.unse
                    lected.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scattercarpet.unse
                    lected.Textfont` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.scattercarpet.Unselected
        r   r   )r   r   r   r   r   |}  s    zScattercarpet.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   }  s    zScattercarpet.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   }  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   }  s    zScattercarpet.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   }  s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   }  s    zScattercarpet.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   }  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   }  s    zScattercarpet.typec             C   s   dS )NrF   r   )r   r   r   r   rG   }  s    zScattercarpet._parent_path_strc             C   s   dS )Na,          a
            Sets the a-axis coordinates.
        asrc
            Sets the source reference on plot.ly for  a .
        b
            Sets the b-axis coordinates.
        bsrc
            Sets the source reference on plot.ly for  b .
        carpet
            An identifier for this carpet, so that `scattercarpet`
            and `contourcarpet` traces can specify a carpet plot on
            which they lie
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". scatterternary has a subset
            of the options available to scatter. "toself" connects
            the endpoints of the trace (or each segment of the
            trace if it has gaps) into a closed shape. "tonext"
            fills the space between two traces if one completely
            encloses the other (eg consecutive contour lines), and
            behaves like "toself" if there is no trace before it.
            "tonext" should not be used if one trace does not
            enclose the other.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattercarpet.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (a,b)
            point. If a single string, the same string appears over
            all the data points. If an array of strings, the items
            are mapped in order to the the data points in (a,b). To
            be seen, trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattercarpet.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scattercarpet.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattercarpet.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattercarpet.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each (a,b) point. If
            a single string, the same string appears over all the
            data points. If an array of strings, the items are
            mapped in order to the the data points in (a,b). If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `a`, `b` and
            `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattercarpet.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        r   )r   r   r   r   rH   }  s     dz Scattercarpet._prop_descriptionsNc/       3         s0	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|/
dd| _ddlm}0 |0 | jd< |0 | jd	< |0 | jd
< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0 | jd< |0  | jd< |0! | jd< |0" | jd< |0# | jd< |0$ | jd< |0% | jd< |0& | jd< |0' | jd < |0( | jd!< |0) | jd"< |0* | jd#< |0+ | jd$< |0, | jd%< |0- | jd&< |0. | jd'< |0/ | jd(< |00 | jd)< |01 | jd*< |02 | jd+< |03 | jd,< |04 | jd-< |05 | jd.< |06 | jd/< |07 | jd0< |08 | jd1< |09 | jd2< |0: | jd3< |0; | jd4< |
dd}1|dk	r|n|1| d< |
d	d}1|dk	r|n|1| d	< |
d
d}1|dk	r@|n|1| d
< |
dd}1|dk	rb|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|	dk	r|	n|1| d< |
dd}1|
dk	r|
n|1| d< |
dd}1|dk	r.|n|1| d< |
dd}1|dk	rP|n|1| d< |
dd}1|dk	rr|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r>|n|1| d< |
dd}1|dk	r`|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r|n|1| d< |
dd}1|dk	r
|n|1| d< |
d d}1|dk	r,|n|1| d < |
d!d}1|dk	rN|n|1| d!< |
d"d}1|dk	rp|n|1| d"< |
d#d}1|dk	r|n|1| d#< |
d$d}1|dk	r|n|1| d$< |
d%d}1|dk	r|n|1| d%< |
d&d}1| dk	r| n|1| d&< |
d'd}1|!dk	r|!n|1| d'< |
d(d}1|"dk	r<|"n|1| d(< |
d)d}1|#dk	r^|#n|1| d)< |
d*d}1|$dk	r|$n|1| d*< |
d+d}1|%dk	r|%n|1| d+< |
d,d}1|&dk	r|&n|1| d,< |
d-d}1|'dk	r|'n|1| d-< |
d.d}1|(dk	r|(n|1| d.< |
d/d}1|)dk	r*|)n|1| d/< |
d0d}1|*dk	rL|*n|1| d0< |
d1d}1|+dk	rn|+n|1| d1< |
d2d}1|,dk	r|,n|1| d2< |
d3d}1|-dk	r|-n|1| d3< |
d4d}1|.dk	r|.n|1| d4< dd5l<m=}2 d| j>d6< |2d6ddd7| jd6< |
d6d | j?f t|f|/ d| _dS )8ao.  
        Construct a new Scattercarpet object
        
        Plots a scatter trace on either the first carpet axis or the
        carpet axis with a matching `carpet` attribute.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scattercarpet`
        a
            Sets the a-axis coordinates.
        asrc
            Sets the source reference on plot.ly for  a .
        b
            Sets the b-axis coordinates.
        bsrc
            Sets the source reference on plot.ly for  b .
        carpet
            An identifier for this carpet, so that `scattercarpet`
            and `contourcarpet` traces can specify a carpet plot on
            which they lie
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        fill
            Sets the area to fill with a solid color. Use with
            `fillcolor` if not "none". scatterternary has a subset
            of the options available to scatter. "toself" connects
            the endpoints of the trace (or each segment of the
            trace if it has gaps) into a closed shape. "tonext"
            fills the space between two traces if one completely
            encloses the other (eg consecutive contour lines), and
            behaves like "toself" if there is no trace before it.
            "tonext" should not be used if one trace does not
            enclose the other.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scattercarpet.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (a,b)
            point. If a single string, the same string appears over
            all the data points. If an array of strings, the items
            are mapped in order to the the data points in (a,b). To
            be seen, trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scattercarpet.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scattercarpet.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        selected
            :class:`plotly.graph_objects.scattercarpet.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scattercarpet.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each (a,b) point. If
            a single string, the same string appears over all the
            data points. If an array of strings, the items are
            mapped in order to the the data points in (a,b). If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `a`, `b` and
            `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scattercarpet.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.

        Returns
        -------
        Scattercarpet
        scattercarpetNzThe first argument to the plotly.graph_objs.Scattercarpet 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scattercarpet`rJ   Fr   )r  rD  rE  rF  rG  r  r  r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r>   rB   )rK   rD   )rL   rM   r   )@rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  rO  r[   rP  rQ  rR  CarpetValidatorr  r`   ra   rS  r   re   rf   rg   r   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rT  rt   rx   r   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   rK   rE   r   )3r   r   rD  rE  rF  rG  r  r  r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r>   rB   r   Zv_scattercarpetr   rK   )rQ   r   r   rO   ~  s6     $


zScattercarpet.__init__).NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)7r   r   r   r   rD  r   rE  rF  rG  r  r  r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r   r*   r+   r,   r-   r/   r1   r2   r3   r4   r5   r7   r8   r   r9   r>   rB   rD   rG   rH   rO   r   r   r   )rQ   r   r  x  s  75#% 1 h                                             r  c            1       s"  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5edd Z6edd Z7d fdd	Z8  Z9S )	Scatter3dc             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zScatter3d.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ̀  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Ӏ  s    zScatter3d.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter3d.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a'  
        The 'error_x' property is an instance of ErrorX
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.ErrorX`
          - A dict of string/value properties that will be passed
            to the ErrorX constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                copy_zstyle
    
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scatter3d.ErrorX
        ry  r   )r   r   r   r   ry    s    IzScatter3d.error_xc             C   s   || d< d S )Nry  r   )r   r   r   r   r   ry  I  s    c             C   s   | d S )a'  
        The 'error_y' property is an instance of ErrorY
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.ErrorY`
          - A dict of string/value properties that will be passed
            to the ErrorY constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                copy_zstyle
    
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scatter3d.ErrorY
        rz  r   )r   r   r   r   rz  O  s    IzScatter3d.error_yc             C   s   || d< d S )Nrz  r   )r   r   r   r   r   rz    s    c             C   s   | d S )a  
        The 'error_z' property is an instance of ErrorZ
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.ErrorZ`
          - A dict of string/value properties that will be passed
            to the ErrorZ constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scatter3d.ErrorZ
        error_zr   )r   r   r   r   r    s    GzScatter3d.error_zc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zScatter3d.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   	  s    zScatter3d.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scatter3d.Hoverlabel
        r   r   )r   r   r   r   r     s    3zScatter3d.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   R  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   X  s    !zScatter3d.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter3d.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ac  
        Sets text elements associated with each (x,y,z) triplet. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y,z) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    zScatter3d.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter3d.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Â  s    zScatter3d.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ӂ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ق  s    zScatter3d.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter3d.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                autocolorscale
                    Determines whether the colorscale is a default
                    palette (`autocolorscale: true`) or the palette
                    determined by `line.colorscale`. Has an effect
                    only if in `line.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.
                cauto
                    Determines whether or not the color domain is
                    computed with respect to the input data (here
                    in `line.color`) or the bounds set in
                    `line.cmin` and `line.cmax`  Has an effect only
                    if in `line.color`is set to a numerical array.
                    Defaults to `false` when `line.cmin` and
                    `line.cmax` are set by the user.
                cmax
                    Sets the upper bound of the color domain. Has
                    an effect only if in `line.color`is set to a
                    numerical array. Value should have the same
                    units as in `line.color` and if set,
                    `line.cmin` must be set as well.
                cmid
                    Sets the mid-point of the color domain by
                    scaling `line.cmin` and/or `line.cmax` to be
                    equidistant to this point. Has an effect only
                    if in `line.color`is set to a numerical array.
                    Value should have the same units as in
                    `line.color`. Has no effect when `line.cauto`
                    is `false`.
                cmin
                    Sets the lower bound of the color domain. Has
                    an effect only if in `line.color`is set to a
                    numerical array. Value should have the same
                    units as in `line.color` and if set,
                    `line.cmax` must be set as well.
                color
                    Sets thelinecolor. 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 `line.cmin`
                    and `line.cmax` if set.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scatter3d.line.Col
                    orBar` instance or dict with compatible
                    properties
                colorscale
                    Sets the colorscale. Has an effect only if in
                    `line.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`line.cmin` and `line.cmax`.
                    Alternatively, `colorscale` may be a palette
                    name string of the following list: Greys,YlGnBu
                    ,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,R
                    ainbow,Portland,Jet,Hot,Blackbody,Earth,Electri
                    c,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                dash
                    Sets the dash style of the lines.
                reversescale
                    Reverses the color mapping if true. Has an
                    effect only if in `line.color`is set to a
                    numerical array. If true, `line.cmin` will
                    correspond to the last color in the array and
                    `line.cmax` will correspond to the first color.
                showscale
                    Determines whether or not a colorbar is
                    displayed for this trace. Has an effect only if
                    in `line.color`is set to a numerical array.
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scatter3d.Line
        r   r   )r   r   r   r   r     s    jzScatter3d.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   p  s    c             C   s   | d S )a5  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scatter3d.marker.C
                    olorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.scatter3d.marker.L
                    ine` instance or dict with compatible
                    properties
                opacity
                    Sets the marker opacity. Note that the marker
                    opacity for scatter3d traces must be a scalar
                    value for performance reasons. To set a
                    blending opacity value (i.e. which is not
                    transparent), set "marker.color" to an rgba
                    color and use its alpha channel.
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scatter3d.Marker
        r   r   )r   r   r   r   r   v  s     
zScatter3d.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zScatter3d.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   #  s    zScatter3d.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   1  s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK  7  s    zScatter3d.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  M  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   S  s    zScatter3d.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   c  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   i  s    zScatter3d.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   w  s    c             C   s   | d S )a  
        The 'projection' property is an instance of Projection
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.Projection`
          - A dict of string/value properties that will be passed
            to the Projection constructor
    
            Supported dict properties:
                
                x
                    :class:`plotly.graph_objects.scatter3d.projecti
                    on.X` instance or dict with compatible
                    properties
                y
                    :class:`plotly.graph_objects.scatter3d.projecti
                    on.Y` instance or dict with compatible
                    properties
                z
                    :class:`plotly.graph_objects.scatter3d.projecti
                    on.Z` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scatter3d.Projection
        
projectionr   )r   r   r   r   r  }  s    zScatter3d.projectionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter3d.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zScatter3d.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   Ʉ  s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scatter3d.Stream
        r,   r   )r   r   r   r   r,   τ  s    zScatter3d.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        If "-1", the scatter points are not fill with a surface If 0,
        1, 2, the scatter points are filled with a Delaunay surface
        about the x, y, z respectively.
    
        The 'surfaceaxis' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [-1, 0, 1, 2]

        Returns
        -------
        Any
        surfaceaxisr   )r   r   r   r   r    s    zScatter3d.surfaceaxisc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a
  
        Sets the surface fill color.
    
        The 'surfacecolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r  r   )r   r   r   r   r    s    3zScatter3d.surfacecolorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  <  s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y,z) triplet. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y,z) coordinates. If trace `hoverinfo`
        contains a "text" flag and "hovertext" is not set, these
        elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   B  s    zScatter3d.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   W  s    c             C   s   | d S )a  
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter3d.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scatter3d.Textfont
        r/   r   )r   r   r   r   r/   ]  s    *zScatter3d.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/     s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1     s    zScatter3d.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2     s    zScatter3d.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zScatter3d.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   ʅ  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   Ѕ  s    zScatter3d.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5     s    zScatter3d.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5     s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zScatter3d.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zScatter3d.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   8  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   >  s    zScatter3d.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   O  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   U  s    zScatter3d.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   c  s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  i  s    zScatter3d.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  {  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zScatter3d.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    zScatter3d.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zScatter3d.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zScatter3d.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   φ  s    c             C   s   | d S )z
        Sets the z coordinates.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Ն  s    zScatter3d.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the calendar system to use with `z` date data.
    
        The 'zcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zScatter3d.zcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter3d.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zScatter3d.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zScatter3d._parent_path_strc             C   s   dS )Na(          connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        error_x
            :class:`plotly.graph_objects.scatter3d.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.scatter3d.ErrorY` instance
            or dict with compatible properties
        error_z
            :class:`plotly.graph_objects.scatter3d.ErrorZ` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatter3d.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets text elements associated with each (x,y,z)
            triplet. If a single string, the same string appears
            over all the data points. If an array of string, the
            items are mapped in order to the this trace's (x,y,z)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatter3d.Line` instance
            or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatter3d.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        projection
            :class:`plotly.graph_objects.scatter3d.Projection`
            instance or dict with compatible properties
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatter3d.Stream` instance
            or dict with compatible properties
        surfaceaxis
            If "-1", the scatter points are not fill with a surface
            If 0, 1, 2, the scatter points are filled with a
            Delaunay surface about the x, y, z respectively.
        surfacecolor
            Sets the surface fill color.
        text
            Sets text elements associated with each (x,y,z)
            triplet. If a single string, the same string appears
            over all the data points. If an array of string, the
            items are mapped in order to the this trace's (x,y,z)
            coordinates. If trace `hoverinfo` contains a "text"
            flag and "hovertext" is not set, these elements will be
            seen in the hover labels.
        textfont
            :class:`plotly.graph_objects.scatter3d.Textfont`
            instance or dict with compatible properties
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates.
        zcalendar
            Sets the calendar system to use with `z` date data.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   !  s     WzScatter3d._prop_descriptionsNc2       6         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|2
dd| _ddlm}3 |3 | jd< |3 | jd	< |3 | jd
< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3 | jd< |3  | jd< |3! | jd< |3" | jd< |3# | jd< |3$ | jd< |3% | jd< |3& | jd< |3' | jd < |3( | jd!< |3) | jd"< |3* | jd#< |3+ | jd$< |3, | jd%< |3- | jd&< |3. | jd'< |3/ | jd(< |30 | jd)< |31 | jd*< |32 | jd+< |33 | jd,< |34 | jd-< |35 | jd.< |36 | jd/< |37 | jd0< |38 | jd1< |39 | jd2< |3: | jd3< |3; | jd4< |3< | jd5< |3= | jd6< |3> | jd7< |
dd}4|dk	r&|n|4| d< |
d	d}4|dk	rH|n|4| d	< |
d
d}4|dk	rj|n|4| d
< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|	dk	r|	n|4| d< |
dd}4|
dk	r6|
n|4| d< |
dd}4|dk	rX|n|4| d< |
dd}4|dk	rz|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r$|n|4| d< |
dd}4|dk	rF|n|4| d< |
dd}4|dk	rh|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r|n|4| d< |
dd}4|dk	r4|n|4| d< |
d d}4|dk	rV|n|4| d < |
d!d}4|dk	rx|n|4| d!< |
d"d}4|dk	r|n|4| d"< |
d#d}4|dk	r|n|4| d#< |
d$d}4|dk	r|n|4| d$< |
d%d}4|dk	r |n|4| d%< |
d&d}4| dk	r"| n|4| d&< |
d'd}4|!dk	rD|!n|4| d'< |
d(d}4|"dk	rf|"n|4| d(< |
d)d}4|#dk	r|#n|4| d)< |
d*d}4|$dk	r|$n|4| d*< |
d+d}4|%dk	r|%n|4| d+< |
d,d}4|&dk	r|&n|4| d,< |
d-d}4|'dk	r|'n|4| d-< |
d.d}4|(dk	r2|(n|4| d.< |
d/d}4|)dk	rT|)n|4| d/< |
d0d}4|*dk	rv|*n|4| d0< |
d1d}4|+dk	r|+n|4| d1< |
d2d}4|,dk	r|,n|4| d2< |
d3d}4|-dk	r|-n|4| d3< |
d4d}4|.dk	r|.n|4| d4< |
d5d}4|/dk		r |/n|4| d5< |
d6d}4|0dk		rB|0n|4| d6< |
d7d}4|1dk		rd|1n|4| d7< dd8l?m@}5 d| jAd9< |5d9ddd:| jd9< |
d9d | jBf t|f|2 d| _dS );a7+  
        Construct a new Scatter3d object
        
        The data visualized as scatter point or lines in 3D dimension
        is set in `x`, `y`, `z`. Text (appearing either on the chart or
        on hover only) is via `text`. Bubble charts are achieved by
        setting `marker.size` and/or `marker.color` Projections are
        achieved via `projection`. Surface fills are achieved via
        `surfaceaxis`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scatter3d`
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        error_x
            :class:`plotly.graph_objects.scatter3d.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.scatter3d.ErrorY` instance
            or dict with compatible properties
        error_z
            :class:`plotly.graph_objects.scatter3d.ErrorZ` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatter3d.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets text elements associated with each (x,y,z)
            triplet. If a single string, the same string appears
            over all the data points. If an array of string, the
            items are mapped in order to the this trace's (x,y,z)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatter3d.Line` instance
            or dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatter3d.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        projection
            :class:`plotly.graph_objects.scatter3d.Projection`
            instance or dict with compatible properties
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.scatter3d.Stream` instance
            or dict with compatible properties
        surfaceaxis
            If "-1", the scatter points are not fill with a surface
            If 0, 1, 2, the scatter points are filled with a
            Delaunay surface about the x, y, z respectively.
        surfacecolor
            Sets the surface fill color.
        text
            Sets text elements associated with each (x,y,z)
            triplet. If a single string, the same string appears
            over all the data points. If an array of string, the
            items are mapped in order to the this trace's (x,y,z)
            coordinates. If trace `hoverinfo` contains a "text"
            flag and "hovertext" is not set, these elements will be
            seen in the hover labels.
        textfont
            :class:`plotly.graph_objects.scatter3d.Textfont`
            instance or dict with compatible properties
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates.
        zcalendar
            Sets the calendar system to use with `z` date data.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Scatter3d
        	scatter3dNzThe first argument to the plotly.graph_objs.Scatter3d 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scatter3d`rJ   Fr   )r  r  r   r   ry  rz  r  r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r  r   r+   r,   r  r  r-   r/   r1   r2   r3   r4   r5   r7   r8   r9   r<   r  r?   r@   r  rC   r   r  r   )rK   rD   )rL   rM   r   )CrN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r  r[   r`   ra   r|  r}  ZErrorZValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rT  rt   rx   ZProjectionValidatorr   r|   r}   ZSurfaceaxisValidatorr  r~   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   rK   rE   r   )6r   r   r  r   r   ry  rz  r  r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r  r   r+   r,   r  r  r-   r/   r1   r2   r3   r4   r5   r7   r8   r9   r<   r  r?   r@   r  rC   r   r  r   r   Zv_scatter3dr   rK   )rQ   r   r   rO     sH     


zScatter3d.__init__)1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN):r   r   r   r   r  r   r   r   ry  rz  r  r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r  r   r+   r,   r  r  r-   r/   r1   r2   r3   r4   r5   r7   r8   r9   r<   r  r?   r@   r  rC   r   r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r    s,  KKI5#l 5, [                                                r  c            >       st  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?e?jdd Z?edd Z@e@jdd Z@edd ZAeAjdd ZAedd ZBedd ZCedd ZDd fdd	ZE  ZFS )Scatterc             C   s   | d S )a  
        Determines whether or not markers and text nodes are clipped
        about the subplot axes. To show markers and text nodes above
        axis lines and tick labels, make sure to set `xaxis.layer` and
        `yaxis.layer` to *below traces*.
    
        The 'cliponaxis' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
   r   )r   r   r   r   r
     s    zScatter.cliponaxisc             C   s   || d< d S )Nr
   r   )r   r   r   r   r   r
     s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the provided data arrays are connected.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zScatter.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zScatter.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   %  s    zScatter.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   3  s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   9  s    z
Scatter.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   G  s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   M  s    z
Scatter.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [  s    c             C   s   | d S )a#  
        The 'error_x' property is an instance of ErrorX
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.ErrorX`
          - A dict of string/value properties that will be passed
            to the ErrorX constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                copy_ystyle
    
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scatter.ErrorX
        ry  r   )r   r   r   r   ry  a  s    IzScatter.error_xc             C   s   || d< d S )Nry  r   )r   r   r   r   r   ry    s    c             C   s   | d S )a  
        The 'error_y' property is an instance of ErrorY
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.ErrorY`
          - A dict of string/value properties that will be passed
            to the ErrorY constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.scatter.ErrorY
        rz  r   )r   r   r   r   rz    s    GzScatter.error_yc             C   s   || d< d S )Nrz  r   )r   r   r   r   r   rz    s    c             C   s   | d S )a"  
        Sets the area to fill with a solid color. Defaults to "none"
        unless this trace is stacked, then it gets "tonexty"
        ("tonextx") if `orientation` is "v" ("h") Use with `fillcolor`
        if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0
        respectively. "tonextx" and "tonexty" fill between the
        endpoints of this trace and the endpoints of the trace before
        it, connecting those endpoints with straight lines (to make a
        stacked area graph); if there is no trace before it, they
        behave like "tozerox" and "tozeroy". "toself" connects the
        endpoints of the trace (or each segment of the trace if it has
        gaps) into a closed shape. "tonext" fills the space between two
        traces if one completely encloses the other (eg consecutive
        contour lines), and behaves like "toself" if there is no trace
        before it. "tonext" should not be used if one trace does not
        enclose the other. Traces in a `stackgroup` will only fill to
        (or be filled to) other traces in the same group. With multiple
        `stackgroup`s or some traces stacked and some not, if fill-
        linked traces are not already consecutive, the later ones will
        be pushed down in the drawing order.
    
        The 'fill' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['none', 'tozeroy', 'tozerox', 'tonexty', 'tonextx',
                'toself', 'tonext']

        Returns
        -------
        Any
        rJ  r   )r   r   r   r   rJ    s     zScatter.fillc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ  #  s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   )  s    5zScatter.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   `  s    c             C   s   | d S )aI  
        Only relevant when `stackgroup` is used, and only the first
        `groupnorm` found in the `stackgroup` will be used - including
        if `visible` is "legendonly" but not if it is `false`. Sets the
        normalization for the sum of this `stackgroup`. With
        "fraction", the value of each trace at each location is divided
        by the sum of all trace values at that location. "percent" is
        the same but multiplied by 100 to show percentages. If there
        are multiple subplots, or multiple `stackgroup`s on one
        subplot, each will be normalized within its own set.
    
        The 'groupnorm' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['', 'fraction', 'percent']

        Returns
        -------
        Any
        	groupnormr   )r   r   r   r   r  f  s    zScatter.groupnormc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  }  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zScatter.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.scatter.Hoverlabel
        r   r   )r   r   r   r   r     s    3zScatter.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Do the hover effects highlight individual points (markers or
        line points) or do they highlight filled regions? If the fill
        is "toself" or "tonext" and there are no markers or text, then
        the default is "fills", otherwise it is "points".
    
        The 'hoveron' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['points', 'fills'] joined with '+' characters
            (e.g. 'points+fills')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r     s    zScatter.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    !zScatter.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   .  s    zScatter.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   <  s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   B  s    zScatter.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   V  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   \  s    zScatter.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   j  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   p  s    zScatter.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zScatter.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aX  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the line color.
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                shape
                    Determines the line shape. With "spline" the
                    lines are drawn using spline interpolation. The
                    other available values correspond to step-wise
                    line shapes.
                simplify
                    Simplifies lines by removing nearly-collinear
                    points. When transitioning lines, it may be
                    desirable to disable this so that the number of
                    points along the resulting SVG path is
                    unaffected.
                smoothing
                    Has an effect only if `shape` is set to
                    "spline" Sets the amount of smoothing. 0
                    corresponds to no smoothing (equivalent to a
                    "linear" shape).
                width
                    Sets the line width (in px).

        Returns
        -------
        plotly.graph_objs.scatter.Line
        r   r   )r   r   r   r   r     s    )zScatter.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ܌  s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.scatter.marker.Col
                    orBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                gradient
                    :class:`plotly.graph_objects.scatter.marker.Gra
                    dient` instance or dict with compatible
                    properties
                line
                    :class:`plotly.graph_objects.scatter.marker.Lin
                    e` instance or dict with compatible properties
                maxdisplayed
                    Sets a maximum number of points to be drawn on
                    the graph. 0 corresponds to no limit.
                opacity
                    Sets the marker opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.
                size
                    Sets the marker size (in px).
                sizemin
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the minimum size (in px)
                    of the rendered marker points.
                sizemode
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the rule for which the
                    data in `size` is converted to pixels.
                sizeref
                    Has an effect only if `marker.size` is set to a
                    numerical array. Sets the scale factor used to
                    determine the rendered size of marker points.
                    Use with `sizemin` and `sizemode`.
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.scatter.Marker
        r   r   )r   r   r   r   r     s     zScatter.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   v  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   |  s    zScatter.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zScatter.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a  
        Determines the drawing mode for this scatter trace. If the
        provided `mode` includes "text" then the `text` elements appear
        at the coordinates. Otherwise, the `text` elements appear on
        hover. If there are less than 20 points and the trace is not
        stacked then the default is "lines+markers". Otherwise,
        "lines".
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
            (e.g. 'lines+markers')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK    s    zScatter.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK    s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   ȍ  s    zScatter.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   ؍  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   ލ  s    zScatter.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )aF  
        Only relevant when `stackgroup` is used, and only the first
        `orientation` found in the `stackgroup` will be used -
        including if `visible` is "legendonly" but not if it is
        `false`. Sets the stacking direction. With "v" ("h"), the y (x)
        values of subsequent traces are added. Also affects the default
        value of `fill`.
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(     s    zScatter.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(     s    c             C   s   | d S )af  
        r coordinates in scatter traces are deprecated!Please switch to
        the "scatterpolar" trace type.Sets the radial coordinatesfor
        legacy polar chart only.
    
        The 'r' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rY  r   )r   r   r   r   rY    s    z	Scatter.rc             C   s   || d< d S )NrY  r   )r   r   r   r   r   rY    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  r .
    
        The 'rsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r[  r   )r   r   r   r   r[  "  s    zScatter.rsrcc             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  0  s    c             C   s   | d S )a  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatter.selected.M
                    arker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scatter.selected.T
                    extfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scatter.Selected
        r   r   )r   r   r   r   r   6  s    zScatter.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P  s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   V  s    zScatter.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   h  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   n  s    zScatter.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   }  s    c             C   s   | d S )a  
        Only relevant when `stackgroup` is used, and only the first
        `stackgaps` found in the `stackgroup` will be used - including
        if `visible` is "legendonly" but not if it is `false`.
        Determines how we handle locations at which other traces in
        this group have data but this one does not. With *infer zero*
        we insert a zero at these locations. With "interpolate" we
        linearly interpolate between existing values, and extrapolate a
        constant beyond the existing values.
    
        The 'stackgaps' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['infer zero', 'interpolate']

        Returns
        -------
        Any
        	stackgapsr   )r   r   r   r   r    s    zScatter.stackgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Set several scatter traces (on the same subplot) to the same
        stackgroup in order to add their y values (or their x values if
        `orientation` is "h"). If blank or omitted this trace will not
        be stacked. Stacking also turns `fill` on by default, using
        "tonexty" ("tonextx") if `orientation` is "h" ("v") and sets
        the default `mode` to "lines" irrespective of point count. You
        can only stack on a numeric (linear or log) axis. Traces in a
        `stackgroup` will only fill to (or be filled to) other traces
        in the same group. With multiple `stackgroup`s or some traces
        stacked and some not, if fill-linked traces are not already
        consecutive, the later ones will be pushed down in the drawing
        order.
    
        The 'stackgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        
stackgroupr   )r   r   r   r   r    s    zScatter.stackgroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )ah  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.scatter.Stream
        r,   r   )r   r   r   r   r,     s    zScatter.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   ڎ  s    c             C   s   | d S )ag  
        t coordinates in scatter traces are deprecated!Please switch to
        the "scatterpolar" trace type.Sets the angular coordinatesfor
        legacy polar chart only.
    
        The 't' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        tr   )r   r   r   r   r    s    z	Scatter.tc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zScatter.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )a1  
        Sets the text font.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.scatter.Textfont
        r/   r   )r   r   r   r   r/     s    /zScatter.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   B  s    c             C   s   | d S )a/  
        Sets the positions of the `text` elements with respects to the
        (x,y) coordinates.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle left',
                'middle center', 'middle right', 'bottom left', 'bottom
                center', 'bottom right']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   H  s    zScatter.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   [  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   a  s    zScatter.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   o  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   u  s    zScatter.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4     s    zScatter.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5     s    zScatter.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  t .
    
        The 'tsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        tsrcr   )r   r   r   r   r    s    zScatter.tsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Ώ  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   ԏ  s    zScatter.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zScatter.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.scatter.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.scatter.unselected
                    .Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.scatter.unselected
                    .Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.scatter.Unselected
        r   r   )r   r   r   r   r     s    zScatter.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   %  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   +  s    zScatter.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   <  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   B  s    z	Scatter.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   P  s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   V  s    z
Scatter.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=   e  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   k  s    zScatter.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   ~  s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zScatter.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zScatter.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    z	Scatter.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA   Đ  s    z
Scatter.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA   Ӑ  s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   ِ  s    zScatter.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB     s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zScatter.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   
  s    zScatter.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zScatter.typec             C   s   dS )NrF   r   )r   r   r   r   rG   $  s    zScatter._parent_path_strc             C   s   dS )Na?          cliponaxis
            Determines whether or not markers and text nodes are
            clipped about the subplot axes. To show markers and
            text nodes above axis lines and tick labels, make sure
            to set `xaxis.layer` and `yaxis.layer` to *below
            traces*.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        error_x
            :class:`plotly.graph_objects.scatter.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.scatter.ErrorY` instance
            or dict with compatible properties
        fill
            Sets the area to fill with a solid color. Defaults to
            "none" unless this trace is stacked, then it gets
            "tonexty" ("tonextx") if `orientation` is "v" ("h") Use
            with `fillcolor` if not "none". "tozerox" and "tozeroy"
            fill to x=0 and y=0 respectively. "tonextx" and
            "tonexty" fill between the endpoints of this trace and
            the endpoints of the trace before it, connecting those
            endpoints with straight lines (to make a stacked area
            graph); if there is no trace before it, they behave
            like "tozerox" and "tozeroy". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other. Traces in a `stackgroup` will only fill to (or
            be filled to) other traces in the same group. With
            multiple `stackgroup`s or some traces stacked and some
            not, if fill-linked traces are not already consecutive,
            the later ones will be pushed down in the drawing
            order.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        groupnorm
            Only relevant when `stackgroup` is used, and only the
            first `groupnorm` found in the `stackgroup` will be
            used - including if `visible` is "legendonly" but not
            if it is `false`. Sets the normalization for the sum of
            this `stackgroup`. With "fraction", the value of each
            trace at each location is divided by the sum of all
            trace values at that location. "percent" is the same
            but multiplied by 100 to show percentages. If there are
            multiple subplots, or multiple `stackgroup`s on one
            subplot, each will be normalized within its own set.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatter.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatter.Line` instance or
            dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatter.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        orientation
            Only relevant when `stackgroup` is used, and only the
            first `orientation` found in the `stackgroup` will be
            used - including if `visible` is "legendonly" but not
            if it is `false`. Sets the stacking direction. With "v"
            ("h"), the y (x) values of subsequent traces are added.
            Also affects the default value of `fill`.
        r
            r coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the radial
            coordinatesfor legacy polar chart only.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.scatter.Selected` instance
            or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stackgaps
            Only relevant when `stackgroup` is used, and only the
            first `stackgaps` found in the `stackgroup` will be
            used - including if `visible` is "legendonly" but not
            if it is `false`. Determines how we handle locations at
            which other traces in this group have data but this one
            does not. With *infer zero* we insert a zero at these
            locations. With "interpolate" we linearly interpolate
            between existing values, and extrapolate a constant
            beyond the existing values.
        stackgroup
            Set several scatter traces (on the same subplot) to the
            same stackgroup in order to add their y values (or
            their x values if `orientation` is "h"). If blank or
            omitted this trace will not be stacked. Stacking also
            turns `fill` on by default, using "tonexty" ("tonextx")
            if `orientation` is "h" ("v") and sets the default
            `mode` to "lines" irrespective of point count. You can
            only stack on a numeric (linear or log) axis. Traces in
            a `stackgroup` will only fill to (or be filled to)
            other traces in the same group. With multiple
            `stackgroup`s or some traces stacked and some not, if
            fill-linked traces are not already consecutive, the
            later ones will be pushed down in the drawing order.
        stream
            :class:`plotly.graph_objects.scatter.Stream` instance
            or dict with compatible properties
        t
            t coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the
            angular coordinatesfor legacy polar chart only.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        tsrc
            Sets the source reference on plot.ly for  t .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatter.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   *  s      ?zScatter._prop_descriptionsNc?       C         s0  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|?
dd| _ddlm}@ |@ | jd< |@ | jd	< |@ | jd
< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@ | jd< |@  | jd< |@! | jd< |@" | jd< |@# | jd< |@$ | jd< |@% | jd< |@& | jd< |@' | jd < |@( | jd!< |@) | jd"< |@* | jd#< |@+ | jd$< |@, | jd%< |@- | jd&< |@. | jd'< |@/ | jd(< |@0 | jd)< |@1 | jd*< |@2 | jd+< |@3 | jd,< |@4 | jd-< |@5 | jd.< |@6 | jd/< |@7 | jd0< |@8 | jd1< |@9 | jd2< |@: | jd3< |@; | jd4< |@< | jd5< |@= | jd6< |@> | jd7< |@? | jd8< |@@ | jd9< |@A | jd:< |@B | jd;< |@C | jd<< |@D | jd=< |@E | jd>< |@F | jd?< |@G | jd@< |@H | jdA< |@I | jdB< |@J | jdC< |@K | jdD< |
dd}A|dk	r|n|A| d< |
d	d}A|dk	r|n|A| d	< |
d
d}A|dk	r |n|A| d
< |
dd}A|dk	rB|n|A| d< |
dd}A|dk	rd|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|	dk	r|	n|A| d< |
dd}A|
dk	r|
n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r0|n|A| d< |
dd}A|dk	rR|n|A| d< |
dd}A|dk	rt|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r@|n|A| d< |
dd}A|dk	rb|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
dd}A|dk	r|n|A| d< |
d d}A|dk	r|n|A| d < |
d!d}A|dk	r.|n|A| d!< |
d"d}A|dk	rP|n|A| d"< |
d#d}A|dk	rr|n|A| d#< |
d$d}A|dk	r|n|A| d$< |
d%d}A|dk	r|n|A| d%< |
d&d}A| dk	r| n|A| d&< |
d'd}A|!dk	r|!n|A| d'< |
d(d}A|"dk	r|"n|A| d(< |
d)d}A|#dk	r>|#n|A| d)< |
d*d}A|$dk	r`|$n|A| d*< |
d+d}A|%dk	r|%n|A| d+< |
d,d}A|&dk	r|&n|A| d,< |
d-d}A|'dk	r|'n|A| d-< |
d.d}A|(dk	r|(n|A| d.< |
d/d}A|)dk		r
|)n|A| d/< |
d0d}A|*dk		r,|*n|A| d0< |
d1d}A|+dk		rN|+n|A| d1< |
d2d}A|,dk		rp|,n|A| d2< |
d3d}A|-dk		r|-n|A| d3< |
d4d}A|.dk		r|.n|A| d4< |
d5d}A|/dk		r|/n|A| d5< |
d6d}A|0dk		r|0n|A| d6< |
d7d}A|1dk	
r|1n|A| d7< |
d8d}A|2dk	
r<|2n|A| d8< |
d9d}A|3dk	
r^|3n|A| d9< |
d:d}A|4dk	
r|4n|A| d:< |
d;d}A|5dk	
r|5n|A| d;< |
d<d}A|6dk	
r|6n|A| d<< |
d=d}A|7dk	
r|7n|A| d=< |
d>d}A|8dk	r|8n|A| d>< |
d?d}A|9dk	r*|9n|A| d?< |
d@d}A|:dk	rL|:n|A| d@< |
dAd}A|;dk	rn|;n|A| dA< |
dBd}A|<dk	r|<n|A| dB< |
dCd}A|=dk	r|=n|A| dC< |
dDd}A|>dk	r|>n|A| dD< ddElLmM}B d| jNdF< |BdFdddG| jdF< |
dFd | jOf t|f|? d| _dS )Ha+B  
        Construct a new Scatter object
        
        The scatter trace type encompasses line charts, scatter charts,
        text charts, and bubble charts. The data visualized as scatter
        point or lines is set in `x` and `y`. Text (appearing either on
        the chart or on hover only) is via `text`. Bubble charts are
        achieved by setting `marker.size` and/or `marker.color` to
        numerical arrays.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Scatter`
        cliponaxis
            Determines whether or not markers and text nodes are
            clipped about the subplot axes. To show markers and
            text nodes above axis lines and tick labels, make sure
            to set `xaxis.layer` and `yaxis.layer` to *below
            traces*.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the provided data arrays are connected.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        error_x
            :class:`plotly.graph_objects.scatter.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.scatter.ErrorY` instance
            or dict with compatible properties
        fill
            Sets the area to fill with a solid color. Defaults to
            "none" unless this trace is stacked, then it gets
            "tonexty" ("tonextx") if `orientation` is "v" ("h") Use
            with `fillcolor` if not "none". "tozerox" and "tozeroy"
            fill to x=0 and y=0 respectively. "tonextx" and
            "tonexty" fill between the endpoints of this trace and
            the endpoints of the trace before it, connecting those
            endpoints with straight lines (to make a stacked area
            graph); if there is no trace before it, they behave
            like "tozerox" and "tozeroy". "toself" connects the
            endpoints of the trace (or each segment of the trace if
            it has gaps) into a closed shape. "tonext" fills the
            space between two traces if one completely encloses the
            other (eg consecutive contour lines), and behaves like
            "toself" if there is no trace before it. "tonext"
            should not be used if one trace does not enclose the
            other. Traces in a `stackgroup` will only fill to (or
            be filled to) other traces in the same group. With
            multiple `stackgroup`s or some traces stacked and some
            not, if fill-linked traces are not already consecutive,
            the later ones will be pushed down in the drawing
            order.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        groupnorm
            Only relevant when `stackgroup` is used, and only the
            first `groupnorm` found in the `stackgroup` will be
            used - including if `visible` is "legendonly" but not
            if it is `false`. Sets the normalization for the sum of
            this `stackgroup`. With "fraction", the value of each
            trace at each location is divided by the sum of all
            trace values at that location. "percent" is the same
            but multiplied by 100 to show percentages. If there are
            multiple subplots, or multiple `stackgroup`s on one
            subplot, each will be normalized within its own set.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.scatter.Hoverlabel`
            instance or dict with compatible properties
        hoveron
            Do the hover effects highlight individual points
            (markers or line points) or do they highlight filled
            regions? If the fill is "toself" or "tonext" and there
            are no markers or text, then the default is "fills",
            otherwise it is "points".
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.scatter.Line` instance or
            dict with compatible properties
        marker
            :class:`plotly.graph_objects.scatter.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines the drawing mode for this scatter trace. If
            the provided `mode` includes "text" then the `text`
            elements appear at the coordinates. Otherwise, the
            `text` elements appear on hover. If there are less than
            20 points and the trace is not stacked then the default
            is "lines+markers". Otherwise, "lines".
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        orientation
            Only relevant when `stackgroup` is used, and only the
            first `orientation` found in the `stackgroup` will be
            used - including if `visible` is "legendonly" but not
            if it is `false`. Sets the stacking direction. With "v"
            ("h"), the y (x) values of subsequent traces are added.
            Also affects the default value of `fill`.
        r
            r coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the radial
            coordinatesfor legacy polar chart only.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.scatter.Selected` instance
            or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stackgaps
            Only relevant when `stackgroup` is used, and only the
            first `stackgaps` found in the `stackgroup` will be
            used - including if `visible` is "legendonly" but not
            if it is `false`. Determines how we handle locations at
            which other traces in this group have data but this one
            does not. With *infer zero* we insert a zero at these
            locations. With "interpolate" we linearly interpolate
            between existing values, and extrapolate a constant
            beyond the existing values.
        stackgroup
            Set several scatter traces (on the same subplot) to the
            same stackgroup in order to add their y values (or
            their x values if `orientation` is "h"). If blank or
            omitted this trace will not be stacked. Stacking also
            turns `fill` on by default, using "tonexty" ("tonextx")
            if `orientation` is "h" ("v") and sets the default
            `mode` to "lines" irrespective of point count. You can
            only stack on a numeric (linear or log) axis. Traces in
            a `stackgroup` will only fill to (or be filled to)
            other traces in the same group. With multiple
            `stackgroup`s or some traces stacked and some not, if
            fill-linked traces are not already consecutive, the
            later ones will be pushed down in the drawing order.
        stream
            :class:`plotly.graph_objects.scatter.Stream` instance
            or dict with compatible properties
        t
            t coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the
            angular coordinatesfor legacy polar chart only.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textfont
            Sets the text font.
        textposition
            Sets the positions of the `text` elements with respects
            to the (x,y) coordinates.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        tsrc
            Sets the source reference on plot.ly for  t .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.scatter.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Scatter
        scatterNzThe first argument to the plotly.graph_objs.Scatter 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Scatter`rJ   Fr   )r  r
   r  r   r   r   r   ry  rz  rJ  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r(   rY  r[  r   r*   r+   r  r  r,   r  r-   r/   r1   r2   r3   r4   r5   r  r7   r8   r   r9   r<   r=   r>   r  r?   r@   rA   rB   r  rC   )rK   rD   )rL   rM   r   )PrN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r]   r[   r  r`   ra   rc   rd   r|  r}  rS  r   ZGroupnormValidatorre   rf   rg   r   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rT  rt   rx   ry   rc  re  r   r{   r|   ZStackgapsValidatorZStackgroupValidatorr}   
TValidatorr~   r   r   r   r   r   r   TsrcValidatorr   r   r   r   r   r   r   r  r   r   r   r   r  r   r   rK   rE   r   )Cr   r   r
   r  r   r   r   r   ry  rz  rJ  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r(   rY  r[  r   r*   r+   r  r  r,   r  r-   r/   r1   r2   r3   r4   r5   r  r7   r8   r   r9   r<   r=   r>   r  r?   r@   rA   rB   r  rC   r   Z	v_scatterr   rK   )rQ   r   r   rO   i  s      


zScatter.__init__)>NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Gr   r   r   r   r
   r   r  r   r   r   r   ry  rz  rJ  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   rK  r#   r'   r(   rY  r[  r   r*   r+   r  r  r,   r  r-   r/   r1   r2   r3   r4   r5   r  r7   r8   r   r9   r<   r=   r>   r  r?   r@   rA   rB   r  rC   rD   rG   rH   rO   r   r   r   )rQ   r   r  މ  s|  KI"75#+ 1  C                                                             r  c                   s~  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZedEdF ZedGdH ZdL fdJdK	Z  ZS )MSankeyc             C   s   | d S )a  
        If value is `snap` (the default), the node arrangement is
        assisted by automatic snapping of elements to preserve space
        between nodes specified via `nodepad`. If value is
        `perpendicular`, the nodes can only move along a line
        perpendicular to the flow. If value is `freeform`, the nodes
        can freely move on the plane. If value is `fixed`, the nodes
        are stationary.
    
        The 'arrangement' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['snap', 'perpendicular', 'freeform', 'fixed']

        Returns
        -------
        Any
        arrangementr   )r   r   r   r   r    s    zSankey.arrangementc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zSankey.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zSankey.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   -  s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this sankey trace .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this sankey trace .
                x
                    Sets the horizontal domain of this sankey trace
                    (in plot fraction).
                y
                    Sets the vertical domain of this sankey trace
                    (in plot fraction).

        Returns
        -------
        plotly.graph_objs.sankey.Domain
        r   r   )r   r   r   r   r   3  s    zSankey.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q  s    c             C   s   | d S )a  
        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.
        Note that this attribute is superseded by `node.hoverinfo` and
        `node.hoverinfo` for nodes and links respectively.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of [] joined with '+' characters
            (e.g. '')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   W  s    zSankey.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.sankey.Hoverlabel
        r   r   )r   r   r   r   r   r  s    3zSankey.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    z
Sankey.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Õ  s    zSankey.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ѕ  s    c             C   s   | d S )a  
        The links of the Sankey plot.
    
        The 'link' property is an instance of Link
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.Link`
          - A dict of string/value properties that will be passed
            to the Link constructor
    
            Supported dict properties:
                
                color
                    Sets the `link` color. It can be a single
                    value, or an array for specifying color for
                    each `link`. If `link.color` is omitted, then
                    by default, a translucent grey link will be
                    used.
                colorscales
                    A tuple of :class:`plotly.graph_objects.sankey.
                    link.Colorscale` instances or dicts with
                    compatible properties
                colorscaledefaults
                    When used in a template (as layout.template.dat
                    a.sankey.link.colorscaledefaults), sets the
                    default property values to use for elements of
                    sankey.link.colorscales
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                hoverinfo
                    Determines which trace information appear when
                    hovering links. If `none` or `skip` are set, no
                    information is displayed upon hovering. But, if
                    `none` is set, click and hover events are still
                    fired.
                hoverlabel
                    :class:`plotly.graph_objects.sankey.link.Hoverl
                    abel` instance or dict with compatible
                    properties
                hovertemplate
                    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}". Numbers are formatted using d3-format's
                    syntax %{variable:d3-format}, for example
                    "Price: %{y:$.2f}".
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#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-3.x-api-
                    reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-
                    events/#event-data. Additionally, every
                    attributes that can be specified per-point (the
                    ones that are `arrayOk: true`) are available.
                    variables `value` and `label`. Anything
                    contained in tag `<extra>` is displayed in the
                    secondary box, for example
                    "<extra>{fullData.name}</extra>". To hide the
                    secondary box completely, use an empty tag
                    `<extra></extra>`.
                hovertemplatesrc
                    Sets the source reference on plot.ly for
                    hovertemplate .
                label
                    The shown name of the link.
                labelsrc
                    Sets the source reference on plot.ly for  label
                    .
                line
                    :class:`plotly.graph_objects.sankey.link.Line`
                    instance or dict with compatible properties
                source
                    An integer number `[0..nodes.length - 1]` that
                    represents the source node.
                sourcesrc
                    Sets the source reference on plot.ly for
                    source .
                target
                    An integer number `[0..nodes.length - 1]` that
                    represents the target node.
                targetsrc
                    Sets the source reference on plot.ly for
                    target .
                value
                    A numeric value representing the flow volume
                    value.
                valuesrc
                    Sets the source reference on plot.ly for  value
                    .

        Returns
        -------
        plotly.graph_objs.sankey.Link
        linkr   )r   r   r   r   r  ו  s    hzSankey.linkc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  A  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   G  s    zSankey.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   ]  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   c  s    zSankey.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   q  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   w  s    zSankey.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )aj  
        The nodes of the Sankey plot.
    
        The 'node' property is an instance of Node
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.Node`
          - A dict of string/value properties that will be passed
            to the Node constructor
    
            Supported dict properties:
                
                color
                    Sets the `node` color. It can be a single
                    value, or an array for specifying color for
                    each `node`. If `node.color` is omitted, then
                    the default `Plotly` color palette will be
                    cycled through to have a variety of colors.
                    These defaults are not fully opaque, to allow
                    some visibility of what is beneath the node.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                groups
                    Groups of nodes. Each group is defined by an
                    array with the indices of the nodes it
                    contains. Multiple groups can be specified.
                hoverinfo
                    Determines which trace information appear when
                    hovering nodes. If `none` or `skip` are set, no
                    information is displayed upon hovering. But, if
                    `none` is set, click and hover events are still
                    fired.
                hoverlabel
                    :class:`plotly.graph_objects.sankey.node.Hoverl
                    abel` instance or dict with compatible
                    properties
                hovertemplate
                    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}". Numbers are formatted using d3-format's
                    syntax %{variable:d3-format}, for example
                    "Price: %{y:$.2f}".
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#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-3.x-api-
                    reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-
                    events/#event-data. Additionally, every
                    attributes that can be specified per-point (the
                    ones that are `arrayOk: true`) are available.
                    variables `value` and `label`. Anything
                    contained in tag `<extra>` is displayed in the
                    secondary box, for example
                    "<extra>{fullData.name}</extra>". To hide the
                    secondary box completely, use an empty tag
                    `<extra></extra>`.
                hovertemplatesrc
                    Sets the source reference on plot.ly for
                    hovertemplate .
                label
                    The shown name of the node.
                labelsrc
                    Sets the source reference on plot.ly for  label
                    .
                line
                    :class:`plotly.graph_objects.sankey.node.Line`
                    instance or dict with compatible properties
                pad
                    Sets the padding (in px) between the `nodes`.
                thickness
                    Sets the thickness (in px) of the `nodes`.
                x
                    The normalized horizontal position of the node.
                xsrc
                    Sets the source reference on plot.ly for  x .
                y
                    The normalized vertical position of the node.
                ysrc
                    Sets the source reference on plot.ly for  y .

        Returns
        -------
        plotly.graph_objs.sankey.Node
        noder   )r   r   r   r   r    s    _zSankey.nodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the orientation of the Sankey diagram.
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(     s    zSankey.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(     s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   	  s    zSankey.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*     s    c             C   s   | d S )af  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.sankey.Stream
        r,   r   )r   r   r   r   r,   !  s    zSankey.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   <  s    c             C   s   | d S )a  
        Sets the font for node labels
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.sankey.Textfont
        r/   r   )r   r   r   r   r/   B  s    %zSankey.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   i  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   o  s    z
Sankey.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zSankey.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Sets the value formatting rule using d3 formatting mini-
        language which is similar to those of Python. See
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#d3_format
    
        The 'valueformat' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        valueformatr   )r   r   r   r   r    s    zSankey.valueformatc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aP  
        Adds a unit to follow the value in the hover tooltip. Add a
        space if a separation is necessary from the value.
    
        The 'valuesuffix' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        valuesuffixr   )r   r   r   r   r    s    zSankey.valuesuffixc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Η  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   ԗ  s    zSankey.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zSankey.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zSankey._parent_path_strc             C   s   dS )Na          arrangement
            If value is `snap` (the default), the node arrangement
            is assisted by automatic snapping of elements to
            preserve space between nodes specified via `nodepad`.
            If value is `perpendicular`, the nodes can only move
            along a line perpendicular to the flow. If value is
            `freeform`, the nodes can freely move on the plane. If
            value is `fixed`, the nodes are stationary.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.sankey.Domain` instance or
            dict with compatible properties
        hoverinfo
            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. Note that this attribute is
            superseded by `node.hoverinfo` and `node.hoverinfo` for
            nodes and links respectively.
        hoverlabel
            :class:`plotly.graph_objects.sankey.Hoverlabel`
            instance or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        link
            The links of the Sankey plot.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        node
            The nodes of the Sankey plot.
        orientation
            Sets the orientation of the Sankey diagram.
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        stream
            :class:`plotly.graph_objects.sankey.Stream` instance or
            dict with compatible properties
        textfont
            Sets the font for node labels
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        valueformat
            Sets the value formatting rule using d3 formatting
            mini-language which is similar to those of Python. See
            https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        valuesuffix
            Adds a unit to follow the value in the hover tooltip.
            Add a space if a separation is necessary from the
            value.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH     s    mzSankey._prop_descriptionsNc                s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm} | | jd< | | jd	< | | jd
< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< |  | jd< |! | jd< |" | jd< |# | jd< |$ | jd< |
dd}|dk	r|n|| d< |
d	d}|dk	r|n|| d	< |
d
d}|dk	r|n|| d
< |
dd}|dk	r |n|| d< |
dd}|dk	rB|n|| d< |
dd}|dk	rd|n|| d< |
dd}|dk	r|n|| d< |
dd}|	dk	r|	n|| d< |
dd}|
dk	r|
n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r0|n|| d< |
dd}|dk	rR|n|| d< |
dd}|dk	rt|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r@|n|| d< |
dd}|dk	rb|n|| d< |
dd}|dk	r|n|| d< ddl%m&} d| j'd< |dddd | jd< |
dd | j(f t|f| d| _dS )!a  
        Construct a new Sankey object
        
        Sankey plots for network flow data analysis. The nodes are
        specified in `nodes` and the links between sources and targets
        in `links`. The colors are set in `nodes[i].color` and
        `links[i].color`, otherwise defaults are used.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Sankey`
        arrangement
            If value is `snap` (the default), the node arrangement
            is assisted by automatic snapping of elements to
            preserve space between nodes specified via `nodepad`.
            If value is `perpendicular`, the nodes can only move
            along a line perpendicular to the flow. If value is
            `freeform`, the nodes can freely move on the plane. If
            value is `fixed`, the nodes are stationary.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        domain
            :class:`plotly.graph_objects.sankey.Domain` instance or
            dict with compatible properties
        hoverinfo
            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. Note that this attribute is
            superseded by `node.hoverinfo` and `node.hoverinfo` for
            nodes and links respectively.
        hoverlabel
            :class:`plotly.graph_objects.sankey.Hoverlabel`
            instance or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        link
            The links of the Sankey plot.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        node
            The nodes of the Sankey plot.
        orientation
            Sets the orientation of the Sankey diagram.
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        stream
            :class:`plotly.graph_objects.sankey.Stream` instance or
            dict with compatible properties
        textfont
            Sets the font for node labels
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        valueformat
            Sets the value formatting rule using d3 formatting
            mini-language which is similar to those of Python. See
            https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        valuesuffix
            Adds a unit to follow the value in the hover tooltip.
            Add a space if a separation is necessary from the
            value.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Sankey
        sankeyNzThe first argument to the plotly.graph_objs.Sankey 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Sankey`rJ   Fr   )r  r  r   r   r   r   r   r   r   r  r!   r"   r#   r  r(   r*   r,   r/   r7   r8   r  r  r9   )rK   rD   )rL   rM   r   ))rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ArrangementValidatorr[   r`   ra   r  re   rg   rl   rm   ZLinkValidatorrr   rs   rt   ZNodeValidatorry   r{   r}   r   r   r   ZValueformatValidatorZValuesuffixValidatorr   r   rK   rE   r   )r   r   r  r   r   r   r   r   r   r   r  r!   r"   r#   r  r(   r*   r,   r/   r7   r8   r  r  r9   r   Zv_sankeyr   rK   )rQ   r   r   rO   f  s     


zSankey.__init__)NNNNNNNNNNNNNNNNNNNNNNN) r   r   r   r   r  r   r   r   r   r   r   r   r   r  r!   r"   r#   r  r(   r*   r,   r/   r7   r8   r  r  r9   rD   rG   rH   rO   r   r   r   )rQ   r   r    s   5ja'q                      r  c            #       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'edidj Z(edkdl Z)dp fdndo	Z*  Z+S )q
Pointcloudc             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   z  s    zPointcloud.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPointcloud.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zPointcloud.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPointcloud.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ͙  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pointcloud.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.pointcloud.Hoverlabel
        r   r   )r   r   r   r   r   ә  s    3zPointcloud.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zPointcloud.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   $  s    zPointcloud.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   2  s    c             C   s   | d S )a  
        A sequential value, 0..n, supply it to avoid creating this
        array inside plotting. If specified, it must be a typed
        `Int32Array` array. Its length must be equal to or greater than
        the number of points. For the best performance and memory use,
        create one large `indices` typed array that is guaranteed to be
        at least as long as the largest number of points during use,
        and reuse it on each `Plotly.restyle()` call.
    
        The 'indices' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        indicesr   )r   r   r   r   r  8  s    zPointcloud.indicesc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  L  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  indices .
    
        The 'indicessrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        
indicessrcr   )r   r   r   r   r  R  s    zPointcloud.indicessrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  `  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   f  s    zPointcloud.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   w  s    c             C   s   | d S )a#  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pointcloud.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                blend
                    Determines if colors are blended together for a
                    translucency effect in case `opacity` is
                    specified as a value less then `1`. Setting
                    `blend` to `true` reduces zoom/pan speed if
                    used with large numbers of points.
                border
                    :class:`plotly.graph_objects.pointcloud.marker.
                    Border` instance or dict with compatible
                    properties
                color
                    Sets the marker fill color. It accepts a
                    specific color.If the color is not fully opaque
                    and there are hundreds of thousandsof points,
                    it may cause slower zooming and panning.
                opacity
                    Sets the marker opacity. The default value is
                    `1` (fully opaque). If the markers are not
                    fully opaque and there are hundreds of
                    thousands of points, it may cause slower
                    zooming and panning. Opacity fades the color
                    even if `blend` is left on `false` even if
                    there is no translucency effect in that case.
                sizemax
                    Sets the maximum size (in px) of the rendered
                    marker points. Effective when the `pointcloud`
                    shows only few points.
                sizemin
                    Sets the minimum size (in px) of the rendered
                    marker points, effective when the `pointcloud`
                    shows a million or more points.

        Returns
        -------
        plotly.graph_objs.pointcloud.Marker
        r   r   )r   r   r   r   r   }  s    /zPointcloud.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zPointcloud.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   ʚ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   К  s    zPointcloud.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   ޚ  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#     s    zPointcloud.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zPointcloud.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zPointcloud.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )an  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pointcloud.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.pointcloud.Stream
        r,   r   )r   r   r   r   r,   #  s    zPointcloud.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   >  s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   D  s    zPointcloud.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   Y  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   _  s    zPointcloud.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   m  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   s  s    zPointcloud.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zPointcloud.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zPointcloud.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9     s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<     s    zPointcloud.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   ϛ  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   ՛  s    zPointcloud.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )a  
        Specify `xbounds` in the shape of `[xMin, xMax] to avoid
        looping through the `xy` typed array. Use it in conjunction
        with `xy` and `ybounds` for the performance benefits.
    
        The 'xbounds' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        xboundsr   )r   r   r   r   r    s    zPointcloud.xboundsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  xbounds .
    
        The 'xboundssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        
xboundssrcr   )r   r   r   r   r    s    zPointcloud.xboundssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zPointcloud.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   &  s    c             C   s   | d S )a  
        Faster alternative to specifying `x` and `y` separately. If
        supplied, it must be a typed `Float32Array` array that
        represents points such that `xy[i * 2] = x[i]` and `xy[i * 2 +
        1] = y[i]`
    
        The 'xy' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        xyr   )r   r   r   r   r  ,  s    zPointcloud.xyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  =  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  xy .
    
        The 'xysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        xysrcr   )r   r   r   r   r  C  s    zPointcloud.xysrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Q  s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   W  s    zPointcloud.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   e  s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   k  s    zPointcloud.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   ~  s    c             C   s   | d S )a  
        Specify `ybounds` in the shape of `[yMin, yMax] to avoid
        looping through the `xy` typed array. Use it in conjunction
        with `xy` and `xbounds` for the performance benefits.
    
        The 'ybounds' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        yboundsr   )r   r   r   r   r    s    zPointcloud.yboundsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ybounds .
    
        The 'yboundssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        
yboundssrcr   )r   r   r   r   r    s    zPointcloud.yboundssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zPointcloud.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zPointcloud.typec             C   s   dS )NrF   r   )r   r   r   r   rG   Ȝ  s    zPointcloud._parent_path_strc             C   s   dS )Nab          customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.pointcloud.Hoverlabel`
            instance or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        indices
            A sequential value, 0..n, supply it to avoid creating
            this array inside plotting. If specified, it must be a
            typed `Int32Array` array. Its length must be equal to
            or greater than the number of points. For the best
            performance and memory use, create one large `indices`
            typed array that is guaranteed to be at least as long
            as the largest number of points during use, and reuse
            it on each `Plotly.restyle()` call.
        indicessrc
            Sets the source reference on plot.ly for  indices .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.pointcloud.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.pointcloud.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbounds
            Specify `xbounds` in the shape of `[xMin, xMax] to
            avoid looping through the `xy` typed array. Use it in
            conjunction with `xy` and `ybounds` for the performance
            benefits.
        xboundssrc
            Sets the source reference on plot.ly for  xbounds .
        xsrc
            Sets the source reference on plot.ly for  x .
        xy
            Faster alternative to specifying `x` and `y`
            separately. If supplied, it must be a typed
            `Float32Array` array that represents points such that
            `xy[i * 2] = x[i]` and `xy[i * 2 + 1] = y[i]`
        xysrc
            Sets the source reference on plot.ly for  xy .
        y
            Sets the y coordinates.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybounds
            Specify `ybounds` in the shape of `[yMin, yMax] to
            avoid looping through the `xy` typed array. Use it in
            conjunction with `xy` and `xbounds` for the performance
            benefits.
        yboundssrc
            Sets the source reference on plot.ly for  ybounds .
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   Μ  s     zPointcloud._prop_descriptionsNc$       (         s   t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|$
dd| _ddlm}% |% | jd< |% | jd	< |% | jd
< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |% | jd< |%  | jd< |%! | jd< |%" | jd< |%# | jd< |%$ | jd< |%% | jd< |%& | jd< |%' | jd < |%( | jd!< |%) | jd"< |%* | jd#< |%+ | jd$< |%, | jd%< |%- | jd&< |%. | jd'< |%/ | jd(< |%0 | jd)< |
dd}&|dk	rb|n|&| d< |
d	d}&|dk	r|n|&| d	< |
d
d}&|dk	r|n|&| d
< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r.|n|&| d< |
dd}&|	dk	rP|	n|&| d< |
dd}&|
dk	rr|
n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r>|n|&| d< |
dd}&|dk	r`|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r|n|&| d< |
dd}&|dk	r
|n|&| d< |
dd}&|dk	r,|n|&| d< |
dd}&|dk	rN|n|&| d< |
dd}&|dk	rp|n|&| d< |
d d}&|dk	r|n|&| d < |
d!d}&|dk	r|n|&| d!< |
d"d}&|dk	r|n|&| d"< |
d#d}&|dk	r|n|&| d#< |
d$d}&|dk	r|n|&| d$< |
d%d}&|dk	r<|n|&| d%< |
d&d}&| dk	r^| n|&| d&< |
d'd}&|!dk	r|!n|&| d'< |
d(d}&|"dk	r|"n|&| d(< |
d)d}&|#dk	r|#n|&| d)< dd*l1m2}' d| j3d+< |'d+ddd,| jd+< |
d+d | j4f t|f|$ d| _dS )-a  
        Construct a new Pointcloud object
        
        The data visualized as a point cloud set in `x` and `y` using
        the WebGl plotting engine.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Pointcloud`
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.pointcloud.Hoverlabel`
            instance or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        indices
            A sequential value, 0..n, supply it to avoid creating
            this array inside plotting. If specified, it must be a
            typed `Int32Array` array. Its length must be equal to
            or greater than the number of points. For the best
            performance and memory use, create one large `indices`
            typed array that is guaranteed to be at least as long
            as the largest number of points during use, and reuse
            it on each `Plotly.restyle()` call.
        indicessrc
            Sets the source reference on plot.ly for  indices .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.pointcloud.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.pointcloud.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbounds
            Specify `xbounds` in the shape of `[xMin, xMax] to
            avoid looping through the `xy` typed array. Use it in
            conjunction with `xy` and `ybounds` for the performance
            benefits.
        xboundssrc
            Sets the source reference on plot.ly for  xbounds .
        xsrc
            Sets the source reference on plot.ly for  x .
        xy
            Faster alternative to specifying `x` and `y`
            separately. If supplied, it must be a typed
            `Float32Array` array that represents points such that
            `xy[i * 2] = x[i]` and `xy[i * 2 + 1] = y[i]`
        xysrc
            Sets the source reference on plot.ly for  xy .
        y
            Sets the y coordinates.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybounds
            Specify `ybounds` in the shape of `[yMin, yMax] to
            avoid looping through the `xy` typed array. Use it in
            conjunction with `xy` and `xbounds` for the performance
            benefits.
        yboundssrc
            Sets the source reference on plot.ly for  ybounds .
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Pointcloud
        
pointcloudNzThe first argument to the plotly.graph_objs.Pointcloud 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Pointcloud`rJ   Fr   )r  r   r   r   r   r   r   r   r  r  r   r   r!   r"   r#   r'   r+   r,   r-   r3   r7   r8   r9   r<   r>   r  r  r?   r  r  r@   rB   r  r  rC   )rK   rD   )rL   rM   r   )5rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r`   r[   ra   re   rf   rg   rl   rm   ZIndicesValidatorZIndicessrcValidatorrq   r   rr   rs   rt   rx   r|   r}   r~   r   r   r   r   r   r   ZXboundsValidatorZXboundssrcValidatorr   ZXyValidatorZXysrcValidatorr   r   ZYboundsValidatorZYboundssrcValidatorr   r   rK   rE   r   )(r   r   r   r   r   r   r   r   r   r  r  r   r   r!   r"   r#   r'   r+   r,   r-   r3   r7   r8   r9   r<   r>   r  r  r?   r  r  r@   rB   r  r  rC   r   Zv_pointcloudr   rK   )rQ   r   r   rO   b  s     G


zPointcloud.__init__)#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN),r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r!   r"   r#   r'   r+   r,   r-   r3   r7   r8   r9   r<   r>   r  r  r?   r  r  r@   rB   r  r  rC   rD   rG   rH   rO   r   r   r   )rQ   r   r  v  s   51                                   r  c            4       sz  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8edd Z9edd Z:dddZ;d fdd	Z<  Z=S )Piec             C   s   | d S )z
        Determines whether outside text labels can push the margins.
    
        The 'automargin' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        
automarginr   )r   r   r   r   r  ɞ  s    zPie.automarginc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  מ  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ݞ  s    zPie.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPie.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aG  
        Specifies the direction at which succeeding sectors follow one
        another.
    
        The 'direction' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['clockwise', 'counterclockwise']

        Returns
        -------
        Any
        	directionr   )r   r   r   r   r    s    zPie.directionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the label step. See `label0` for more info.
    
        The 'dlabel' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        dlabelr   )r   r   r   r   r    s    z
Pie.dlabelc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ,  s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this pie trace .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this pie trace .
                x
                    Sets the horizontal domain of this pie trace
                    (in plot fraction).
                y
                    Sets the vertical domain of this pie trace (in
                    plot fraction).

        Returns
        -------
        plotly.graph_objs.pie.Domain
        r   r   )r   r   r   r   r   2  s    z
Pie.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P  s    c             C   s   | d S )a  
        Sets the fraction of the radius to cut out of the pie. Use this
        to make a donut chart.
    
        The 'hole' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        holer   )r   r   r   r   r  V  s    zPie.holec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  e  s    c             C   s   | d S )au  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'percent', 'name'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   k  s    zPie.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPie.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.pie.Hoverlabel
        r   r   )r   r   r   r   r     s    3zPie.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Ο  s    c             C   s   | d S )a`  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `label`, `color`, `value`, `percent` and `text`.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   ԟ  s    "zPie.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPie.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aK  
        Sets hover text elements associated with each sector. If a
        single string, the same string appears for all data points. If
        an array of string, the items are mapped in order of this
        trace's sectors. To be seen, trace `hoverinfo` must contain a
        "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    zPie.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   &  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ,  s    zPie.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   :  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   @  s    zPie.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   V  s    z
Pie.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   d  s    c             C   s   | d S )an  
        Sets the font used for `textinfo` lying inside the sector.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.pie.Insidetextfont
        r   r   )r   r   r   r   r   j  s    /zPie.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Controls the orientation of the text inside chart sectors. When
        set to "auto", text may be oriented in any direction in order
        to be as big as possible in the middle of a sector. The
        "horizontal" option orients text to be parallel with the bottom
        of the chart, and may make text smaller in order to achieve
        that goal. The "radial" option orients text along the radius of
        the sector. The "tangential" option orients text perpendicular
        to the radius of the sector.
    
        The 'insidetextorientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['horizontal', 'radial', 'tangential', 'auto']

        Returns
        -------
        Any
        r"  r   )r   r   r   r   r"    s    zPie.insidetextorientationc             C   s   || d< d S )Nr"  r   )r   r   r   r   r   r"    s    c             C   s   | d S )a=  
        Alternate to `labels`. Builds a numeric set of labels. Use with
        `dlabel` where `label0` is the starting label and `dlabel` the
        step.
    
        The 'label0' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        label0r   )r   r   r   r   r    s    z
Pie.label0c             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ͠  s    c             C   s   | d S )a  
        Sets the sector labels. If `labels` entries are duplicated, we
        sum associated `values` or simply count occurrences if `values`
        is not provided. For other array attributes (including color)
        we use the first non-empty entry among all occurrences of the
        label.
    
        The 'labels' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Ӡ  s    z
Pie.labelsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  labels .
    
        The 'labelssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPie.labelssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPie.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a\  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                colors
                    Sets the color of each sector. If not
                    specified, the default trace color set is used
                    to pick the sector colors.
                colorssrc
                    Sets the source reference on plot.ly for
                    colors .
                line
                    :class:`plotly.graph_objects.pie.marker.Line`
                    instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.pie.Marker
        r   r   )r   r   r   r   r     s    z
Pie.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   2  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   8  s    zPie.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   N  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   T  s    zPie.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   b  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   h  s    zPie.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   x  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   ~  s    zPie.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )at  
        Sets the font used for `textinfo` lying outside the sector.
    
        The 'outsidetextfont' property is an instance of Outsidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Outsidetextfont`
          - A dict of string/value properties that will be passed
            to the Outsidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.pie.Outsidetextfont
        r)   r   )r   r   r   r   r)     s    /zPie.outsidetextfontc             C   s   || d< d S )Nr)   r   )r   r   r   r   r   r)   á  s    c             C   s   | d S )a  
        Sets the fraction of larger radius to pull the sectors out from
        the center. This can be a constant to pull all slices apart
        from each other equally or an array to highlight one or more
        slices.
    
        The 'pull' property is a number and may be specified as:
          - An int or float in the interval [0, 1]
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        pullr   )r   r   r   r   r  ɡ  s    zPie.pullc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ۡ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  pull .
    
        The 'pullsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        pullsrcr   )r   r   r   r   r    s    zPie.pullsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Instead of the first slice starting at 12 o'clock, rotate to
        some other angle.
    
        The 'rotation' property is a number and may be specified as:
          - An int or float in the interval [-360, 360]

        Returns
        -------
        int|float
        rotationr   )r   r   r   r   r    s    zPie.rotationc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        If there are multiple pie charts that should be sized according
        to their totals, link them by providing a non-empty group id
        here shared by every trace in the same group.
    
        The 'scalegroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   
  s    zPie.scalegroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   !  s    zPie.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   0  s    c             C   s   | d S )z
        Determines whether or not the sectors are reordered from
        largest to smallest.
    
        The 'sort' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        sortr   )r   r   r   r   r  6  s    zPie.sortc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  E  s    c             C   s   | d S )a`  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.pie.Stream
        r,   r   )r   r   r   r   r,   K  s    z
Pie.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   f  s    c             C   s   | d S )a  
        Sets text elements associated with each sector. If trace
        `textinfo` contains a "text" flag, these elements will be seen
        on the chart. If trace `hoverinfo` contains a "text" flag and
        "hovertext" is not set, these elements will be seen in the
        hover labels.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-   l  s    zPie.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   ~  s    c             C   s   | d S )a8  
        Sets the font used for `textinfo`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.pie.Textfont
        r/   r   )r   r   r   r   r/     s    /zPie.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/     s    c             C   s   | d S )a  
        Determines which trace information appear on the graph.
    
        The 'textinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'percent'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        r0   r   )r   r   r   r   r0     s    zPie.textinfoc             C   s   || d< d S )Nr0   r   )r   r   r   r   r   r0   ̢  s    c             C   s   | d S )a}  
        Specifies the location of the `textinfo`.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'auto', 'none']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   Ң  s    zPie.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2     s    zPie.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zPie.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   
  s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `label`, `color`, `value`, `percent` and
        `text`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4     s    zPie.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   .  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   4  s    zPie.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   B  s    c             C   s   | d S )a  
        The 'title' property is an instance of Title
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.Title`
          - A dict of string/value properties that will be passed
            to the Title constructor
    
            Supported dict properties:
                
                font
                    Sets the font used for `title`. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                position
                    Specifies the location of the `title`. Note
                    that the title's position used to be set by the
                    now deprecated `titleposition` attribute.
                text
                    Sets the title of the chart. If it is empty, no
                    title is displayed. 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.

        Returns
        -------
        plotly.graph_objs.pie.Title
        titler   )r   r   r   r   r  H  s    z	Pie.titlec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  h  s    c             C   s   | d S )a  
        Deprecated: Please use pie.title.font instead. Sets the font
        used for `title`. Note that the title's font used to be set by
        the now deprecated `titlefont` attribute.
    
        The 'font' property is an instance of Font
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.pie.title.Font`
          - A dict of string/value properties that will be passed
            to the Font constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        
        	titlefontr   )r   r   r   r   r  n  s    1zPie.titlefontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Deprecated: Please use pie.title.position instead. Specifies
        the location of the `title`. Note that the title's position
        used to be set by the now deprecated `titleposition` attribute.
    
        The 'position' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top left', 'top center', 'top right', 'middle center',
                'bottom left', 'bottom center', 'bottom right']

        Returns
        -------
        
        titlepositionr   )r   r   r   r   r    s    zPie.titlepositionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zPie.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   ϣ  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   գ  s    zPie.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Sets the values of the sectors. If omitted, we count
        occurrences of each label.
    
        The 'values' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    z
Pie.valuesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  values .
    
        The 'valuessrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zPie.valuessrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zPie.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   0  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   6  s    zPie.typec             C   s   dS )NrF   r   )r   r   r   r   rG   <  s    zPie._parent_path_strc             C   s   dS )Na-          automargin
            Determines whether outside text labels can push the
            margins.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        direction
            Specifies the direction at which succeeding sectors
            follow one another.
        dlabel
            Sets the label step. See `label0` for more info.
        domain
            :class:`plotly.graph_objects.pie.Domain` instance or
            dict with compatible properties
        hole
            Sets the fraction of the radius to cut out of the pie.
            Use this to make a donut chart.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.pie.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `label`, `color`, `value`,
            `percent` and `text`. Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        insidetextorientation
            Controls the orientation of the text inside chart
            sectors. When set to "auto", text may be oriented in
            any direction in order to be as big as possible in the
            middle of a sector. The "horizontal" option orients
            text to be parallel with the bottom of the chart, and
            may make text smaller in order to achieve that goal.
            The "radial" option orients text along the radius of
            the sector. The "tangential" option orients text
            perpendicular to the radius of the sector.
        label0
            Alternate to `labels`. Builds a numeric set of labels.
            Use with `dlabel` where `label0` is the starting label
            and `dlabel` the step.
        labels
            Sets the sector labels. If `labels` entries are
            duplicated, we sum associated `values` or simply count
            occurrences if `values` is not provided. For other
            array attributes (including color) we use the first
            non-empty entry among all occurrences of the label.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.pie.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        outsidetextfont
            Sets the font used for `textinfo` lying outside the
            sector.
        pull
            Sets the fraction of larger radius to pull the sectors
            out from the center. This can be a constant to pull all
            slices apart from each other equally or an array to
            highlight one or more slices.
        pullsrc
            Sets the source reference on plot.ly for  pull .
        rotation
            Instead of the first slice starting at 12 o'clock,
            rotate to some other angle.
        scalegroup
            If there are multiple pie charts that should be sized
            according to their totals, link them by providing a
            non-empty group id here shared by every trace in the
            same group.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        sort
            Determines whether or not the sectors are reordered
            from largest to smallest.
        stream
            :class:`plotly.graph_objects.pie.Stream` instance or
            dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textposition
            Specifies the location of the `textinfo`.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `label`,
            `color`, `value`, `percent` and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        title
            :class:`plotly.graph_objects.pie.Title` instance or
            dict with compatible properties
        titlefont
            Deprecated: Please use pie.title.font instead. Sets the
            font used for `title`. Note that the title's font used
            to be set by the now deprecated `titlefont` attribute.
        titleposition
            Deprecated: Please use pie.title.position instead.
            Specifies the location of the `title`. Note that the
            title's position used to be set by the now deprecated
            `titleposition` attribute.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values of the sectors. If omitted, we count
            occurrences of each label.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   B  s     mzPie._prop_descriptions)r  font)r  position)r  r  Nc5       9         sP
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|5
dd| _ddlm}6 |6 | jd< |6 | jd	< |6 | jd
< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6  | jd< |6! | jd< |6" | jd< |6# | jd< |6$ | jd< |6% | jd< |6& | jd< |6' | jd < |6( | jd!< |6) | jd"< |6* | jd#< |6+ | jd$< |6, | jd%< |6- | jd&< |6. | jd'< |6/ | jd(< |60 | jd)< |61 | jd*< |62 | jd+< |63 | jd,< |64 | jd-< |65 | jd.< |66 | jd/< |67 | jd0< |68 | jd1< |69 | jd2< |6: | jd3< |6; | jd4< |6< | jd5< |6= | jd6< |6> | jd7< |6? | jd8< |
dd}7|dk	r4|n|7| d< |
d	d}7|dk	rV|n|7| d	< |
d
d}7|dk	rx|n|7| d
< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r |n|7| d< |
dd}7|	dk	r"|	n|7| d< |
dd}7|
dk	rD|
n|7| d< |
dd}7|dk	rf|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r2|n|7| d< |
dd}7|dk	rT|n|7| d< |
dd}7|dk	rv|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r |n|7| d< |
dd}7|dk	rB|n|7| d< |
d d}7|dk	rd|n|7| d < |
d!d}7|dk	r|n|7| d!< |
d"d}7|dk	r|n|7| d"< |
d#d}7|dk	r|n|7| d#< |
d$d}7|dk	r|n|7| d$< |
d%d}7|dk	r|n|7| d%< |
d&d}7| dk	r0| n|7| d&< |
d'd}7|!dk	rR|!n|7| d'< |
d(d}7|"dk	rt|"n|7| d(< |
d)d}7|#dk	r|#n|7| d)< |
d*d}7|$dk	r|$n|7| d*< |
d+d}7|%dk	r|%n|7| d+< |
d,d}7|&dk	r|&n|7| d,< |
d-d}7|'dk	r|'n|7| d-< |
d.d}7|(dk	r@|(n|7| d.< |
d/d}7|)dk	rb|)n|7| d/< |
d0d}7|*dk	r|*n|7| d0< |
d1d}7|+dk	r|+n|7| d1< |
d2d}7|,dk	r|,n|7| d2< |
d3d}7|-dk	r|-n|7| d3< |
d9d}7|.dk		r|.n|7}7|7dk		r"|7| d9< |
d:d}7|/dk		r<|/n|7}7|7dk		rR|7| d:< |
d4d}7|0dk		rl|0n|7| d4< |
d5d}7|1dk		r|1n|7| d5< |
d6d}7|2dk		r|2n|7| d6< |
d7d}7|3dk		r|3n|7| d7< |
d8d}7|4dk		r|4n|7| d8< dd;l@mA}8 d| jBd<< |8d<ddd=| jd<< |
d<d | jCf t|f|5 d| _dS )>a.  
        Construct a new Pie object
        
        A data visualized by the sectors of the pie is set in `values`.
        The sector labels are set in `labels`. The sector colors are
        set in `marker.colors`

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Pie`
        automargin
            Determines whether outside text labels can push the
            margins.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        direction
            Specifies the direction at which succeeding sectors
            follow one another.
        dlabel
            Sets the label step. See `label0` for more info.
        domain
            :class:`plotly.graph_objects.pie.Domain` instance or
            dict with compatible properties
        hole
            Sets the fraction of the radius to cut out of the pie.
            Use this to make a donut chart.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.pie.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `label`, `color`, `value`,
            `percent` and `text`. Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        insidetextorientation
            Controls the orientation of the text inside chart
            sectors. When set to "auto", text may be oriented in
            any direction in order to be as big as possible in the
            middle of a sector. The "horizontal" option orients
            text to be parallel with the bottom of the chart, and
            may make text smaller in order to achieve that goal.
            The "radial" option orients text along the radius of
            the sector. The "tangential" option orients text
            perpendicular to the radius of the sector.
        label0
            Alternate to `labels`. Builds a numeric set of labels.
            Use with `dlabel` where `label0` is the starting label
            and `dlabel` the step.
        labels
            Sets the sector labels. If `labels` entries are
            duplicated, we sum associated `values` or simply count
            occurrences if `values` is not provided. For other
            array attributes (including color) we use the first
            non-empty entry among all occurrences of the label.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.pie.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        outsidetextfont
            Sets the font used for `textinfo` lying outside the
            sector.
        pull
            Sets the fraction of larger radius to pull the sectors
            out from the center. This can be a constant to pull all
            slices apart from each other equally or an array to
            highlight one or more slices.
        pullsrc
            Sets the source reference on plot.ly for  pull .
        rotation
            Instead of the first slice starting at 12 o'clock,
            rotate to some other angle.
        scalegroup
            If there are multiple pie charts that should be sized
            according to their totals, link them by providing a
            non-empty group id here shared by every trace in the
            same group.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        sort
            Determines whether or not the sectors are reordered
            from largest to smallest.
        stream
            :class:`plotly.graph_objects.pie.Stream` instance or
            dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textposition
            Specifies the location of the `textinfo`.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `label`,
            `color`, `value`, `percent` and `text`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        title
            :class:`plotly.graph_objects.pie.Title` instance or
            dict with compatible properties
        titlefont
            Deprecated: Please use pie.title.font instead. Sets the
            font used for `title`. Note that the title's font used
            to be set by the now deprecated `titlefont` attribute.
        titleposition
            Deprecated: Please use pie.title.position instead.
            Specifies the location of the `title`. Note that the
            title's position used to be set by the now deprecated
            `titleposition` attribute.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values of the sectors. If omitted, we count
            occurrences of each label.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Pie
        pieNz}The first argument to the plotly.graph_objs.Pie 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Pie`rJ   Fr   )r  r  r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r"  r  r   r   r   r   r!   r"   r#   r'   r)   r  r  r  r   r+   r  r,   r-   r/   r0   r1   r2   r3   r4   r5   r  r7   r8   r   r   r9   r  r  )rK   rD   )rL   rM   r   )DrN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZAutomarginValidatorr[   r`   ra   DirectionValidatorDlabelValidatorr  ZHoleValidatorre   rf   rg   rh   ri   rj   rk   rl   rm   rp   r%  Label0Validatorr  r  rq   r   rr   rs   rt   rx   rz   ZPullValidatorZPullsrcValidatorZRotationValidatorr   r|   ZSortValidatorr}   r~   r   r   r   r   r   r   r   TitleValidatorr   r   r  r	  r   r   rK   rE   r   )9r   r   r  r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r"  r  r   r   r   r   r!   r"   r#   r'   r)   r  r  r  r   r+   r  r,   r-   r/   r0   r1   r2   r3   r4   r5   r  r  r  r7   r8   r   r   r9   r   Zv_pier   rK   )rQ   r   r   rO   5  s^     4




zPie.__init__)4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)>r   r   r   r   r  r   r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r"  r  r   r   r   r   r!   r"   r#   r'   r)   r  r  r  r   r+   r  r,   r-   r/   r0   r1   r2   r3   r4   r5   r  r  r  r7   r8   r   r   r9   rD   rG   rH   _mapped_propertiesrO   r   r   r   )rQ   r   r  Ş  s@  5$111 3 p                                                   r  c                   sJ  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zed?d@ ZedAdB ZdF fdDdE	Z  ZS )G	Parcoordsc             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   C  s    zParcoords.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   T  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Z  s    zParcoords.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h  s    c             C   s   | d S )a#  
        The dimensions (variables) of the parallel coordinates chart.
        2..60 dimensions are supported.
    
        The 'dimensions' property is a tuple of instances of
        Dimension that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.parcoords.Dimension
          - A list or tuple of dicts of string/value properties that
            will be passed to the Dimension constructor
    
            Supported dict properties:
                
                constraintrange
                    The domain range to which the filter on the
                    dimension is constrained. Must be an array of
                    `[fromValue, toValue]` with `fromValue <=
                    toValue`, or if `multiselect` is not disabled,
                    you may give an array of arrays, where each
                    inner array is `[fromValue, toValue]`.
                label
                    The shown name of the dimension.
                multiselect
                    Do we allow multiple selection ranges or just a
                    single range?
                name
                    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.
                range
                    The domain range that represents the full,
                    shown axis extent. Defaults to the `values`
                    extent. Must be an array of `[fromValue,
                    toValue]` with finite numbers as elements.
                templateitemname
                    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`.
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                values
                    Dimension values. `values[n]` represents the
                    value of the `n`th point in the dataset,
                    therefore the `values` vector for all
                    dimensions must be the same (longer vectors
                    will be truncated). Each value must be a finite
                    number.
                valuessrc
                    Sets the source reference on plot.ly for
                    values .
                visible
                    Shows the dimension when set to `true` (the
                    default). Hides the dimension for `false`.

        Returns
        -------
        tuple[plotly.graph_objs.parcoords.Dimension]
        r:  r   )r   r   r   r   r:  n  s    `zParcoords.dimensionsc             C   s   || d< d S )Nr:  r   )r   r   r   r   r   r:  Ч  s    c             C   s   | d S )aa  
        When used in a template (as
        layout.template.data.parcoords.dimensiondefaults), sets the
        default property values to use for elements of
        parcoords.dimensions
    
        The 'dimensiondefaults' property is an instance of Dimension
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Dimension`
          - A dict of string/value properties that will be passed
            to the Dimension constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.parcoords.Dimension
        r;  r   )r   r   r   r   r;  ֧  s    zParcoords.dimensiondefaultsc             C   s   || d< d S )Nr;  r   )r   r   r   r   r   r;    s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this parcoords
                    trace .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this parcoords trace .
                x
                    Sets the horizontal domain of this parcoords
                    trace (in plot fraction).
                y
                    Sets the vertical domain of this parcoords
                    trace (in plot fraction).

        Returns
        -------
        plotly.graph_objs.parcoords.Domain
        r   r   )r   r   r   r   r     s    zParcoords.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zParcoords.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   '  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   -  s    zParcoords.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ;  s    c             C   s   | d S )a@  
        Sets the angle of the labels with respect to the horizontal.
        For example, a `tickangle` of -90 draws the labels vertically.
        Tilted labels with "labelangle" may be positioned better inside
        margins when `labelposition` is set to "bottom".
    
        The 'labelangle' property is a angle (in degrees) that may be
        specified as a number between -180 and 180. Numeric values outside this
        range are converted to the equivalent value
        (e.g. 270 is converted to -90).

        Returns
        -------
        int|float
        
labelangler   )r   r   r   r   r  A  s    zParcoords.labelanglec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  T  s    c             C   s   | d S )a  
        Sets the font for the `dimension` labels.
    
        The 'labelfont' property is an instance of Labelfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Labelfont`
          - A dict of string/value properties that will be passed
            to the Labelfont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.parcoords.Labelfont
        	labelfontr   )r   r   r   r   r  Z  s    %zParcoords.labelfontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Specifies the location of the `label`. "top" positions labels
        above, next to the title "bottom" positions labels below the
        graph Tilted labels with "labelangle" may be positioned better
        inside margins when `labelposition` is set to "bottom".
    
        The 'labelside' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['top', 'bottom']

        Returns
        -------
        Any
        	labelsider   )r   r   r   r   r    s    zParcoords.labelsidec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )ah  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                autocolorscale
                    Determines whether the colorscale is a default
                    palette (`autocolorscale: true`) or the palette
                    determined by `line.colorscale`. Has an effect
                    only if in `line.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.
                cauto
                    Determines whether or not the color domain is
                    computed with respect to the input data (here
                    in `line.color`) or the bounds set in
                    `line.cmin` and `line.cmax`  Has an effect only
                    if in `line.color`is set to a numerical array.
                    Defaults to `false` when `line.cmin` and
                    `line.cmax` are set by the user.
                cmax
                    Sets the upper bound of the color domain. Has
                    an effect only if in `line.color`is set to a
                    numerical array. Value should have the same
                    units as in `line.color` and if set,
                    `line.cmin` must be set as well.
                cmid
                    Sets the mid-point of the color domain by
                    scaling `line.cmin` and/or `line.cmax` to be
                    equidistant to this point. Has an effect only
                    if in `line.color`is set to a numerical array.
                    Value should have the same units as in
                    `line.color`. Has no effect when `line.cauto`
                    is `false`.
                cmin
                    Sets the lower bound of the color domain. Has
                    an effect only if in `line.color`is set to a
                    numerical array. Value should have the same
                    units as in `line.color` and if set,
                    `line.cmax` must be set as well.
                color
                    Sets thelinecolor. 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 `line.cmin`
                    and `line.cmax` if set.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.parcoords.line.Col
                    orBar` instance or dict with compatible
                    properties
                colorscale
                    Sets the colorscale. Has an effect only if in
                    `line.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`line.cmin` and `line.cmax`.
                    Alternatively, `colorscale` may be a palette
                    name string of the following list: Greys,YlGnBu
                    ,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,R
                    ainbow,Portland,Jet,Hot,Blackbody,Earth,Electri
                    c,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                reversescale
                    Reverses the color mapping if true. Has an
                    effect only if in `line.color`is set to a
                    numerical array. If true, `line.cmin` will
                    correspond to the last color in the array and
                    `line.cmax` will correspond to the first color.
                showscale
                    Determines whether or not a colorbar is
                    displayed for this trace. Has an effect only if
                    in `line.color`is set to a numerical array.

        Returns
        -------
        plotly.graph_objs.parcoords.Line
        r   r   )r   r   r   r   r     s    fzParcoords.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zParcoords.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   #  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   )  s    zParcoords.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   7  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   =  s    zParcoords.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   M  s    c             C   s   | d S )a  
        Sets the font for the `dimension` range values.
    
        The 'rangefont' property is an instance of Rangefont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Rangefont`
          - A dict of string/value properties that will be passed
            to the Rangefont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.parcoords.Rangefont
        	rangefontr   )r   r   r   r   r  S  s    %zParcoords.rangefontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  z  s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.parcoords.Stream
        r,   r   )r   r   r   r   r,     s    zParcoords.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        Sets the font for the `dimension` tick values.
    
        The 'tickfont' property is an instance of Tickfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcoords.Tickfont`
          - A dict of string/value properties that will be passed
            to the Tickfont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.parcoords.Tickfont
        tickfontr   )r   r   r   r   r    s    %zParcoords.tickfontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ȩ  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   Ω  s    zParcoords.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   ީ  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zParcoords.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zParcoords.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zParcoords.typec             C   s   dS )NrF   r   )r   r   r   r   rG   "  s    zParcoords._parent_path_strc             C   s   dS )Na*          customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dimensions
            The dimensions (variables) of the parallel coordinates
            chart. 2..60 dimensions are supported.
        dimensiondefaults
            When used in a template (as
            layout.template.data.parcoords.dimensiondefaults), sets
            the default property values to use for elements of
            parcoords.dimensions
        domain
            :class:`plotly.graph_objects.parcoords.Domain` instance
            or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        labelangle
            Sets the angle of the labels with respect to the
            horizontal. For example, a `tickangle` of -90 draws the
            labels vertically. Tilted labels with "labelangle" may
            be positioned better inside margins when
            `labelposition` is set to "bottom".
        labelfont
            Sets the font for the `dimension` labels.
        labelside
            Specifies the location of the `label`. "top" positions
            labels above, next to the title "bottom" positions
            labels below the graph Tilted labels with "labelangle"
            may be positioned better inside margins when
            `labelposition` is set to "bottom".
        line
            :class:`plotly.graph_objects.parcoords.Line` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        rangefont
            Sets the font for the `dimension` range values.
        stream
            :class:`plotly.graph_objects.parcoords.Stream` instance
            or dict with compatible properties
        tickfont
            Sets the font for the `dimension` tick values.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   (  s    `zParcoords._prop_descriptionsNc                s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm} | | jd< | | jd	< | | jd
< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< |  | jd< |! | jd< |" | jd< |
dd}|dk	r|n|| d< |
d	d}|dk	r|n|| d	< |
d
d}|dk	r|n|| d
< |
dd}|dk	r|n|| d< |
dd}|dk	r&|n|| d< |
dd}|dk	rH|n|| d< |
dd}|dk	rj|n|| d< |
dd}|	dk	r|	n|| d< |
dd}|
dk	r|
n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r6|n|| d< |
dd}|dk	rX|n|| d< |
dd}|dk	rz|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r$|n|| d< ddl#m$} d| j%d< |dddd| jd< |
dd | j&f t|f| d| _dS )a  
        Construct a new Parcoords object
        
        Parallel coordinates for multidimensional exploratory data
        analysis. The samples are specified in `dimensions`. The colors
        are set in `line.color`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Parcoords`
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dimensions
            The dimensions (variables) of the parallel coordinates
            chart. 2..60 dimensions are supported.
        dimensiondefaults
            When used in a template (as
            layout.template.data.parcoords.dimensiondefaults), sets
            the default property values to use for elements of
            parcoords.dimensions
        domain
            :class:`plotly.graph_objects.parcoords.Domain` instance
            or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        labelangle
            Sets the angle of the labels with respect to the
            horizontal. For example, a `tickangle` of -90 draws the
            labels vertically. Tilted labels with "labelangle" may
            be positioned better inside margins when
            `labelposition` is set to "bottom".
        labelfont
            Sets the font for the `dimension` labels.
        labelside
            Specifies the location of the `label`. "top" positions
            labels above, next to the title "bottom" positions
            labels below the graph Tilted labels with "labelangle"
            may be positioned better inside margins when
            `labelposition` is set to "bottom".
        line
            :class:`plotly.graph_objects.parcoords.Line` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        rangefont
            Sets the font for the `dimension` range values.
        stream
            :class:`plotly.graph_objects.parcoords.Stream` instance
            or dict with compatible properties
        tickfont
            Sets the font for the `dimension` tick values.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Parcoords
        	parcoordsNzThe first argument to the plotly.graph_objs.Parcoords 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Parcoords`rJ   Fr   )r  r   r   r:  r;  r   r   r   r  r  r  r   r!   r"   r#   r  r,   r  r7   r8   r9   )rK   rD   )rL   rM   r   )'rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r`   r[   ra   rA  rB  r  rl   rm   ZLabelangleValidatorLabelfontValidatorZLabelsideValidatorr   rr   rs   rt   ZRangefontValidatorr}   TickfontValidatorr   r   r   r   rK   rE   r   )r   r   r   r   r:  r;  r   r   r   r  r  r  r   r!   r"   r#   r  r,   r  r7   r8   r9   r   Zv_parcoordsr   rK   )rQ   r   r   rO     s     


zParcoords.__init__)NNNNNNNNNNNNNNNNNNNNN)r   r   r   r   r   r   r   r:  r;  r   r   r   r  r  r  r   r!   r"   r#   r  r,   r  r7   r8   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r  ?  s   b'h''d                    r  c                   sd  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZedBdC ZedDdE ZdI fdGdH	Z  ZS )JParcatsc             C   s   | d S )a,  
        Sets the drag interaction mode for categories and dimensions.
        If `perpendicular`, the categories can only move along a line
        perpendicular to the paths. If `freeform`, the categories can
        freely move on the plane. If `fixed`, the categories and
        dimensions are stationary.
    
        The 'arrangement' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['perpendicular', 'freeform', 'fixed']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zParcats.arrangementc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sort paths so that like colors are bundled together within each
        category.
    
        The 'bundlecolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        bundlecolorsr   )r   r   r   r   r    s    zParcats.bundlecolorsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        The number of observations represented by each state. Defaults
        to 1 so that each state represents one observation
    
        The 'counts' property is a number and may be specified as:
          - An int or float in the interval [0, inf]
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        countsr   )r   r   r   r   r    s    zParcats.countsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ȫ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  counts .
    
        The 'countssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        	countssrcr   )r   r   r   r   r  Ϋ  s    zParcats.countssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ܫ  s    c             C   s   | d S )aH  
        The dimensions (variables) of the parallel categories diagram.
    
        The 'dimensions' property is a tuple of instances of
        Dimension that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.parcats.Dimension
          - A list or tuple of dicts of string/value properties that
            will be passed to the Dimension constructor
    
            Supported dict properties:
                
                categoryarray
                    Sets the order in which categories in this
                    dimension appear. Only has an effect if
                    `categoryorder` is set to "array". Used with
                    `categoryorder`.
                categoryarraysrc
                    Sets the source reference on plot.ly for
                    categoryarray .
                categoryorder
                    Specifies the ordering logic for the categories
                    in the dimension. By default, plotly uses
                    "trace", which specifies the order that is
                    present in the data supplied. Set
                    `categoryorder` to *category ascending* or
                    *category descending* if order should be
                    determined by the alphanumerical order of the
                    category names. Set `categoryorder` to "array"
                    to derive the ordering from the attribute
                    `categoryarray`. If a category is not found in
                    the `categoryarray` array, the sorting behavior
                    for that attribute will be identical to the
                    "trace" mode. The unspecified categories will
                    follow the categories in `categoryarray`.
                displayindex
                    The display index of dimension, from left to
                    right, zero indexed, defaults to dimension
                    index.
                label
                    The shown name of the dimension.
                ticktext
                    Sets alternative tick labels for the categories
                    in this dimension. Only has an effect if
                    `categoryorder` is set to "array". Should be an
                    array the same length as `categoryarray` Used
                    with `categoryorder`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                values
                    Dimension values. `values[n]` represents the
                    category value of the `n`th point in the
                    dataset, therefore the `values` vector for all
                    dimensions must be the same (longer vectors
                    will be truncated).
                valuessrc
                    Sets the source reference on plot.ly for
                    values .
                visible
                    Shows the dimension when set to `true` (the
                    default). Hides the dimension for `false`.

        Returns
        -------
        tuple[plotly.graph_objs.parcats.Dimension]
        r:  r   )r   r   r   r   r:    s    DzParcats.dimensionsc             C   s   || d< d S )Nr:  r   )r   r   r   r   r   r:  (  s    c             C   s   | d S )aY  
        When used in a template (as
        layout.template.data.parcats.dimensiondefaults), sets the
        default property values to use for elements of
        parcats.dimensions
    
        The 'dimensiondefaults' property is an instance of Dimension
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcats.Dimension`
          - A dict of string/value properties that will be passed
            to the Dimension constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.parcats.Dimension
        r;  r   )r   r   r   r   r;  .  s    zParcats.dimensiondefaultsc             C   s   || d< d S )Nr;  r   )r   r   r   r   r   r;  D  s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcats.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this parcats trace
                    .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this parcats trace .
                x
                    Sets the horizontal domain of this parcats
                    trace (in plot fraction).
                y
                    Sets the vertical domain of this parcats trace
                    (in plot fraction).

        Returns
        -------
        plotly.graph_objs.parcats.Domain
        r   r   )r   r   r   r   r   J  s    zParcats.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   i  s    c             C   s   | d S )a0  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['count', 'probability'] joined with '+' characters
            (e.g. 'count+probability')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   o  s    zParcats.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the hover interaction mode for the parcats diagram. If
        `category`, hover interaction take place per category. If
        `color`, hover interactions take place per color per category.
        If `dimension`, hover interactions take place across all
        categories per dimension.
    
        The 'hoveron' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['category', 'color', 'dimension']

        Returns
        -------
        Any
        r   r   )r   r   r   r   r     s    zParcats.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a2  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `count`, `probability`, `category`, `categorycount`,
        `colorcount` and `bandcolorcount`. Anything contained in tag
        `<extra>` is displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    !zParcats.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Ĭ  s    c             C   s   | d S )a  
        Sets the font for the `dimension` labels.
    
        The 'labelfont' property is an instance of Labelfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcats.Labelfont`
          - A dict of string/value properties that will be passed
            to the Labelfont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.parcats.Labelfont
        r  r   )r   r   r   r   r  ʬ  s    %zParcats.labelfontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcats.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                autocolorscale
                    Determines whether the colorscale is a default
                    palette (`autocolorscale: true`) or the palette
                    determined by `line.colorscale`. Has an effect
                    only if in `line.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.
                cauto
                    Determines whether or not the color domain is
                    computed with respect to the input data (here
                    in `line.color`) or the bounds set in
                    `line.cmin` and `line.cmax`  Has an effect only
                    if in `line.color`is set to a numerical array.
                    Defaults to `false` when `line.cmin` and
                    `line.cmax` are set by the user.
                cmax
                    Sets the upper bound of the color domain. Has
                    an effect only if in `line.color`is set to a
                    numerical array. Value should have the same
                    units as in `line.color` and if set,
                    `line.cmin` must be set as well.
                cmid
                    Sets the mid-point of the color domain by
                    scaling `line.cmin` and/or `line.cmax` to be
                    equidistant to this point. Has an effect only
                    if in `line.color`is set to a numerical array.
                    Value should have the same units as in
                    `line.color`. Has no effect when `line.cauto`
                    is `false`.
                cmin
                    Sets the lower bound of the color domain. Has
                    an effect only if in `line.color`is set to a
                    numerical array. Value should have the same
                    units as in `line.color` and if set,
                    `line.cmax` must be set as well.
                color
                    Sets thelinecolor. 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 `line.cmin`
                    and `line.cmax` if set.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.parcats.line.Color
                    Bar` instance or dict with compatible
                    properties
                colorscale
                    Sets the colorscale. Has an effect only if in
                    `line.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`line.cmin` and `line.cmax`.
                    Alternatively, `colorscale` may be a palette
                    name string of the following list: Greys,YlGnBu
                    ,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,R
                    ainbow,Portland,Jet,Hot,Blackbody,Earth,Electri
                    c,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                hovertemplate
                    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}". Numbers are formatted using d3-format's
                    syntax %{variable:d3-format}, for example
                    "Price: %{y:$.2f}".
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#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-3.x-api-
                    reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-
                    events/#event-data. Additionally, every
                    attributes that can be specified per-point (the
                    ones that are `arrayOk: true`) are available.
                    variables `count` and `probability`. Anything
                    contained in tag `<extra>` is displayed in the
                    secondary box, for example
                    "<extra>{fullData.name}</extra>". To hide the
                    secondary box completely, use an empty tag
                    `<extra></extra>`.
                reversescale
                    Reverses the color mapping if true. Has an
                    effect only if in `line.color`is set to a
                    numerical array. If true, `line.cmin` will
                    correspond to the last color in the array and
                    `line.cmax` will correspond to the first color.
                shape
                    Sets the shape of the paths. If `linear`, paths
                    are composed of straight lines. If `hspline`,
                    paths are composed of horizontal curved splines
                showscale
                    Determines whether or not a colorbar is
                    displayed for this trace. Has an effect only if
                    in `line.color`is set to a numerical array.

        Returns
        -------
        plotly.graph_objs.parcats.Line
        r   r   )r   r   r   r   r     s     zParcats.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zParcats.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zParcats.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#     s    zParcats.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   ƭ  s    c             C   s   | d S )a  
        Sets the path sorting algorithm. If `forward`, sort paths based
        on dimension categories from left to right. If `backward`, sort
        paths based on dimensions categories from right to left.
    
        The 'sortpaths' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['forward', 'backward']

        Returns
        -------
        Any
        	sortpathsr   )r   r   r   r   r  ̭  s    zParcats.sortpathsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ݭ  s    c             C   s   | d S )ah  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcats.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.parcats.Stream
        r,   r   )r   r   r   r   r,     s    zParcats.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        Sets the font for the `category` labels.
    
        The 'tickfont' property is an instance of Tickfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.parcats.Tickfont`
          - A dict of string/value properties that will be passed
            to the Tickfont constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.parcats.Tickfont
        r  r   )r   r   r   r   r    s    %zParcats.tickfontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  +  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   1  s    zParcats.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   A  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   G  s    zParcats.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   b  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   h  s    zParcats.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   y  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zParcats.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zParcats._parent_path_strc             C   s   dS )Na          arrangement
            Sets the drag interaction mode for categories and
            dimensions. If `perpendicular`, the categories can only
            move along a line perpendicular to the paths. If
            `freeform`, the categories can freely move on the
            plane. If `fixed`, the categories and dimensions are
            stationary.
        bundlecolors
            Sort paths so that like colors are bundled together
            within each category.
        counts
            The number of observations represented by each state.
            Defaults to 1 so that each state represents one
            observation
        countssrc
            Sets the source reference on plot.ly for  counts .
        dimensions
            The dimensions (variables) of the parallel categories
            diagram.
        dimensiondefaults
            When used in a template (as
            layout.template.data.parcats.dimensiondefaults), sets
            the default property values to use for elements of
            parcats.dimensions
        domain
            :class:`plotly.graph_objects.parcats.Domain` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoveron
            Sets the hover interaction mode for the parcats
            diagram. If `category`, hover interaction take place
            per category. If `color`, hover interactions take place
            per color per category. If `dimension`, hover
            interactions take place across all categories per
            dimension.
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `count`, `probability`,
            `category`, `categorycount`, `colorcount` and
            `bandcolorcount`. Anything contained in tag `<extra>`
            is displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        labelfont
            Sets the font for the `dimension` labels.
        line
            :class:`plotly.graph_objects.parcats.Line` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        sortpaths
            Sets the path sorting algorithm. If `forward`, sort
            paths based on dimension categories from left to right.
            If `backward`, sort paths based on dimensions
            categories from right to left.
        stream
            :class:`plotly.graph_objects.parcats.Stream` instance
            or dict with compatible properties
        tickfont
            Sets the font for the `category` labels.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH     s    zParcats._prop_descriptionsNc                s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm} | | jd< | | jd	< | | jd
< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< |  | jd< |! | jd< |" | jd< |# | jd< |
dd}|dk	r|n|| d< |
d	d}|dk	r|n|| d	< |
d
d}|dk	r|n|| d
< |
dd}|dk	r|n|| d< |
dd}|dk	r4|n|| d< |
dd}|dk	rV|n|| d< |
dd}|dk	rx|n|| d< |
dd}|	dk	r|	n|| d< |
dd}|
dk	r|
n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r |n|| d< |
dd}|dk	r"|n|| d< |
dd}|dk	rD|n|| d< |
dd}|dk	rf|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r2|n|| d< |
dd}|dk	rT|n|| d< ddl$m%} d| j&d< |dddd| jd< |
dd | j'f t|f| d| _dS ) aA  
        Construct a new Parcats object
        
        Parallel categories diagram for multidimensional categorical
        data.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Parcats`
        arrangement
            Sets the drag interaction mode for categories and
            dimensions. If `perpendicular`, the categories can only
            move along a line perpendicular to the paths. If
            `freeform`, the categories can freely move on the
            plane. If `fixed`, the categories and dimensions are
            stationary.
        bundlecolors
            Sort paths so that like colors are bundled together
            within each category.
        counts
            The number of observations represented by each state.
            Defaults to 1 so that each state represents one
            observation
        countssrc
            Sets the source reference on plot.ly for  counts .
        dimensions
            The dimensions (variables) of the parallel categories
            diagram.
        dimensiondefaults
            When used in a template (as
            layout.template.data.parcats.dimensiondefaults), sets
            the default property values to use for elements of
            parcats.dimensions
        domain
            :class:`plotly.graph_objects.parcats.Domain` instance
            or dict with compatible properties
        hoverinfo
            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.
        hoveron
            Sets the hover interaction mode for the parcats
            diagram. If `category`, hover interaction take place
            per category. If `color`, hover interactions take place
            per color per category. If `dimension`, hover
            interactions take place across all categories per
            dimension.
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `count`, `probability`,
            `category`, `categorycount`, `colorcount` and
            `bandcolorcount`. Anything contained in tag `<extra>`
            is displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        labelfont
            Sets the font for the `dimension` labels.
        line
            :class:`plotly.graph_objects.parcats.Line` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        sortpaths
            Sets the path sorting algorithm. If `forward`, sort
            paths based on dimension categories from left to right.
            If `backward`, sort paths based on dimensions
            categories from right to left.
        stream
            :class:`plotly.graph_objects.parcats.Stream` instance
            or dict with compatible properties
        tickfont
            Sets the font for the `category` labels.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Parcats
        parcatsNzThe first argument to the plotly.graph_objs.Parcats 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Parcats`rJ   Fr   )r  r  r  r  r  r:  r;  r   r   r   r   r  r   r!   r"   r#   r  r,   r  r7   r8   r9   )rK   rD   )rL   rM   r   )(rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r  r[   ZBundlecolorsValidatorZCountsValidatorZCountssrcValidatorrA  rB  r  re   r   rh   r  r   rr   rs   rt   ZSortpathsValidatorr}   r  r   r   r   r   rK   rE   r   )r   r   r  r  r  r  r:  r;  r   r   r   r   r  r   r!   r"   r#   r  r,   r  r7   r8   r9   r   Z	v_parcatsr   rK   )rQ   r   r   rO     s     '


zParcats.__init__)NNNNNNNNNNNNNNNNNNNNNN)r   r   r   r   r  r   r  r  r  r:  r;  r   r   r   r   r  r   r!   r"   r#   r  r,   r  r7   r8   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r    s   F#' 
'                      r  c            (       s8  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,edxdy Z-edzd{ Z.d fd}d~	Z/  Z0S )Ohlcc             C   s   | d S )z
        Sets the close values.
    
        The 'close' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        closer   )r   r   r   r   r  .  s    z
Ohlc.closec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  <  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  close .
    
        The 'closesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        closesrcr   )r   r   r   r   r  B  s    zOhlc.closesrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  P  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   V  s    zOhlc.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   g  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   m  s    zOhlc.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {  s    c             C   s   | d S )aA  
        The 'decreasing' property is an instance of Decreasing
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.ohlc.Decreasing`
          - A dict of string/value properties that will be passed
            to the Decreasing constructor
    
            Supported dict properties:
                
                line
                    :class:`plotly.graph_objects.ohlc.decreasing.Li
                    ne` instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.ohlc.Decreasing
        r   r   )r   r   r   r   r     s    zOhlc.decreasingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the high values.
    
        The 'high' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        highr   )r   r   r   r   r    s    z	Ohlc.highc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  high .
    
        The 'highsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        highsrcr   )r   r   r   r   r    s    zOhlc.highsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   İ  s    zOhlc.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ذ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ް  s    zOhlc.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a}  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.ohlc.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .
                split
                    Show hover information (open, close, high, low)
                    in separate labels.

        Returns
        -------
        plotly.graph_objs.ohlc.Hoverlabel
        r   r   )r   r   r   r   r     s    6zOhlc.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   *  s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   0  s    zOhlc.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   @  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   F  s    zOhlc.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   T  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Z  s    zOhlc.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   j  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   p  s    zOhlc.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ~  s    c             C   s   | d S )aA  
        The 'increasing' property is an instance of Increasing
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.ohlc.Increasing`
          - A dict of string/value properties that will be passed
            to the Increasing constructor
    
            Supported dict properties:
                
                line
                    :class:`plotly.graph_objects.ohlc.increasing.Li
                    ne` instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.ohlc.Increasing
        r   r   )r   r   r   r   r     s    zOhlc.increasingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zOhlc.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a2  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.ohlc.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                    Note that this style setting can also be set
                    per direction via `increasing.line.dash` and
                    `decreasing.line.dash`.
                width
                    [object Object] Note that this style setting
                    can also be set per direction via
                    `increasing.line.width` and
                    `decreasing.line.width`.

        Returns
        -------
        plotly.graph_objs.ohlc.Line
        r   r   )r   r   r   r   r     s    z	Ohlc.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ձ  s    c             C   s   | d S )z
        Sets the low values.
    
        The 'low' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        lowr   )r   r   r   r   r  ۱  s    zOhlc.lowc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  low .
    
        The 'lowsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        lowsrcr   )r   r   r   r   r    s    zOhlc.lowsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    z	Ohlc.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zOhlc.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   -  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   3  s    z	Ohlc.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   C  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   I  s    zOhlc.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   W  s    c             C   s   | d S )z
        Sets the open values.
    
        The 'open' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        openr   )r   r   r   r   r  ]  s    z	Ohlc.openc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  k  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  open .
    
        The 'opensrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        opensrcr   )r   r   r   r   r  q  s    zOhlc.opensrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*     s    zOhlc.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zOhlc.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )ab  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.ohlc.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.ohlc.Stream
        r,   r   )r   r   r   r   r,     s    zOhlc.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   Ͳ  s    c             C   s   | d S )a  
        Sets hover text elements associated with each sample point. If
        a single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        this trace's sample points.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   Ӳ  s    z	Ohlc.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zOhlc.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )a  
        Sets the width of the open/close tick marks relative to the "x"
        minimal interval.
    
        The 'tickwidth' property is a number and may be specified as:
          - An int or float in the interval [0, 0.5]

        Returns
        -------
        int|float
        	tickwidthr   )r   r   r   r   r     s    zOhlc.tickwidthc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zOhlc.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   %  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   +  s    zOhlc.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   F  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   L  s    zOhlc.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   ]  s    c             C   s   | d S )a  
        Sets the x coordinates. If absent, linear coordinate will be
        generated.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   c  s    zOhlc.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   r  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   x  s    z
Ohlc.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zOhlc.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    z	Ohlc.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB     s    z
Ohlc.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   г  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   ֳ  s    z	Ohlc.typec             C   s   dS )NrF   r   )r   r   r   r   rG   ܳ  s    zOhlc._parent_path_strc             C   s   dS )NaP          close
            Sets the close values.
        closesrc
            Sets the source reference on plot.ly for  close .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        decreasing
            :class:`plotly.graph_objects.ohlc.Decreasing` instance
            or dict with compatible properties
        high
            Sets the high values.
        highsrc
            Sets the source reference on plot.ly for  high .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.ohlc.Hoverlabel` instance
            or dict with compatible properties
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        increasing
            :class:`plotly.graph_objects.ohlc.Increasing` instance
            or dict with compatible properties
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.ohlc.Line` instance or
            dict with compatible properties
        low
            Sets the low values.
        lowsrc
            Sets the source reference on plot.ly for  low .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        open
            Sets the open values.
        opensrc
            Sets the source reference on plot.ly for  open .
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.ohlc.Stream` instance or
            dict with compatible properties
        text
            Sets hover text elements associated with each sample
            point. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to this trace's sample points.
        textsrc
            Sets the source reference on plot.ly for  text .
        tickwidth
            Sets the width of the open/close tick marks relative to
            the "x" minimal interval.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates. If absent, linear coordinate
            will be generated.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        r   )r   r   r   r   rH     s     zOhlc._prop_descriptionsNc)       -         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|)
dd| _ddlm}* |* | jd< |* | jd	< |* | jd
< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |*  | jd< |*! | jd< |*" | jd< |*# | jd< |*$ | jd< |*% | jd< |*& | jd< |*' | jd < |*( | jd!< |*) | jd"< |** | jd#< |*+ | jd$< |*, | jd%< |*- | jd&< |*. | jd'< |*/ | jd(< |*0 | jd)< |*1 | jd*< |*2 | jd+< |*3 | jd,< |*4 | jd-< |*5 | jd.< |
dd}+|dk	r|n|+| d< |
d	d}+|dk	r|n|+| d	< |
d
d}+|dk	r|n|+| d
< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r0|n|+| d< |
dd}+|dk	rR|n|+| d< |
dd}+|dk	rt|n|+| d< |
dd}+|	dk	r|	n|+| d< |
dd}+|
dk	r|
n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r@|n|+| d< |
dd}+|dk	rb|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r.|n|+| d< |
dd}+|dk	rP|n|+| d< |
dd}+|dk	rr|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
d d}+|dk	r|n|+| d < |
d!d}+|dk	r|n|+| d!< |
d"d}+|dk	r|n|+| d"< |
d#d}+|dk	r>|n|+| d#< |
d$d}+|dk	r`|n|+| d$< |
d%d}+|dk	r|n|+| d%< |
d&d}+| dk	r| n|+| d&< |
d'd}+|!dk	r|!n|+| d'< |
d(d}+|"dk	r|"n|+| d(< |
d)d}+|#dk	r
|#n|+| d)< |
d*d}+|$dk	r,|$n|+| d*< |
d+d}+|%dk	rN|%n|+| d+< |
d,d}+|&dk	rp|&n|+| d,< |
d-d}+|'dk	r|'n|+| d-< |
d.d}+|(dk	r|(n|+| d.< dd/l6m7}, d| j8d0< |,d0ddd1| jd0< |
d0d | j9f t|f|) d| _dS )2a{  
        Construct a new Ohlc object
        
        The ohlc (short for Open-High-Low-Close) is a style of
        financial chart describing open, high, low and close for a
        given `x` coordinate (most likely time). The tip of the lines
        represent the `low` and `high` values and the horizontal
        segments represent the `open` and `close` values. Sample points
        where the close value is higher (lower) then the open value are
        called increasing (decreasing). By default, increasing items
        are drawn in green whereas decreasing are drawn in red.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Ohlc`
        close
            Sets the close values.
        closesrc
            Sets the source reference on plot.ly for  close .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        decreasing
            :class:`plotly.graph_objects.ohlc.Decreasing` instance
            or dict with compatible properties
        high
            Sets the high values.
        highsrc
            Sets the source reference on plot.ly for  high .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.ohlc.Hoverlabel` instance
            or dict with compatible properties
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        increasing
            :class:`plotly.graph_objects.ohlc.Increasing` instance
            or dict with compatible properties
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.ohlc.Line` instance or
            dict with compatible properties
        low
            Sets the low values.
        lowsrc
            Sets the source reference on plot.ly for  low .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        open
            Sets the open values.
        opensrc
            Sets the source reference on plot.ly for  open .
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.ohlc.Stream` instance or
            dict with compatible properties
        text
            Sets hover text elements associated with each sample
            point. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to this trace's sample points.
        textsrc
            Sets the source reference on plot.ly for  text .
        tickwidth
            Sets the width of the open/close tick marks relative to
            the "x" minimal interval.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates. If absent, linear coordinate
            will be generated.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.

        Returns
        -------
        Ohlc
        ohlcNzThe first argument to the plotly.graph_objs.Ohlc 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Ohlc`rJ   Fr   )r  r  r  r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r!   r"   r#   r'   r  r  r*   r+   r,   r-   r3   r  r7   r8   r9   r<   r>   r  r?   rB   )rK   rD   )rL   rM   r   ):rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  CloseValidatorr[   ClosesrcValidatorr`   ra   rb   HighValidatorHighsrcValidatorre   rf   rg   rj   rk   rl   rm   rn   rq   r   LowValidatorLowsrcValidatorrr   rs   rt   rx   OpenValidatorOpensrcValidatorr{   r|   r}   r~   r   ZTickwidthValidatorr   r   r   r   r   r  r   r   r   rK   rE   r   )-r   r   r  r  r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r!   r"   r#   r'   r  r  r*   r+   r,   r-   r3   r  r7   r8   r9   r<   r>   r  r?   rB   r   Zv_ohlcr   rK   )rQ   r   r   rO   v  s    R


zOhlc.__init__)(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)1r   r   r   r   r  r   r  r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r!   r"   r#   r'   r  r  r*   r+   r,   r-   r3   r  r7   r8   r9   r<   r>   r  r?   rB   rD   rG   rH   rO   r   r   r   )rQ   r   r  *  s   8                                        r  c            @       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?e?jdd Z?edd Z@e@jdd Z@edd ZAeAjdd ZAedd ZBeBjdd ZBedd ZCeCjdd ZCedd ZDedd ZEeddÄ ZFdǇ fddƄ	ZG  ZHS )Mesh3dc             C   s   | d S )a  
        Determines how the mesh surface triangles are derived from the
        set of vertices (points) represented by the `x`, `y` and `z`
        arrays, if the `i`, `j`, `k` arrays are not supplied. For
        general use of `mesh3d` it is preferred that `i`, `j`, `k` are
        supplied. If "-1", Delaunay triangulation is used, which is
        mainly suitable if the mesh is a single, more or less layer
        surface that is perpendicular to `delaunayaxis`. In case the
        `delaunayaxis` intersects the mesh surface at more than one
        point it will result triangles that are very long in the
        dimension of `delaunayaxis`. If ">0", the alpha-shape algorithm
        is used. In this case, the positive `alphahull` value signals
        the use of the alpha-shape algorithm, _and_ its value acts as
        the parameter for the mesh fitting. If 0,  the convex-hull
        algorithm is used. It is suitable for convex bodies or if the
        intention is to enclose the `x`, `y` and `z` point set into a
        convex hull.
    
        The 'alphahull' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        	alphahullr   )r   r   r   r   r    s    zMesh3d.alphahullc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zMesh3d.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   -  s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here `intensity`) or the bounds set
        in `cmin` and `cmax`  Defaults to `false` when `cmin` and
        `cmax` are set by the user.
    
        The 'cauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   3  s    zMesh3d.cautoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   D  s    c             C   s   | d S )a8  
        Sets the upper bound of the color domain. Value should have the
        same units as `intensity` and if set, `cmin` must be set as
        well.
    
        The 'cmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   J  s    zMesh3d.cmaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Z  s    c             C   s   | d S )a~  
        Sets the mid-point of the color domain by scaling `cmin` and/or
        `cmax` to be equidistant to this point. Value should have the
        same units as `intensity`. Has no effect when `cauto` is
        `false`.
    
        The 'cmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   `  s    zMesh3d.cmidc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   q  s    c             C   s   | d S )a8  
        Sets the lower bound of the color domain. Value should have the
        same units as `intensity` and if set, `cmax` must be set as
        well.
    
        The 'cmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   w  s    zMesh3d.cminc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ay
  
        Sets the color of the whole mesh
    
        The 'color' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen
          - A number that will be interpreted as a color
            according to mesh3d.colorscale

        Returns
        -------
        str
        colorr   )r   r   r   r   r    s    5zMesh3d.colorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Ķ  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ʶ  s    zMesh3d.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ߶  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.mesh3d.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.mesh3d.
                    colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.mesh3d.colorbar.tickformatstopdefaults), sets
                    the default property values to use for elements
                    of mesh3d.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.mesh3d.colorbar.Ti
                    tle` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    mesh3d.colorbar.title.font instead. Sets this
                    color bar's title font. Note that the title's
                    font used to be set by the now deprecated
                    `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    mesh3d.colorbar.title.side instead. Determines
                    the location of color bar's title with respect
                    to the color bar. Note that the title's
                    location used to be set by the now deprecated
                    `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.mesh3d.ColorBar
        r   r   )r   r   r   r   r     s     dzMesh3d.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ʷ  s    c             C   s   | d S )a	  
        Sets the colorscale. 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`cmin` and `cmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   з  s    ,zMesh3d.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'contour' property is an instance of Contour
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.mesh3d.Contour`
          - A dict of string/value properties that will be passed
            to the Contour constructor
    
            Supported dict properties:
                
                color
                    Sets the color of the contour lines.
                show
                    Sets whether or not dynamic contours are shown
                    on hover
                width
                    Sets the width of the contour lines.

        Returns
        -------
        plotly.graph_objs.mesh3d.Contour
        r   r   )r   r   r   r   r     s    zMesh3d.contourc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   #  s    zMesh3d.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   4  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   :  s    zMesh3d.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   H  s    c             C   s   | d S )a  
        Sets the Delaunay axis, which is the axis that is perpendicular
        to the surface of the Delaunay triangulation. It has an effect
        if `i`, `j`, `k` are not provided and `alphahull` is set to
        indicate Delaunay triangulation.
    
        The 'delaunayaxis' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['x', 'y', 'z']

        Returns
        -------
        Any
        delaunayaxisr   )r   r   r   r   r  N  s    zMesh3d.delaunayaxisc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  `  s    c             C   s   | d S )a  
        Sets the color of each face Overrides "color" and
        "vertexcolor".
    
        The 'facecolor' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        	facecolorr   )r   r   r   r   r  f  s    zMesh3d.facecolorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  u  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  facecolor .
    
        The 'facecolorsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        facecolorsrcr   )r   r   r   r   r  {  s    zMesh3d.facecolorsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a=  
        Determines whether or not normal smoothing is applied to the
        meshes, creating meshes with an angular, low-poly look via flat
        reflections.
    
        The 'flatshading' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zMesh3d.flatshadingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zMesh3d.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zMesh3d.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ͸  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.mesh3d.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.mesh3d.Hoverlabel
        r   r   )r   r   r   r   r   Ӹ  s    3zMesh3d.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    !zMesh3d.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   7  s    zMesh3d.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   E  s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   K  s    zMesh3d.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   a  s    zMesh3d.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   o  s    c             C   s   | d S )a  
        A vector of vertex indices, i.e. integer values between 0 and
        the length of the vertex vectors, representing the "first"
        vertex of a triangle. For example, `{i[m], j[m], k[m]}`
        together represent face m (triangle m) in the mesh, where `i[m]
        = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex
        arrays. Therefore, each element in `i` represents a point in
        space, which is the first vertex of a triangle.
    
        The 'i' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        ir   )r   r   r   r   r  u  s    zMesh3d.ic             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    z
Mesh3d.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zMesh3d.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aM  
        Sets the intensity values for vertices or cells as defined by
        `intensitymode`. It can be used for plotting fields on meshes.
    
        The 'intensity' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        	intensityr   )r   r   r   r   r    s    zMesh3d.intensityc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ȹ  s    c             C   s   | d S )a  
        Determines the source of `intensity` values.
    
        The 'intensitymode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['vertex', 'cell']

        Returns
        -------
        Any
        intensitymoder   )r   r   r   r   r  ι  s    zMesh3d.intensitymodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ݹ  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  intensity .
    
        The 'intensitysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        intensitysrcr   )r   r   r   r   r    s    zMesh3d.intensitysrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  i .
    
        The 'isrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        isrcr   )r   r   r   r   r    s    zMesh3d.isrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        A vector of vertex indices, i.e. integer values between 0 and
        the length of the vertex vectors, representing the "second"
        vertex of a triangle. For example, `{i[m], j[m], k[m]}`
        together represent face m (triangle m) in the mesh, where `j[m]
        = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex
        arrays. Therefore, each element in `j` represents a point in
        space, which is the second vertex of a triangle.
    
        The 'j' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        jr   )r   r   r   r   r    s    zMesh3d.jc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  j .
    
        The 'jsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        jsrcr   )r   r   r   r   r  %  s    zMesh3d.jsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  3  s    c             C   s   | d S )a  
        A vector of vertex indices, i.e. integer values between 0 and
        the length of the vertex vectors, representing the "third"
        vertex of a triangle. For example, `{i[m], j[m], k[m]}`
        together represent face m (triangle m) in the mesh, where `k[m]
        = n` points to the triplet  `{x[n], y[n], z[n]}` in the vertex
        arrays. Therefore, each element in `k` represents a point in
        space, which is the third vertex of a triangle.
    
        The 'k' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        kr   )r   r   r   r   r  9  s    zMesh3d.kc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  M  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  k .
    
        The 'ksrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        ksrcr   )r   r   r   r   r  S  s    zMesh3d.ksrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  a  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   g  s    zMesh3d.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   x  s    c             C   s   | d S )ag  
        The 'lighting' property is an instance of Lighting
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.mesh3d.Lighting`
          - A dict of string/value properties that will be passed
            to the Lighting constructor
    
            Supported dict properties:
                
                ambient
                    Ambient light increases overall color
                    visibility but can wash out the image.
                diffuse
                    Represents the extent that incident rays are
                    reflected in a range of angles.
                facenormalsepsilon
                    Epsilon for face normals calculation avoids
                    math issues arising from degenerate geometry.
                fresnel
                    Represents the reflectance as a dependency of
                    the viewing angle; e.g. paper is reflective
                    when viewing it from the edge of the paper
                    (almost 90 degrees), causing shine.
                roughness
                    Alters specular reflection; the rougher the
                    surface, the wider and less contrasty the
                    shine.
                specular
                    Represents the level that incident rays are
                    reflected in a single direction, causing shine.
                vertexnormalsepsilon
                    Epsilon for vertex normals calculation avoids
                    math issues arising from degenerate geometry.

        Returns
        -------
        plotly.graph_objs.mesh3d.Lighting
        r   r   )r   r   r   r   r   ~  s    (zMesh3d.lightingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a"  
        The 'lightposition' property is an instance of Lightposition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.mesh3d.Lightposition`
          - A dict of string/value properties that will be passed
            to the Lightposition constructor
    
            Supported dict properties:
                
                x
                    Numeric vector, representing the X coordinate
                    for each vertex.
                y
                    Numeric vector, representing the Y coordinate
                    for each vertex.
                z
                    Numeric vector, representing the Z coordinate
                    for each vertex.

        Returns
        -------
        plotly.graph_objs.mesh3d.Lightposition
        r   r   )r   r   r   r   r     s    zMesh3d.lightpositionc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ɺ  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   Ϻ  s    zMesh3d.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zMesh3d.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#     s    zMesh3d.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )aS  
        Sets the opacity of the surface. Please note that in the case
        of using high `opacity` values for example a value greater than
        or equal to 0.5 on two surfaces (and 0.25 with four surfaces),
        an overlay of multiple transparent surfaces may not perfectly
        be sorted in depth by the webgl API. This behavior may be
        improved in the near future and is subject to change.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zMesh3d.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   (  s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `cmin` will
        correspond to the last color in the array and `cmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   .  s    zMesh3d.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   >  s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   D  s    zMesh3d.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   W  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   ]  s    zMesh3d.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   l  s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   r  s    zMesh3d.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )af  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.mesh3d.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.mesh3d.Stream
        r,   r   )r   r   r   r   r,     s    zMesh3d.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        Sets the text elements associated with the vertices. If trace
        `hoverinfo` contains a "text" flag and "hovertext" is not set,
        these elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zMesh3d.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zMesh3d.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   λ  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   Ի  s    z
Mesh3d.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zMesh3d.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Sets the color of each vertex Overrides "color". While Red,
        green and blue colors are in the range of 0 and 255; in the
        case of having vertex color data in RGBA format, the alpha
        color should be normalized to be between 0 and 1.
    
        The 'vertexcolor' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        vertexcolorr   )r   r   r   r   r    s    zMesh3d.vertexcolorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  vertexcolor .
    
        The 'vertexcolorsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        vertexcolorsrcr   )r   r   r   r   r  "  s    zMesh3d.vertexcolorsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  0  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   6  s    zMesh3d.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   G  s    c             C   s   | d S )ad  
        Sets the X coordinates of the vertices. The nth element of
        vectors `x`, `y` and `z` jointly represent the X, Y and Z
        coordinates of the nth vertex.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   M  s    zMesh3d.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   ]  s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  c  s    zMesh3d.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  u  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   {  s    zMesh3d.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )ad  
        Sets the Y coordinates of the vertices. The nth element of
        vectors `x`, `y` and `z` jointly represent the X, Y and Z
        coordinates of the nth vertex.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    zMesh3d.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zMesh3d.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zMesh3d.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   ˼  s    c             C   s   | d S )ad  
        Sets the Z coordinates of the vertices. The nth element of
        vectors `x`, `y` and `z` jointly represent the X, Y and Z
        coordinates of the nth vertex.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Ѽ  s    zMesh3d.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the calendar system to use with `z` date data.
    
        The 'zcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zMesh3d.zcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zMesh3d.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zMesh3d.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zMesh3d._parent_path_strc             C   s   dS )Na!<          alphahull
            Determines how the mesh surface triangles are derived
            from the set of vertices (points) represented by the
            `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays
            are not supplied. For general use of `mesh3d` it is
            preferred that `i`, `j`, `k` are supplied. If "-1",
            Delaunay triangulation is used, which is mainly
            suitable if the mesh is a single, more or less layer
            surface that is perpendicular to `delaunayaxis`. In
            case the `delaunayaxis` intersects the mesh surface at
            more than one point it will result triangles that are
            very long in the dimension of `delaunayaxis`. If ">0",
            the alpha-shape algorithm is used. In this case, the
            positive `alphahull` value signals the use of the
            alpha-shape algorithm, _and_ its value acts as the
            parameter for the mesh fitting. If 0,  the convex-hull
            algorithm is used. It is suitable for convex bodies or
            if the intention is to enclose the `x`, `y` and `z`
            point set into a convex hull.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here `intensity`) or
            the bounds set in `cmin` and `cmax`  Defaults to
            `false` when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as `intensity` and if set, `cmin`
            must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as `intensity`. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as `intensity` and if set, `cmax`
            must be set as well.
        color
            Sets the color of the whole mesh
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.mesh3d.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contour
            :class:`plotly.graph_objects.mesh3d.Contour` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        delaunayaxis
            Sets the Delaunay axis, which is the axis that is
            perpendicular to the surface of the Delaunay
            triangulation. It has an effect if `i`, `j`, `k` are
            not provided and `alphahull` is set to indicate
            Delaunay triangulation.
        facecolor
            Sets the color of each face Overrides "color" and
            "vertexcolor".
        facecolorsrc
            Sets the source reference on plot.ly for  facecolor .
        flatshading
            Determines whether or not normal smoothing is applied
            to the meshes, creating meshes with an angular, low-
            poly look via flat reflections.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.mesh3d.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        i
            A vector of vertex indices, i.e. integer values between
            0 and the length of the vertex vectors, representing
            the "first" vertex of a triangle. For example, `{i[m],
            j[m], k[m]}` together represent face m (triangle m) in
            the mesh, where `i[m] = n` points to the triplet
            `{x[n], y[n], z[n]}` in the vertex arrays. Therefore,
            each element in `i` represents a point in space, which
            is the first vertex of a triangle.
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        intensity
            Sets the intensity values for vertices or cells as
            defined by `intensitymode`. It can be used for plotting
            fields on meshes.
        intensitymode
            Determines the source of `intensity` values.
        intensitysrc
            Sets the source reference on plot.ly for  intensity .
        isrc
            Sets the source reference on plot.ly for  i .
        j
            A vector of vertex indices, i.e. integer values between
            0 and the length of the vertex vectors, representing
            the "second" vertex of a triangle. For example, `{i[m],
            j[m], k[m]}`  together represent face m (triangle m) in
            the mesh, where `j[m] = n` points to the triplet
            `{x[n], y[n], z[n]}` in the vertex arrays. Therefore,
            each element in `j` represents a point in space, which
            is the second vertex of a triangle.
        jsrc
            Sets the source reference on plot.ly for  j .
        k
            A vector of vertex indices, i.e. integer values between
            0 and the length of the vertex vectors, representing
            the "third" vertex of a triangle. For example, `{i[m],
            j[m], k[m]}` together represent face m (triangle m) in
            the mesh, where `k[m] = n` points to the triplet
            `{x[n], y[n], z[n]}` in the vertex arrays. Therefore,
            each element in `k` represents a point in space, which
            is the third vertex of a triangle.
        ksrc
            Sets the source reference on plot.ly for  k .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.mesh3d.Lighting` instance
            or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.mesh3d.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.mesh3d.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with the vertices. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        vertexcolor
            Sets the color of each vertex Overrides "color". While
            Red, green and blue colors are in the range of 0 and
            255; in the case of having vertex color data in RGBA
            format, the alpha color should be normalized to be
            between 0 and 1.
        vertexcolorsrc
            Sets the source reference on plot.ly for  vertexcolor .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the X coordinates of the vertices. The nth element
            of vectors `x`, `y` and `z` jointly represent the X, Y
            and Z coordinates of the nth vertex.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the Y coordinates of the vertices. The nth element
            of vectors `x`, `y` and `z` jointly represent the X, Y
            and Z coordinates of the nth vertex.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the Z coordinates of the vertices. The nth element
            of vectors `x`, `y` and `z` jointly represent the X, Y
            and Z coordinates of the nth vertex.
        zcalendar
            Sets the calendar system to use with `z` date data.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH     s      2zMesh3d._prop_descriptionsNcA       E         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|A
dd| _ddlm}B |B | jd< |B | jd	< |B | jd
< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B | jd< |B  | jd< |B! | jd< |B" | jd< |B# | jd< |B$ | jd< |B% | jd< |B& | jd< |B' | jd < |B( | jd!< |B) | jd"< |B* | jd#< |B+ | jd$< |B, | jd%< |B- | jd&< |B. | jd'< |B/ | jd(< |B0 | jd)< |B1 | jd*< |B2 | jd+< |B3 | jd,< |B4 | jd-< |B5 | jd.< |B6 | jd/< |B7 | jd0< |B8 | jd1< |B9 | jd2< |B: | jd3< |B; | jd4< |B< | jd5< |B= | jd6< |B> | jd7< |B? | jd8< |B@ | jd9< |BA | jd:< |BB | jd;< |BC | jd<< |BD | jd=< |BE | jd>< |BF | jd?< |BG | jd@< |BH | jdA< |BI | jdB< |BJ | jdC< |BK | jdD< |BL | jdE< |BM | jdF< |
dd}C|dk	r|n|C| d< |
d	d}C|dk	r|n|C| d	< |
d
d}C|dk	r<|n|C| d
< |
dd}C|dk	r^|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|	dk	r|	n|C| d< |
dd}C|
dk	r|
n|C| d< |
dd}C|dk	r*|n|C| d< |
dd}C|dk	rL|n|C| d< |
dd}C|dk	rn|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r:|n|C| d< |
dd}C|dk	r\|n|C| d< |
dd}C|dk	r~|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
dd}C|dk	r|n|C| d< |
d d}C|dk	r(|n|C| d < |
d!d}C|dk	rJ|n|C| d!< |
d"d}C|dk	rl|n|C| d"< |
d#d}C|dk	r|n|C| d#< |
d$d}C|dk	r|n|C| d$< |
d%d}C|dk	r|n|C| d%< |
d&d}C| dk	r| n|C| d&< |
d'd}C|!dk	r|!n|C| d'< |
d(d}C|"dk	r8|"n|C| d(< |
d)d}C|#dk	rZ|#n|C| d)< |
d*d}C|$dk	r||$n|C| d*< |
d+d}C|%dk	r|%n|C| d+< |
d,d}C|&dk	r|&n|C| d,< |
d-d}C|'dk	r|'n|C| d-< |
d.d}C|(dk		r|(n|C| d.< |
d/d}C|)dk		r&|)n|C| d/< |
d0d}C|*dk		rH|*n|C| d0< |
d1d}C|+dk		rj|+n|C| d1< |
d2d}C|,dk		r|,n|C| d2< |
d3d}C|-dk		r|-n|C| d3< |
d4d}C|.dk		r|.n|C| d4< |
d5d}C|/dk		r|/n|C| d5< |
d6d}C|0dk	
r|0n|C| d6< |
d7d}C|1dk	
r6|1n|C| d7< |
d8d}C|2dk	
rX|2n|C| d8< |
d9d}C|3dk	
rz|3n|C| d9< |
d:d}C|4dk	
r|4n|C| d:< |
d;d}C|5dk	
r|5n|C| d;< |
d<d}C|6dk	
r|6n|C| d<< |
d=d}C|7dk	r|7n|C| d=< |
d>d}C|8dk	r$|8n|C| d>< |
d?d}C|9dk	rF|9n|C| d?< |
d@d}C|:dk	rh|:n|C| d@< |
dAd}C|;dk	r|;n|C| dA< |
dBd}C|<dk	r|<n|C| dB< |
dCd}C|=dk	r|=n|C| dC< |
dDd}C|>dk	r|>n|C| dD< |
dEd}C|?dk	r|?n|C| dE< |
dFd}C|@dk	r4|@n|C| dF< ddGlNmO}D d| jPdH< |DdHdddI| jdH< |
dHd | jQf t|f|A d| _dS )Ja8>  
        Construct a new Mesh3d object
        
        Draws sets of triangles with coordinates given by three
        1-dimensional arrays in `x`, `y`, `z` and (1) a sets of `i`,
        `j`, `k` indices (2) Delaunay triangulation or (3) the Alpha-
        shape algorithm or (4) the Convex-hull algorithm

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Mesh3d`
        alphahull
            Determines how the mesh surface triangles are derived
            from the set of vertices (points) represented by the
            `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays
            are not supplied. For general use of `mesh3d` it is
            preferred that `i`, `j`, `k` are supplied. If "-1",
            Delaunay triangulation is used, which is mainly
            suitable if the mesh is a single, more or less layer
            surface that is perpendicular to `delaunayaxis`. In
            case the `delaunayaxis` intersects the mesh surface at
            more than one point it will result triangles that are
            very long in the dimension of `delaunayaxis`. If ">0",
            the alpha-shape algorithm is used. In this case, the
            positive `alphahull` value signals the use of the
            alpha-shape algorithm, _and_ its value acts as the
            parameter for the mesh fitting. If 0,  the convex-hull
            algorithm is used. It is suitable for convex bodies or
            if the intention is to enclose the `x`, `y` and `z`
            point set into a convex hull.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here `intensity`) or
            the bounds set in `cmin` and `cmax`  Defaults to
            `false` when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as `intensity` and if set, `cmin`
            must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as `intensity`. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as `intensity` and if set, `cmax`
            must be set as well.
        color
            Sets the color of the whole mesh
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.mesh3d.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contour
            :class:`plotly.graph_objects.mesh3d.Contour` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        delaunayaxis
            Sets the Delaunay axis, which is the axis that is
            perpendicular to the surface of the Delaunay
            triangulation. It has an effect if `i`, `j`, `k` are
            not provided and `alphahull` is set to indicate
            Delaunay triangulation.
        facecolor
            Sets the color of each face Overrides "color" and
            "vertexcolor".
        facecolorsrc
            Sets the source reference on plot.ly for  facecolor .
        flatshading
            Determines whether or not normal smoothing is applied
            to the meshes, creating meshes with an angular, low-
            poly look via flat reflections.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.mesh3d.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        i
            A vector of vertex indices, i.e. integer values between
            0 and the length of the vertex vectors, representing
            the "first" vertex of a triangle. For example, `{i[m],
            j[m], k[m]}` together represent face m (triangle m) in
            the mesh, where `i[m] = n` points to the triplet
            `{x[n], y[n], z[n]}` in the vertex arrays. Therefore,
            each element in `i` represents a point in space, which
            is the first vertex of a triangle.
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        intensity
            Sets the intensity values for vertices or cells as
            defined by `intensitymode`. It can be used for plotting
            fields on meshes.
        intensitymode
            Determines the source of `intensity` values.
        intensitysrc
            Sets the source reference on plot.ly for  intensity .
        isrc
            Sets the source reference on plot.ly for  i .
        j
            A vector of vertex indices, i.e. integer values between
            0 and the length of the vertex vectors, representing
            the "second" vertex of a triangle. For example, `{i[m],
            j[m], k[m]}`  together represent face m (triangle m) in
            the mesh, where `j[m] = n` points to the triplet
            `{x[n], y[n], z[n]}` in the vertex arrays. Therefore,
            each element in `j` represents a point in space, which
            is the second vertex of a triangle.
        jsrc
            Sets the source reference on plot.ly for  j .
        k
            A vector of vertex indices, i.e. integer values between
            0 and the length of the vertex vectors, representing
            the "third" vertex of a triangle. For example, `{i[m],
            j[m], k[m]}` together represent face m (triangle m) in
            the mesh, where `k[m] = n` points to the triplet
            `{x[n], y[n], z[n]}` in the vertex arrays. Therefore,
            each element in `k` represents a point in space, which
            is the third vertex of a triangle.
        ksrc
            Sets the source reference on plot.ly for  k .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.mesh3d.Lighting` instance
            or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.mesh3d.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.mesh3d.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with the vertices. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        vertexcolor
            Sets the color of each vertex Overrides "color". While
            Red, green and blue colors are in the range of 0 and
            255; in the case of having vertex color data in RGBA
            format, the alpha color should be normalized to be
            between 0 and 1.
        vertexcolorsrc
            Sets the source reference on plot.ly for  vertexcolor .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the X coordinates of the vertices. The nth element
            of vectors `x`, `y` and `z` jointly represent the X, Y
            and Z coordinates of the nth vertex.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the Y coordinates of the vertices. The nth element
            of vectors `x`, `y` and `z` jointly represent the X, Y
            and Z coordinates of the nth vertex.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the Z coordinates of the vertices. The nth element
            of vectors `x`, `y` and `z` jointly represent the X, Y
            and Z coordinates of the nth vertex.
        zcalendar
            Sets the calendar system to use with `z` date data.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Mesh3d
        mesh3dNzThe first argument to the plotly.graph_objs.Mesh3d 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Mesh3d`rJ   Fr   )r  r  r   r   r   r   r   r  r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r  r  r  r  r   r   r   r!   r"   r#   r'   r   r   r+   r   r,   r-   r3   r7   r8   r  r  r9   r<   r  r?   r@   r  rC   r   r  r   )rK   rD   )rL   rM   r   )RrN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZAlphahullValidatorr[   r   r   r   r   r   ColorValidatorr   r   r   r   r`   ra   ZDelaunayaxisValidatorZFacecolorValidatorZFacecolorsrcValidatorr   re   rf   rg   rh   ri   rj   rk   Z
IValidatorrl   rm   ZIntensityValidatorZIntensitymodeValidatorZIntensitysrcValidatorZIsrcValidatorZ
JValidatorZJsrcValidatorZ
KValidatorZKsrcValidatorrq   r   r   rr   rs   rt   rx   r   r   r|   r   r}   r~   r   r   r   ZVertexcolorValidatorZVertexcolorsrcValidatorr   r   r  r   r   r  r   r   r   r   r   rK   rE   r   )Er   r   r  r   r   r   r   r   r  r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r  r  r  r  r   r   r   r!   r"   r#   r'   r   r   r+   r   r,   r-   r3   r7   r8   r  r  r9   r<   r  r?   r@   r  rC   r   r  r   r   Zv_mesh3dr   rK   )rQ   r   r   rO   Q  s      


zMesh3d.__init__)@NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Ir   r   r   r   r  r   r   r   r   r   r   r  r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r  r  r  r  r   r   r   r!   r"   r#   r'   r   r   r+   r   r,   r-   r3   r7   r8   r  r  r9   r<   r  r?   r@   r  rC   r   r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r    s  7 f.5#*  6                                                               r  c            5       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9edd Z:edd Z;d fdd	Z<  Z=S )
Isosurfacec             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zIsosurface.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aT  
        The 'caps' property is an instance of Caps
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Caps`
          - A dict of string/value properties that will be passed
            to the Caps constructor
    
            Supported dict properties:
                
                x
                    :class:`plotly.graph_objects.isosurface.caps.X`
                    instance or dict with compatible properties
                y
                    :class:`plotly.graph_objects.isosurface.caps.Y`
                    instance or dict with compatible properties
                z
                    :class:`plotly.graph_objects.isosurface.caps.Z`
                    instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.isosurface.Caps
        r   r   )r   r   r   r   r     s    zIsosurface.capsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here `value`) or the bounds set in
        `cmin` and `cmax`  Defaults to `false` when `cmin` and `cmax`
        are set by the user.
    
        The 'cauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zIsosurface.cautoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a,  
        Sets the upper bound of the color domain. Value should have the
        same units as `value` and if set, `cmin` must be set as well.
    
        The 'cmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zIsosurface.cmaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   .  s    c             C   s   | d S )ar  
        Sets the mid-point of the color domain by scaling `cmin` and/or
        `cmax` to be equidistant to this point. Value should have the
        same units as `value`. Has no effect when `cauto` is `false`.
    
        The 'cmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   4  s    zIsosurface.cmidc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   D  s    c             C   s   | d S )a,  
        Sets the lower bound of the color domain. Value should have the
        same units as `value` and if set, `cmax` must be set as well.
    
        The 'cmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   J  s    zIsosurface.cminc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Y  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   _  s    zIsosurface.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   t  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.isosurf
                    ace.colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.isosurface.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of isosurface.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.isosurface.colorba
                    r.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    isosurface.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    isosurface.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.isosurface.ColorBar
        r   r   )r   r   r   r   r   z  s     dzIsosurface.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _  s    c             C   s   | d S )a	  
        Sets the colorscale. 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`cmin` and `cmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   e  s    ,zIsosurface.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'contour' property is an instance of Contour
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Contour`
          - A dict of string/value properties that will be passed
            to the Contour constructor
    
            Supported dict properties:
                
                color
                    Sets the color of the contour lines.
                show
                    Sets whether or not dynamic contours are shown
                    on hover
                width
                    Sets the width of the contour lines.

        Returns
        -------
        plotly.graph_objs.isosurface.Contour
        r   r   )r   r   r   r   r     s    zIsosurface.contourc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zIsosurface.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a=  
        Determines whether or not normal smoothing is applied to the
        meshes, creating meshes with an angular, low-poly look via flat
        reflections.
    
        The 'flatshading' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zIsosurface.flatshadingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zIsosurface.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   !  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.isosurface.Hoverlabel
        r   r   )r   r   r   r   r   '  s    3zIsosurface.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   b  s    !zIsosurface.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    zIsosurface.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zIsosurface.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the maximum boundary for iso-surface plot.
    
        The 'isomax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zIsosurface.isomaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the minimum boundary for iso-surface plot.
    
        The 'isomin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zIsosurface.isominc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ,  s    c             C   s   | d S )ao  
        The 'lighting' property is an instance of Lighting
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Lighting`
          - A dict of string/value properties that will be passed
            to the Lighting constructor
    
            Supported dict properties:
                
                ambient
                    Ambient light increases overall color
                    visibility but can wash out the image.
                diffuse
                    Represents the extent that incident rays are
                    reflected in a range of angles.
                facenormalsepsilon
                    Epsilon for face normals calculation avoids
                    math issues arising from degenerate geometry.
                fresnel
                    Represents the reflectance as a dependency of
                    the viewing angle; e.g. paper is reflective
                    when viewing it from the edge of the paper
                    (almost 90 degrees), causing shine.
                roughness
                    Alters specular reflection; the rougher the
                    surface, the wider and less contrasty the
                    shine.
                specular
                    Represents the level that incident rays are
                    reflected in a single direction, causing shine.
                vertexnormalsepsilon
                    Epsilon for vertex normals calculation avoids
                    math issues arising from degenerate geometry.

        Returns
        -------
        plotly.graph_objs.isosurface.Lighting
        r   r   )r   r   r   r   r   2  s    (zIsosurface.lightingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \  s    c             C   s   | d S )a*  
        The 'lightposition' property is an instance of Lightposition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Lightposition`
          - A dict of string/value properties that will be passed
            to the Lightposition constructor
    
            Supported dict properties:
                
                x
                    Numeric vector, representing the X coordinate
                    for each vertex.
                y
                    Numeric vector, representing the Y coordinate
                    for each vertex.
                z
                    Numeric vector, representing the Z coordinate
                    for each vertex.

        Returns
        -------
        plotly.graph_objs.isosurface.Lightposition
        r   r   )r   r   r   r   r   b  s    zIsosurface.lightpositionc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zIsosurface.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zIsosurface.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#     s    zIsosurface.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )aS  
        Sets the opacity of the surface. Please note that in the case
        of using high `opacity` values for example a value greater than
        or equal to 0.5 on two surfaces (and 0.25 with four surfaces),
        an overlay of multiple transparent surfaces may not perfectly
        be sorted in depth by the webgl API. This behavior may be
        improved in the near future and is subject to change.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zIsosurface.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `cmin` will
        correspond to the last color in the array and `cmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zIsosurface.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zIsosurface.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+      s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   &  s    zIsosurface.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5  s    c             C   s   | d S )ag  
        The 'slices' property is an instance of Slices
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Slices`
          - A dict of string/value properties that will be passed
            to the Slices constructor
    
            Supported dict properties:
                
                x
                    :class:`plotly.graph_objects.isosurface.slices.
                    X` instance or dict with compatible properties
                y
                    :class:`plotly.graph_objects.isosurface.slices.
                    Y` instance or dict with compatible properties
                z
                    :class:`plotly.graph_objects.isosurface.slices.
                    Z` instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.isosurface.Slices
        r   r   )r   r   r   r   r   ;  s    zIsosurface.slicesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   V  s    c             C   s   | d S )a  
        The 'spaceframe' property is an instance of Spaceframe
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Spaceframe`
          - A dict of string/value properties that will be passed
            to the Spaceframe constructor
    
            Supported dict properties:
                
                fill
                    Sets the fill ratio of the `spaceframe`
                    elements. The default fill value is 0.15
                    meaning that only 15% of the area of every
                    faces of tetras would be shaded. Applying a
                    greater `fill` ratio would allow the creation
                    of stronger elements or could be sued to have
                    entirely closed areas (in case of using 1).
                show
                    Displays/hides tetrahedron shapes between
                    minimum and maximum iso-values. Often useful
                    when either caps or surfaces are disabled or
                    filled with values less than 1.

        Returns
        -------
        plotly.graph_objs.isosurface.Spaceframe
        r   r   )r   r   r   r   r   \  s    zIsosurface.spaceframec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {  s    c             C   s   | d S )an  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.isosurface.Stream
        r,   r   )r   r   r   r   r,     s    zIsosurface.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a/  
        The 'surface' property is an instance of Surface
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.isosurface.Surface`
          - A dict of string/value properties that will be passed
            to the Surface constructor
    
            Supported dict properties:
                
                count
                    Sets the number of iso-surfaces between minimum
                    and maximum iso-values. By default this value
                    is 2 meaning that only minimum and maximum
                    surfaces would be drawn.
                fill
                    Sets the fill ratio of the iso-surface. The
                    default fill value of the surface is 1 meaning
                    that they are entirely shaded. On the other
                    hand Applying a `fill` ratio less than one
                    would allow the creation of openings parallel
                    to the edges.
                pattern
                    Sets the surface pattern of the iso-surface 3-D
                    sections. The default pattern of the surface is
                    `all` meaning that the rest of surface elements
                    would be shaded. The check options (either 1 or
                    2) could be used to draw half of the squares on
                    the surface. Using various combinations of
                    capital `A`, `B`, `C`, `D` and `E` may also be
                    used to reduce the number of triangles on the
                    iso-surfaces and creating other patterns of
                    interest.
                show
                    Hides/displays surfaces between minimum and
                    maximum iso-values.

        Returns
        -------
        plotly.graph_objs.isosurface.Surface
        r   r   )r   r   r   r   r     s    *zIsosurface.surfacec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets the text elements associated with the vertices. If trace
        `hoverinfo` contains a "text" flag and "hovertext" is not set,
        these elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zIsosurface.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zIsosurface.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7      s    zIsosurface.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zIsosurface.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   1  s    c             C   s   | d S )z
        Sets the 4th dimension (value) of the vertices.
    
        The 'value' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   7  s    zIsosurface.valuec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   E  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  value .
    
        The 'valuesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   K  s    zIsosurface.valuesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Y  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   _  s    zIsosurface.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   p  s    c             C   s   | d S )z
        Sets the X coordinates of the vertices on X axis.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   v  s    zIsosurface.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zIsosurface.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )z
        Sets the Y coordinates of the vertices on Y axis.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    zIsosurface.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zIsosurface.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s   | d S )z
        Sets the Z coordinates of the vertices on Z axis.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zIsosurface.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIsosurface.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zIsosurface.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zIsosurface._parent_path_strc             C   s   dS )Na,          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        caps
            :class:`plotly.graph_objects.isosurface.Caps` instance
            or dict with compatible properties
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here `value`) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as `value` and if set, `cmin` must
            be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as `value`. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as `value` and if set, `cmax` must
            be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.isosurface.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contour
            :class:`plotly.graph_objects.isosurface.Contour`
            instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        flatshading
            Determines whether or not normal smoothing is applied
            to the meshes, creating meshes with an angular, low-
            poly look via flat reflections.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.isosurface.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        isomax
            Sets the maximum boundary for iso-surface plot.
        isomin
            Sets the minimum boundary for iso-surface plot.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.isosurface.Lighting`
            instance or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.isosurface.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        slices
            :class:`plotly.graph_objects.isosurface.Slices`
            instance or dict with compatible properties
        spaceframe
            :class:`plotly.graph_objects.isosurface.Spaceframe`
            instance or dict with compatible properties
        stream
            :class:`plotly.graph_objects.isosurface.Stream`
            instance or dict with compatible properties
        surface
            :class:`plotly.graph_objects.isosurface.Surface`
            instance or dict with compatible properties
        text
            Sets the text elements associated with the vertices. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        value
            Sets the 4th dimension (value) of the vertices.
        valuesrc
            Sets the source reference on plot.ly for  value .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the X coordinates of the vertices on X axis.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the Y coordinates of the vertices on Y axis.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the Z coordinates of the vertices on Z axis.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH     s     hzIsosurface._prop_descriptionsNc6       :         s
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|6
dd| _ddlm}7 |7 | jd< |7 | jd	< |7 | jd
< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7 | jd< |7  | jd< |7! | jd< |7" | jd< |7# | jd< |7$ | jd< |7% | jd< |7& | jd< |7' | jd < |7( | jd!< |7) | jd"< |7* | jd#< |7+ | jd$< |7, | jd%< |7- | jd&< |7. | jd'< |7/ | jd(< |70 | jd)< |71 | jd*< |72 | jd+< |73 | jd,< |74 | jd-< |75 | jd.< |76 | jd/< |77 | jd0< |78 | jd1< |79 | jd2< |7: | jd3< |7; | jd4< |7< | jd5< |7= | jd6< |7> | jd7< |7? | jd8< |7@ | jd9< |7A | jd:< |7B | jd;< |
dd}8|dk	r^|n|8| d< |
d	d}8|dk	r|n|8| d	< |
d
d}8|dk	r|n|8| d
< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r*|n|8| d< |
dd}8|	dk	rL|	n|8| d< |
dd}8|
dk	rn|
n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r:|n|8| d< |
dd}8|dk	r\|n|8| d< |
dd}8|dk	r~|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r|n|8| d< |
dd}8|dk	r(|n|8| d< |
dd}8|dk	rJ|n|8| d< |
dd}8|dk	rl|n|8| d< |
d d}8|dk	r|n|8| d < |
d!d}8|dk	r|n|8| d!< |
d"d}8|dk	r|n|8| d"< |
d#d}8|dk	r|n|8| d#< |
d$d}8|dk	r|n|8| d$< |
d%d}8|dk	r8|n|8| d%< |
d&d}8| dk	rZ| n|8| d&< |
d'd}8|!dk	r||!n|8| d'< |
d(d}8|"dk	r|"n|8| d(< |
d)d}8|#dk	r|#n|8| d)< |
d*d}8|$dk	r|$n|8| d*< |
d+d}8|%dk	r|%n|8| d+< |
d,d}8|&dk	r&|&n|8| d,< |
d-d}8|'dk	rH|'n|8| d-< |
d.d}8|(dk	rj|(n|8| d.< |
d/d}8|)dk	r|)n|8| d/< |
d0d}8|*dk	r|*n|8| d0< |
d1d}8|+dk	r|+n|8| d1< |
d2d}8|,dk	r|,n|8| d2< |
d3d}8|-dk		r|-n|8| d3< |
d4d}8|.dk		r6|.n|8| d4< |
d5d}8|/dk		rX|/n|8| d5< |
d6d}8|0dk		rz|0n|8| d6< |
d7d}8|1dk		r|1n|8| d7< |
d8d}8|2dk		r|2n|8| d8< |
d9d}8|3dk		r|3n|8| d9< |
d:d}8|4dk	
r|4n|8| d:< |
d;d}8|5dk	
r$|5n|8| d;< dd<lCmD}9 d| jEd=< |9d=ddd>| jd=< |
d=d | jFf t|f|6 d| _dS )?a/  
        Construct a new Isosurface object
        
        Draws isosurfaces between iso-min and iso-max values with
        coordinates given by four 1-dimensional arrays containing the
        `value`, `x`, `y` and `z` of every vertex of a uniform or non-
        uniform 3-D grid. Horizontal or vertical slices, caps as well
        as spaceframe between iso-min and iso-max values could also be
        drawn using this trace.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Isosurface`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        caps
            :class:`plotly.graph_objects.isosurface.Caps` instance
            or dict with compatible properties
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here `value`) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as `value` and if set, `cmin` must
            be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as `value`. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as `value` and if set, `cmax` must
            be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.isosurface.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contour
            :class:`plotly.graph_objects.isosurface.Contour`
            instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        flatshading
            Determines whether or not normal smoothing is applied
            to the meshes, creating meshes with an angular, low-
            poly look via flat reflections.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.isosurface.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        isomax
            Sets the maximum boundary for iso-surface plot.
        isomin
            Sets the minimum boundary for iso-surface plot.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.isosurface.Lighting`
            instance or dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.isosurface.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        slices
            :class:`plotly.graph_objects.isosurface.Slices`
            instance or dict with compatible properties
        spaceframe
            :class:`plotly.graph_objects.isosurface.Spaceframe`
            instance or dict with compatible properties
        stream
            :class:`plotly.graph_objects.isosurface.Stream`
            instance or dict with compatible properties
        surface
            :class:`plotly.graph_objects.isosurface.Surface`
            instance or dict with compatible properties
        text
            Sets the text elements associated with the vertices. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        value
            Sets the 4th dimension (value) of the vertices.
        valuesrc
            Sets the source reference on plot.ly for  value .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the X coordinates of the vertices on X axis.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the Y coordinates of the vertices on Y axis.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the Z coordinates of the vertices on Z axis.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Isosurface
        
isosurfaceNzThe first argument to the plotly.graph_objs.Isosurface 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Isosurface`rJ   Fr   )r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r   r   r,   r   r-   r3   r7   r8   r   r   r9   r<   r?   r@   rC   r   r   )rK   rD   )rL   rM   r   )GrN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r   r[   r   r   r   r   r   r   r   r   r   r`   ra   r   re   rf   rg   rh   ri   rj   rk   rl   rm   r   r   rq   r   r   rr   rs   rt   rx   r   r   r|   r   r   r   r}   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   rK   rE   r   ):r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r   r   r,   r   r-   r3   r7   r8   r   r   r9   r<   r?   r@   rC   r   r   r   Zv_isosurfacer   rK   )rQ   r   r   rO     s`     3


zIsosurface.__init__)5NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)>r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r   r   r,   r   r-   r3   r7   r8   r   r   r9   r<   r?   r@   rC   r   r   rD   rG   rH   rO   r   r   r   )rQ   r   r    sD   f.5#*, l                                                    r  c                   s0  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zed<d= Zed>d? ZdC fdAdB	Z  ZS )D	Indicatorc             C   s   | d S )a  
        Sets the horizontal alignment of the `text` within the box.
        Note that this attribute has no effect if an angular gauge is
        displayed: in this case, it is always centered
    
        The 'align' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['left', 'center', 'right']

        Returns
        -------
        Any
        alignr   )r   r   r   r   r    s    zIndicator.alignc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zIndicator.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIndicator.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   )  s    c             C   s   | d S )a  
        The 'delta' property is an instance of Delta
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.indicator.Delta`
          - A dict of string/value properties that will be passed
            to the Delta constructor
    
            Supported dict properties:
                
                decreasing
                    :class:`plotly.graph_objects.indicator.delta.De
                    creasing` instance or dict with compatible
                    properties
                font
                    Set the font used to display the delta
                increasing
                    :class:`plotly.graph_objects.indicator.delta.In
                    creasing` instance or dict with compatible
                    properties
                position
                    Sets the position of delta with respect to the
                    number.
                reference
                    Sets the reference value to compute the delta.
                    By default, it is set to the current value.
                relative
                    Show relative change
                valueformat
                    Sets the value formatting rule using d3
                    formatting mini-language which is similar to
                    those of Python. See
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format

        Returns
        -------
        plotly.graph_objs.indicator.Delta
        deltar   )r   r   r   r   r  /  s    (zIndicator.deltac             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Y  s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.indicator.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this indicator
                    trace .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this indicator trace .
                x
                    Sets the horizontal domain of this indicator
                    trace (in plot fraction).
                y
                    Sets the vertical domain of this indicator
                    trace (in plot fraction).

        Returns
        -------
        plotly.graph_objs.indicator.Domain
        r   r   )r   r   r   r   r   _  s    zIndicator.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ~  s    c             C   s   | d S )a  
        The gauge of the Indicator plot.
    
        The 'gauge' property is an instance of Gauge
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.indicator.Gauge`
          - A dict of string/value properties that will be passed
            to the Gauge constructor
    
            Supported dict properties:
                
                axis
                    :class:`plotly.graph_objects.indicator.gauge.Ax
                    is` instance or dict with compatible properties
                bar
                    Set the appearance of the gauge's value
                bgcolor
                    Sets the gauge background color.
                bordercolor
                    Sets the color of the border enclosing the
                    gauge.
                borderwidth
                    Sets the width (in px) of the border enclosing
                    the gauge.
                shape
                    Set the shape of the gauge
                steps
                    A tuple of :class:`plotly.graph_objects.indicat
                    or.gauge.Step` instances or dicts with
                    compatible properties
                stepdefaults
                    When used in a template (as layout.template.dat
                    a.indicator.gauge.stepdefaults), sets the
                    default property values to use for elements of
                    indicator.gauge.steps
                threshold
                    :class:`plotly.graph_objects.indicator.gauge.Th
                    reshold` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.indicator.Gauge
        gauger   )r   r   r   r   r    s    .zIndicator.gaugec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zIndicator.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zIndicator.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zIndicator.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"      s    zIndicator.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a  
        Determines how the value is displayed on the graph. `number`
        displays the value numerically in text. `delta` displays the
        difference to a reference value in text. Finally, `gauge`
        displays the value graphically on an axis.
    
        The 'mode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['number', 'delta', 'gauge'] joined with '+' characters
            (e.g. 'number+delta')

        Returns
        -------
        Any
        rK  r   )r   r   r   r   rK    s    zIndicator.modec             C   s   || d< d S )NrK  r   )r   r   r   r   r   rK  '  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   -  s    zIndicator.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   =  s    c             C   s   | d S )a  
        The 'number' property is an instance of Number
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.indicator.Number`
          - A dict of string/value properties that will be passed
            to the Number constructor
    
            Supported dict properties:
                
                font
                    Set the font used to display main number
                prefix
                    Sets a prefix appearing before the number.
                suffix
                    Sets a suffix appearing next to the number.
                valueformat
                    Sets the value formatting rule using d3
                    formatting mini-language which is similar to
                    those of Python. See
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format

        Returns
        -------
        plotly.graph_objs.indicator.Number
        numberr   )r   r   r   r   r   C  s    zIndicator.numberc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a  s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.indicator.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.indicator.Stream
        r,   r   )r   r   r   r   r,   g  s    zIndicator.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        The 'title' property is an instance of Title
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.indicator.Title`
          - A dict of string/value properties that will be passed
            to the Title constructor
    
            Supported dict properties:
                
                align
                    Sets the horizontal alignment of the title. It
                    defaults to `center` except for bullet charts
                    for which it defaults to right.
                font
                    Set the font used to display the title
                text
                    Sets the title of this indicator.

        Returns
        -------
        plotly.graph_objs.indicator.Title
        r  r   )r   r   r   r   r    s    zIndicator.titlec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zIndicator.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zIndicator.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )z
        Sets the number to be displayed.
    
        The 'value' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zIndicator.valuec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zIndicator.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   
  s    zIndicator.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zIndicator._parent_path_strc             C   s   dS )Na          align
            Sets the horizontal alignment of the `text` within the
            box. Note that this attribute has no effect if an
            angular gauge is displayed: in this case, it is always
            centered
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        delta
            :class:`plotly.graph_objects.indicator.Delta` instance
            or dict with compatible properties
        domain
            :class:`plotly.graph_objects.indicator.Domain` instance
            or dict with compatible properties
        gauge
            The gauge of the Indicator plot.
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines how the value is displayed on the graph.
            `number` displays the value numerically in text.
            `delta` displays the difference to a reference value in
            text. Finally, `gauge` displays the value graphically
            on an axis.
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        number
            :class:`plotly.graph_objects.indicator.Number` instance
            or dict with compatible properties
        stream
            :class:`plotly.graph_objects.indicator.Stream` instance
            or dict with compatible properties
        title
            :class:`plotly.graph_objects.indicator.Title` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        value
            Sets the number to be displayed.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH     s    [zIndicator._prop_descriptionsNc                sP  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm} | | jd< | | jd	< | | jd
< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< |  | jd< |! | jd< |
dd}|dk	r|n|| d< |
d	d}|dk	r|n|| d	< |
d
d}|dk	r|n|| d
< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r:|n|| d< |
dd}|dk	r\|n|| d< |
dd}|	dk	r~|	n|| d< |
dd}|
dk	r|
n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r(|n|| d< |
dd}|dk	rJ|n|| d< |
dd}|dk	rl|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< ddl"m#} d| j$d< |dddd| jd< |
dd | j%f t|f| d| _dS )ak  
        Construct a new Indicator object
        
        An indicator is used to visualize a single `value` along with
        some contextual information such as `steps` or a `threshold`,
        using a combination of three visual elements: a number, a
        delta, and/or a gauge. Deltas are taken with respect to a
        `reference`. Gauges can be either angular or bullet (aka
        linear) gauges.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Indicator`
        align
            Sets the horizontal alignment of the `text` within the
            box. Note that this attribute has no effect if an
            angular gauge is displayed: in this case, it is always
            centered
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        delta
            :class:`plotly.graph_objects.indicator.Delta` instance
            or dict with compatible properties
        domain
            :class:`plotly.graph_objects.indicator.Domain` instance
            or dict with compatible properties
        gauge
            The gauge of the Indicator plot.
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        mode
            Determines how the value is displayed on the graph.
            `number` displays the value numerically in text.
            `delta` displays the difference to a reference value in
            text. Finally, `gauge` displays the value graphically
            on an axis.
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        number
            :class:`plotly.graph_objects.indicator.Number` instance
            or dict with compatible properties
        stream
            :class:`plotly.graph_objects.indicator.Stream` instance
            or dict with compatible properties
        title
            :class:`plotly.graph_objects.indicator.Title` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        value
            Sets the number to be displayed.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Indicator
        	indicatorNzThe first argument to the plotly.graph_objs.Indicator 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Indicator`rJ   Fr   )r  r  r   r   r  r   r  r   r   r!   r"   rK  r#   r   r,   r  r7   r8   r   r9   )rK   rD   )rL   rM   r   )&rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZAlignValidatorr[   r`   ra   ZDeltaValidatorr  ZGaugeValidatorrl   rm   rr   rs   rT  rt   ZNumberValidatorr}   r  r   r   r   r   r   rK   rE   r   )r   r   r  r   r   r  r   r  r   r   r!   r"   rK  r#   r   r,   r  r7   r8   r   r9   r   Zv_indicatorr   rK   )rQ   r   r   rO   s  s     


zIndicator.__init__)NNNNNNNNNNNNNNNNNNNN)r   r   r   r   r  r   r   r   r  r   r  r   r   r!   r"   rK  r#   r   r,   r  r7   r8   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r    sz   *0_                   r  c            !       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%edcdd Z&ededf Z'dj fdhdi	Z(  Z)S )kImagec             C   s   | d S )aR  
        Color model used to map the numerical color components
        described in `z` into colors.
    
        The 'colormodel' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['rgb', 'rgba', 'hsl', 'hsla']

        Returns
        -------
        Any
        
colormodelr   )r   r   r   r   r  k  s    zImage.colormodelc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  {  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zImage.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zImage.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Set the pixel's horizontal size.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zImage.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Set the pixel's vertical size
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zImage.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ai  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'color', 'name', 'text'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zImage.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zImage.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.image.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.image.Hoverlabel
        r   r   )r   r   r   r   r     s    3zImage.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7  s    c             C   s   | d S )aF  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `z`, `color` and `colormodel`. Anything contained in
        tag `<extra>` is displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   =  s    !zImage.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   `  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   f  s    zImage.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   t  s    c             C   s   | d S )z
        Same as `text`.
    
        The 'hovertext' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   z  s    zImage.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zImage.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    z	Image.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zImage.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    z
Image.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zImage.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#     s    z
Image.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#     s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zImage.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'      s    c             C   s   | d S )ad  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.image.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.image.Stream
        r,   r   )r   r   r   r   r,   &  s    zImage.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   A  s    c             C   s   | d S )z
        Sets the text elements associated with each z value.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-   G  s    z
Image.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   U  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   [  s    zImage.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   i  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   o  s    z	Image.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zImage.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zImage.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9     s    c             C   s   | d S )z
        Set the image's x position.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=     s    zImage.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=     s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>     s    zImage.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )z
        Set the image's y position.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA     s    zImage.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB     s    zImage.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB     s    c             C   s   | d S )a(  
        A 2-dimensional array in which each element is an array of 3 or
        4 numbers representing a color.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zImage.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )a  
        Array defining the higher bound for each color component. Note
        that the default value will depend on the colormodel. For the
        `rgb` colormodel, it is [255, 255, 255]. For the `rgba`
        colormodel, it is [255, 255, 255, 1]. For the `hsl` colormodel,
        it is [360, 100, 100]. For the `hsla` colormodel, it is [360,
        100, 100, 1].
    
        The 'zmax' property is an info array that may be specified as:
    
        * a list or tuple of 4 elements where:
    (0) The 'zmax[0]' property is a number and may be specified as:
          - An int or float
    (1) The 'zmax[1]' property is a number and may be specified as:
          - An int or float
    (2) The 'zmax[2]' property is a number and may be specified as:
          - An int or float
    (3) The 'zmax[3]' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        list
        zmaxr   )r   r   r   r   r  *  s    z
Image.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  F  s    c             C   s   | d S )a  
        Array defining the lower bound for each color component. Note
        that the default value will depend on the colormodel. For the
        `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel,
        it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0].
        For the `hsla` colormodel, it is [0, 0, 0, 0].
    
        The 'zmin' property is an info array that may be specified as:
    
        * a list or tuple of 4 elements where:
    (0) The 'zmin[0]' property is a number and may be specified as:
          - An int or float
    (1) The 'zmin[1]' property is a number and may be specified as:
          - An int or float
    (2) The 'zmin[2]' property is a number and may be specified as:
          - An int or float
    (3) The 'zmin[3]' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        list
        zminr   )r   r   r   r   r  L  s    z
Image.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  g  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   m  s    z
Image.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    z
Image.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zImage._parent_path_strc             C   s   dS )Na          colormodel
            Color model used to map the numerical color components
            described in `z` into colors.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Set the pixel's horizontal size.
        dy
            Set the pixel's vertical size
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.image.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `z`, `color` and `colormodel`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        stream
            :class:`plotly.graph_objects.image.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x0
            Set the image's x position.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        y0
            Set the image's y position.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        z
            A 2-dimensional array in which each element is an array
            of 3 or 4 numbers representing a color.
        zmax
            Array defining the higher bound for each color
            component. Note that the default value will depend on
            the colormodel. For the `rgb` colormodel, it is [255,
            255, 255]. For the `rgba` colormodel, it is [255, 255,
            255, 1]. For the `hsl` colormodel, it is [360, 100,
            100]. For the `hsla` colormodel, it is [360, 100, 100,
            1].
        zmin
            Array defining the lower bound for each color
            component. Note that the default value will depend on
            the colormodel. For the `rgb` colormodel, it is [0, 0,
            0]. For the `rgba` colormodel, it is [0, 0, 0, 0]. For
            the `hsl` colormodel, it is [0, 0, 0]. For the `hsla`
            colormodel, it is [0, 0, 0, 0].
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH     s     zImage._prop_descriptionsNc"       &         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|"
dd| _ddlm}# |# | jd< |# | jd	< |# | jd
< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |#  | jd< |#! | jd< |#" | jd< |## | jd< |#$ | jd< |#% | jd< |#& | jd< |#' | jd < |#( | jd!< |#) | jd"< |#* | jd#< |#+ | jd$< |#, | jd%< |#- | jd&< |#. | jd'< |
dd}$|dk	rF|n|$| d< |
d	d}$|dk	rh|n|$| d	< |
d
d}$|dk	r|n|$| d
< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|	dk	r4|	n|$| d< |
dd}$|
dk	rV|
n|$| d< |
dd}$|dk	rx|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r |n|$| d< |
dd}$|dk	r"|n|$| d< |
dd}$|dk	rD|n|$| d< |
dd}$|dk	rf|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r2|n|$| d< |
dd}$|dk	rT|n|$| d< |
d d}$|dk	rv|n|$| d < |
d!d}$|dk	r|n|$| d!< |
d"d}$|dk	r|n|$| d"< |
d#d}$|dk	r|n|$| d#< |
d$d}$|dk	r|n|$| d$< |
d%d}$|dk	r |n|$| d%< |
d&d}$| dk	rB| n|$| d&< |
d'd}$|!dk	rd|!n|$| d'< dd(l/m0}% d| j1d)< |%d)ddd*| jd)< |
d)d | j2f t|f|" d| _dS )+a  
        Construct a new Image object
        
        Display an image, i.e. data on a 2D regular raster. By default,
        when an image is displayed in a subplot, its y axis will be
        reversed (ie. `autorange: 'reversed'`), constrained to the
        domain (ie. `constrain: 'domain'`) and it will have the same
        scale as its x axis (ie. `scaleanchor: 'x,`) in order for
        pixels to be rendered as squares.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Image`
        colormodel
            Color model used to map the numerical color components
            described in `z` into colors.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Set the pixel's horizontal size.
        dy
            Set the pixel's vertical size
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.image.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `z`, `color` and `colormodel`.
            Anything contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        stream
            :class:`plotly.graph_objects.image.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x0
            Set the image's x position.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        y0
            Set the image's y position.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        z
            A 2-dimensional array in which each element is an array
            of 3 or 4 numbers representing a color.
        zmax
            Array defining the higher bound for each color
            component. Note that the default value will depend on
            the colormodel. For the `rgb` colormodel, it is [255,
            255, 255]. For the `rgba` colormodel, it is [255, 255,
            255, 1]. For the `hsl` colormodel, it is [360, 100,
            100]. For the `hsla` colormodel, it is [360, 100, 100,
            1].
        zmin
            Array defining the lower bound for each color
            component. Note that the default value will depend on
            the colormodel. For the `rgb` colormodel, it is [0, 0,
            0]. For the `rgba` colormodel, it is [0, 0, 0, 0]. For
            the `hsl` colormodel, it is [0, 0, 0]. For the `hsla`
            colormodel, it is [0, 0, 0, 0].
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Image
        imageNzThe first argument to the plotly.graph_objs.Image 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Image`rJ   Fr   )r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r,   r-   r3   r7   r8   r9   r=   r>   rA   rB   r   r  r  r   )rK   rD   )rL   rM   r   )3rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZColormodelValidatorr[   r`   ra   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rr   rs   rt   rx   r}   r~   r   r   r   r   r   r   r   r   r   ZmaxValidatorZminValidatorr   r   rK   rE   r   )&r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r,   r-   r3   r7   r8   r9   r=   r>   rA   rB   r   r  r  r   r   Zv_imager   rK   )rQ   r   r   rO   '  s     O


zImage.__init__)!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)*r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r,   r-   r3   r7   r8   r9   r=   r>   rA   rB   r   r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r  g  s   5#                                 r  c            9       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=edd Z>edd Z?d fdd	Z@  ZAS )Histogram2dContourc             C   s   | d S )a  
        Obsolete: since v1.42 each bin attribute is auto-determined
        separately and `autobinx` is not needed. However, we accept
        `autobinx: true` or `false` and will update `xbins` accordingly
        before deleting `autobinx` from the trace.
    
        The 'autobinx' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        autobinxr   )r   r   r   r   r
    s    zHistogram2dContour.autobinxc             C   s   || d< d S )Nr
  r   )r   r   r   r   r   r
    s    c             C   s   | d S )a  
        Obsolete: since v1.42 each bin attribute is auto-determined
        separately and `autobiny` is not needed. However, we accept
        `autobiny: true` or `false` and will update `ybins` accordingly
        before deleting `autobiny` from the trace.
    
        The 'autobiny' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        autobinyr   )r   r   r   r   r    s    zHistogram2dContour.autobinyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    z!Histogram2dContour.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not the contour level attributes are
        picked by an algorithm. If True, the number of contour levels
        can be set in `ncontours`. If False, set the contour level
        attributes in `contours`.
    
        The 'autocontour' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        autocontourr   )r   r   r   r   r    s    zHistogram2dContour.autocontourc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Set the `xbingroup` and `ybingroup` default prefix For example,
        setting a `bingroup` of 1 on two histogram2d traces will make
        them their x-bins and y-bins match separately.
    
        The 'bingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        bingroupr   )r   r   r   r   r    s    zHistogram2dContour.bingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2dContour.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aT-  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.histogr
                    am2dcontour.colorbar.Tickformatstop` instances
                    or dicts with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.histogram2dcontour.colorbar.tickformatstopdef
                    aults), sets the default property values to use
                    for elements of
                    histogram2dcontour.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.histogram2dcontour
                    .colorbar.Title` instance or dict with
                    compatible properties
                titlefont
                    Deprecated: Please use
                    histogram2dcontour.colorbar.title.font instead.
                    Sets this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    histogram2dcontour.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.ColorBar
        r   r   )r   r   r   r   r   "  s     ezHistogram2dContour.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    ,zHistogram2dContour.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   <  s    c             C   s   | d S )a  
        The 'contours' property is an instance of Contours
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.Contours`
          - A dict of string/value properties that will be passed
            to the Contours constructor
    
            Supported dict properties:
                
                coloring
                    Determines the coloring method showing the
                    contour values. If "fill", coloring is done
                    evenly between each contour level If "heatmap",
                    a heatmap gradient coloring is applied between
                    each contour level. If "lines", coloring is
                    done on the contour lines. If "none", no
                    coloring is applied on this trace.
                end
                    Sets the end contour level value. Must be more
                    than `contours.start`
                labelfont
                    Sets the font used for labeling the contour
                    levels. The default color comes from the lines,
                    if shown. The default family and size come from
                    `layout.font`.
                labelformat
                    Sets the contour label formatting rule using d3
                    formatting mini-language which is very similar
                    to Python, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                operation
                    Sets the constraint operation. "=" keeps
                    regions equal to `value` "<" and "<=" keep
                    regions less than `value` ">" and ">=" keep
                    regions greater than `value` "[]", "()", "[)",
                    and "(]" keep regions inside `value[0]` to
                    `value[1]` "][", ")(", "](", ")[" keep regions
                    outside `value[0]` to value[1]` Open vs. closed
                    intervals make no difference to constraint
                    display, but all versions are allowed for
                    consistency with filter transforms.
                showlabels
                    Determines whether to label the contour lines
                    with their values.
                showlines
                    Determines whether or not the contour lines are
                    drawn. Has an effect only if
                    `contours.coloring` is set to "fill".
                size
                    Sets the step between each contour level. Must
                    be positive.
                start
                    Sets the starting contour level value. Must be
                    less than `contours.end`
                type
                    If `levels`, the data is represented as a
                    contour plot with multiple levels displayed. If
                    `constraint`, the data is represented as
                    constraints with the invalid region shaded as
                    specified by the `operation` and `value`
                    parameters.
                value
                    Sets the value or values of the constraint
                    boundary. When `operation` is set to one of the
                    comparison values (=,<,>=,>,<=) "value" is
                    expected to be a number. When `operation` is
                    set to one of the interval values
                    ([],(),[),(],][,)(,](,)[) "value" is expected
                    to be an array of two numbers where the first
                    is the lower bound and the second is the upper
                    bound.

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.Contours
        r  r   )r   r   r   r   r  B  s    OzHistogram2dContour.contoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2dContour.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    z Histogram2dContour.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ap  
        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.
    
        The 'histfunc' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['count', 'sum', 'avg', 'min', 'max']

        Returns
        -------
        Any
        histfuncr   )r   r   r   r   r    s    zHistogram2dContour.histfuncc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        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).
    
        The 'histnorm' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['', 'percent', 'probability', 'density', 'probability
                density']

        Returns
        -------
        Any
        histnormr   )r   r   r   r   r    s    zHistogram2dContour.histnormc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r      s    zHistogram2dContour.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2dContour.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   (  s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.Hoverlabel
        r   r   )r   r   r   r   r   .  s    3zHistogram2dContour.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c  s    c             C   s   | d S )a*  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variable `z` Anything contained in tag `<extra>` is displayed
        in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   i  s    !z Histogram2dContour.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    z#Histogram2dContour.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2dContour.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2dContour.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2dContour.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aQ  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the color of the contour level. Has no
                    effect if `contours.coloring` is set to
                    "lines".
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                smoothing
                    Sets the amount of smoothing for the contour
                    lines, where 0 corresponds to no smoothing.
                width
                    Sets the contour line width in (in px)

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.Line
        r   r   )r   r   r   r   r     s    zHistogram2dContour.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ad  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                color
                    Sets the aggregation data.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.Marker
        r   r   )r   r   r   r   r     s    zHistogram2dContour.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   *  s    zHistogram2dContour.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   @  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   F  s    zHistogram2dContour.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   T  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   Z  s    zHistogram2dContour.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   j  s    c             C   s   | d S )a  
        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.
    
        The 'nbinsx' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        nbinsxr   )r   r   r   r   r  p  s    zHistogram2dContour.nbinsxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        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.
    
        The 'nbinsy' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        nbinsyr   )r   r   r   r   r    s    zHistogram2dContour.nbinsyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the maximum number of contour levels. The actual number of
        contours will be chosen automatically to be less than or equal
        to the value of `ncontours`. Has an effect only if
        `autocontour` is True or if `contours.size` is missing.
    
        The 'ncontours' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [1, 9223372036854775807]

        Returns
        -------
        int
        	ncontoursr   )r   r   r   r   r    s    zHistogram2dContour.ncontoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zHistogram2dContour.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHistogram2dContour.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zHistogram2dContour.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHistogram2dContour.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a~  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.Stream
        r,   r   )r   r   r   r   r,     s    zHistogram2dContour.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   '  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   -  s    zHistogram2dContour.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   =  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   C  s    zHistogram2dContour.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   ^  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   d  s    zHistogram2dContour.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   u  s    c             C   s   | d S )z
        Sets the sample data to be binned on the x axis.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   {  s    zHistogram2dContour.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<     s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>     s    zHistogram2dContour.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )a  
        Set a group of histogram traces which will have compatible
        x-bin settings. Using `xbingroup`, histogram2d and
        histogram2dcontour traces  (on axes of the same axis type) can
        have compatible x-bin settings. Note that the same `xbingroup`
        value can be used to set (1D) histogram `bingroup`
    
        The 'xbingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        	xbingroupr   )r   r   r   r   r    s    zHistogram2dContour.xbingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        The 'xbins' property is an instance of XBins
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.XBins`
          - A dict of string/value properties that will be passed
            to the XBins constructor
    
            Supported dict properties:
                
                end
                    Sets the end value for the x axis bins. The
                    last bin may not end exactly at this value, we
                    increment the bin edge by `size` from `start`
                    until we reach or exceed `end`. Defaults to the
                    maximum data value. Like `start`, for dates use
                    a date string, and for category data `end` is
                    based on the category serial numbers.
                size
                    Sets the size of each x axis bin. Default
                    behavior: If `nbinsx` is 0 or omitted, we
                    choose a nice round bin size such that the
                    number of bins is about the same as the typical
                    number of samples in each bin. If `nbinsx` is
                    provided, we choose a nice round bin size
                    giving no more than that many bins. For date
                    data, use milliseconds or "M<n>" for months, as
                    in `axis.dtick`. For category data, the number
                    of categories to bin together (always defaults
                    to 1).
                start
                    Sets the starting value for the x axis bins.
                    Defaults to the minimum data value, shifted
                    down if necessary to make nice round values and
                    to remove ambiguous bin edges. For example, if
                    most of the data is integers we shift the bin
                    edges 0.5 down, so a `size` of 5 would have a
                    default `start` of -0.5, so it is clear that
                    0-4 are in the first bin, 5-9 in the second,
                    but continuous data gets a start of 0 and bins
                    [0,5), [5,10) etc. Dates behave similarly, and
                    `start` should be a date string. For category
                    data, `start` is based on the category serial
                    numbers, and defaults to -0.5.

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.XBins
        xbinsr   )r   r   r   r   r    s    2zHistogram2dContour.xbinsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram2dContour.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zHistogram2dContour.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   !  s    c             C   s   | d S )z
        Sets the sample data to be binned on the y axis.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   '  s    zHistogram2dContour.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   5  s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   ;  s    zHistogram2dContour.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   N  s    c             C   s   | d S )a  
        Set a group of histogram traces which will have compatible
        y-bin settings. Using `ybingroup`, histogram2d and
        histogram2dcontour traces  (on axes of the same axis type) can
        have compatible y-bin settings. Note that the same `ybingroup`
        value can be used to set (1D) histogram `bingroup`
    
        The 'ybingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        	ybingroupr   )r   r   r   r   r  T  s    zHistogram2dContour.ybingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  g  s    c             C   s   | d S )a	  
        The 'ybins' property is an instance of YBins
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2dcontour.YBins`
          - A dict of string/value properties that will be passed
            to the YBins constructor
    
            Supported dict properties:
                
                end
                    Sets the end value for the y axis bins. The
                    last bin may not end exactly at this value, we
                    increment the bin edge by `size` from `start`
                    until we reach or exceed `end`. Defaults to the
                    maximum data value. Like `start`, for dates use
                    a date string, and for category data `end` is
                    based on the category serial numbers.
                size
                    Sets the size of each y axis bin. Default
                    behavior: If `nbinsy` is 0 or omitted, we
                    choose a nice round bin size such that the
                    number of bins is about the same as the typical
                    number of samples in each bin. If `nbinsy` is
                    provided, we choose a nice round bin size
                    giving no more than that many bins. For date
                    data, use milliseconds or "M<n>" for months, as
                    in `axis.dtick`. For category data, the number
                    of categories to bin together (always defaults
                    to 1).
                start
                    Sets the starting value for the y axis bins.
                    Defaults to the minimum data value, shifted
                    down if necessary to make nice round values and
                    to remove ambiguous bin edges. For example, if
                    most of the data is integers we shift the bin
                    edges 0.5 down, so a `size` of 5 would have a
                    default `start` of -0.5, so it is clear that
                    0-4 are in the first bin, 5-9 in the second,
                    but continuous data gets a start of 0 and bins
                    [0,5), [5,10) etc. Dates behave similarly, and
                    `start` should be a date string. For category
                    data, `start` is based on the category serial
                    numbers, and defaults to -0.5.

        Returns
        -------
        plotly.graph_objs.histogram2dcontour.YBins
        ybinsr   )r   r   r   r   r  m  s    2zHistogram2dContour.ybinsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram2dContour.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zHistogram2dContour.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s   | d S )z
        Sets the aggregation data.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2dContour.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        zautor   )r   r   r   r   r    s    zHistogram2dContour.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the hover text formatting rule using d3 formatting mini-
        languages which are very similar to those in Python. See:
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#d3_format
    
        The 'zhoverformat' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        zhoverformatr   )r   r   r   r   r    s    zHistogram2dContour.zhoverformatc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHistogram2dContour.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  %  s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        zmidr   )r   r   r   r   r  +  s    zHistogram2dContour.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ;  s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  A  s    zHistogram2dContour.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  P  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   V  s    zHistogram2dContour.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   d  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   j  s    zHistogram2dContour.typec             C   s   dS )NrF   r   )r   r   r   r   rG   p  s    z#Histogram2dContour._parent_path_strc             C   s   dS )Nax9          autobinx
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobinx` is not needed.
            However, we accept `autobinx: true` or `false` and will
            update `xbins` accordingly before deleting `autobinx`
            from the trace.
        autobiny
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobiny` is not needed.
            However, we accept `autobiny: true` or `false` and will
            update `ybins` accordingly before deleting `autobiny`
            from the trace.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        autocontour
            Determines whether or not the contour level attributes
            are picked by an algorithm. If True, the number of
            contour levels can be set in `ncontours`. If False, set
            the contour level attributes in `contours`.
        bingroup
            Set the `xbingroup` and `ybingroup` default prefix For
            example, setting a `bingroup` of 1 on two histogram2d
            traces will make them their x-bins and y-bins match
            separately.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.histogram2dcontour.ColorBa
            r` instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contours
            :class:`plotly.graph_objects.histogram2dcontour.Contour
            s` instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        histfunc
            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.
        histnorm
            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).
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.histogram2dcontour.Hoverla
            bel` instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `z` Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.histogram2dcontour.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.histogram2dcontour.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        nbinsx
            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.
        nbinsy
            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.
        ncontours
            Sets the maximum number of contour levels. The actual
            number of contours will be chosen automatically to be
            less than or equal to the value of `ncontours`. Has an
            effect only if `autocontour` is True or if
            `contours.size` is missing.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.histogram2dcontour.Stream`
            instance or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the sample data to be binned on the x axis.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbingroup
            Set a group of histogram traces which will have
            compatible x-bin settings. Using `xbingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible x-bin settings.
            Note that the same `xbingroup` value can be used to set
            (1D) histogram `bingroup`
        xbins
            :class:`plotly.graph_objects.histogram2dcontour.XBins`
            instance or dict with compatible properties
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the sample data to be binned on the y axis.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybingroup
            Set a group of histogram traces which will have
            compatible y-bin settings. Using `ybingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible y-bin settings.
            Note that the same `ybingroup` value can be used to set
            (1D) histogram `bingroup`
        ybins
            :class:`plotly.graph_objects.histogram2dcontour.YBins`
            instance or dict with compatible properties
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the aggregation data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   v  s      #z%Histogram2dContour._prop_descriptionsNc:       >         s@  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|:
dd| _ddlm}; |; | jd< |; | jd	< |; | jd
< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |;  | jd< |;! | jd< |;" | jd< |;# | jd< |;$ | jd< |;% | jd< |;& | jd< |;' | jd < |;( | jd!< |;) | jd"< |;* | jd#< |;+ | jd$< |;, | jd%< |;- | jd&< |;. | jd'< |;/ | jd(< |;0 | jd)< |;1 | jd*< |;2 | jd+< |;3 | jd,< |;4 | jd-< |;5 | jd.< |;6 | jd/< |;7 | jd0< |;8 | jd1< |;9 | jd2< |;: | jd3< |;; | jd4< |;< | jd5< |;= | jd6< |;> | jd7< |;? | jd8< |;@ | jd9< |;A | jd:< |;B | jd;< |;C | jd<< |;D | jd=< |;E | jd>< |;F | jd?< |
dd}<|dk	r|n|<| d< |
d	d}<|dk	r|n|<| d	< |
d
d}<|dk	r|n|<| d
< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r@|n|<| d< |
dd}<|dk	rb|n|<| d< |
dd}<|	dk	r|	n|<| d< |
dd}<|
dk	r|
n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r.|n|<| d< |
dd}<|dk	rP|n|<| d< |
dd}<|dk	rr|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r>|n|<| d< |
dd}<|dk	r`|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
d d}<|dk	r|n|<| d < |
d!d}<|dk	r|n|<| d!< |
d"d}<|dk	r
|n|<| d"< |
d#d}<|dk	r,|n|<| d#< |
d$d}<|dk	rN|n|<| d$< |
d%d}<|dk	rp|n|<| d%< |
d&d}<| dk	r| n|<| d&< |
d'd}<|!dk	r|!n|<| d'< |
d(d}<|"dk	r|"n|<| d(< |
d)d}<|#dk	r|#n|<| d)< |
d*d}<|$dk	r|$n|<| d*< |
d+d}<|%dk	r<|%n|<| d+< |
d,d}<|&dk	r^|&n|<| d,< |
d-d}<|'dk	r|'n|<| d-< |
d.d}<|(dk	r|(n|<| d.< |
d/d}<|)dk	r|)n|<| d/< |
d0d}<|*dk	r|*n|<| d0< |
d1d}<|+dk		r|+n|<| d1< |
d2d}<|,dk		r*|,n|<| d2< |
d3d}<|-dk		rL|-n|<| d3< |
d4d}<|.dk		rn|.n|<| d4< |
d5d}<|/dk		r|/n|<| d5< |
d6d}<|0dk		r|0n|<| d6< |
d7d}<|1dk		r|1n|<| d7< |
d8d}<|2dk		r|2n|<| d8< |
d9d}<|3dk	
r|3n|<| d9< |
d:d}<|4dk	
r:|4n|<| d:< |
d;d}<|5dk	
r\|5n|<| d;< |
d<d}<|6dk	
r~|6n|<| d<< |
d=d}<|7dk	
r|7n|<| d=< |
d>d}<|8dk	
r|8n|<| d>< |
d?d}<|9dk	
r|9n|<| d?< dd@lGmH}= d| jIdA< |=dAdddB| jdA< |
dAd | jJf t|f|: d| _dS )CaG<  
        Construct a new Histogram2dContour object
        
        The sample data from which statistics are computed is set in
        `x` and `y` (where `x` and `y` represent marginal
        distributions, binning is set in `xbins` and `ybins` in this
        case) or `z` (where `z` represent the 2D distribution and
        binning set, binning is set by `x` and `y` in this case). The
        resulting distribution is visualized as a contour plot.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.Histogram2dContour`
        autobinx
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobinx` is not needed.
            However, we accept `autobinx: true` or `false` and will
            update `xbins` accordingly before deleting `autobinx`
            from the trace.
        autobiny
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobiny` is not needed.
            However, we accept `autobiny: true` or `false` and will
            update `ybins` accordingly before deleting `autobiny`
            from the trace.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        autocontour
            Determines whether or not the contour level attributes
            are picked by an algorithm. If True, the number of
            contour levels can be set in `ncontours`. If False, set
            the contour level attributes in `contours`.
        bingroup
            Set the `xbingroup` and `ybingroup` default prefix For
            example, setting a `bingroup` of 1 on two histogram2d
            traces will make them their x-bins and y-bins match
            separately.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.histogram2dcontour.ColorBa
            r` instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contours
            :class:`plotly.graph_objects.histogram2dcontour.Contour
            s` instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        histfunc
            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.
        histnorm
            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).
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.histogram2dcontour.Hoverla
            bel` instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `z` Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.histogram2dcontour.Line`
            instance or dict with compatible properties
        marker
            :class:`plotly.graph_objects.histogram2dcontour.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        nbinsx
            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.
        nbinsy
            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.
        ncontours
            Sets the maximum number of contour levels. The actual
            number of contours will be chosen automatically to be
            less than or equal to the value of `ncontours`. Has an
            effect only if `autocontour` is True or if
            `contours.size` is missing.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.histogram2dcontour.Stream`
            instance or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the sample data to be binned on the x axis.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbingroup
            Set a group of histogram traces which will have
            compatible x-bin settings. Using `xbingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible x-bin settings.
            Note that the same `xbingroup` value can be used to set
            (1D) histogram `bingroup`
        xbins
            :class:`plotly.graph_objects.histogram2dcontour.XBins`
            instance or dict with compatible properties
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the sample data to be binned on the y axis.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybingroup
            Set a group of histogram traces which will have
            compatible y-bin settings. Using `ybingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible y-bin settings.
            Note that the same `ybingroup` value can be used to set
            (1D) histogram `bingroup`
        ybins
            :class:`plotly.graph_objects.histogram2dcontour.YBins`
            instance or dict with compatible properties
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the aggregation data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Histogram2dContour
        histogram2dcontourNzThe first argument to the plotly.graph_objs.Histogram2dContour 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Histogram2dContour`rJ   Fr   )r  r
  r  r   r  r  r   r   r   r  r   r   r  r  r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r  r'   r   r+   r   r,   r7   r8   r9   r<   r>   r  r  r  r?   r@   rB   r  r  r  rC   r   r  r  r  r  r  r   )rK   rD   )rL   rM   r   )KrN   r	  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  AutobinxValidatorr[   AutobinyValidatorr   AutocontourValidatorBingroupValidatorr   r   r   r  r`   ra   HistfuncValidatorHistnormValidatorre   rf   rg   rh   ri   rl   rm   rq   r   r   rr   rs   rt   NbinsxValidatorNbinsyValidatorNcontoursValidatorrx   r   r|   r   r}   r   r   r   r   r   XbingroupValidatorXBinsValidatorr  r   r   r   YbingroupValidatorYBinsValidatorr  r   r   ZautoValidatorZhoverformatValidatorr  ZmidValidatorr  r   r   rK   rE   r   )>r   r   r
  r  r   r  r  r   r   r   r  r   r   r  r  r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r  r'   r   r+   r   r,   r7   r8   r9   r<   r>   r  r  r  r?   r@   rB   r  r  r  rC   r   r  r  r  r  r  r   r   Zv_histogram2dcontourr   rK   )rQ   r   r   rO     s|     r


zHistogram2dContour.__init__)9NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Br   r   r   r   r
  r   r  r   r  r  r   r   r   r  r   r   r  r  r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r  r'   r   r+   r   r,   r7   r8   r9   r<   r>   r  r  r  r?   r@   rB   r  r  r  rC   r   r  r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r	    s^   g.Q5# 44  '                                                        r	  c            8       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<edd Z=edd Z>d fdd	Z?  Z@S )Histogram2dc             C   s   | d S )a  
        Obsolete: since v1.42 each bin attribute is auto-determined
        separately and `autobinx` is not needed. However, we accept
        `autobinx: true` or `false` and will update `xbins` accordingly
        before deleting `autobinx` from the trace.
    
        The 'autobinx' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
  r   )r   r   r   r   r
    s    zHistogram2d.autobinxc             C   s   || d< d S )Nr
  r   )r   r   r   r   r   r
  	  s    c             C   s   | d S )a  
        Obsolete: since v1.42 each bin attribute is auto-determined
        separately and `autobiny` is not needed. However, we accept
        `autobiny: true` or `false` and will update `ybins` accordingly
        before deleting `autobiny` from the trace.
    
        The 'autobiny' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zHistogram2d.autobinyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   &  s    zHistogram2d.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   9  s    c             C   s   | d S )a  
        Set the `xbingroup` and `ybingroup` default prefix For example,
        setting a `bingroup` of 1 on two histogram2d traces will make
        them their x-bins and y-bins match separately.
    
        The 'bingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  ?  s    zHistogram2d.bingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  P  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   V  s    zHistogram2d.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   k  s    c             C   s   | d S )a-  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2d.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.histogr
                    am2d.colorbar.Tickformatstop` instances or
                    dicts with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.histogram2d.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of
                    histogram2d.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.histogram2d.colorb
                    ar.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    histogram2d.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    histogram2d.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.histogram2d.ColorBar
        r   r   )r   r   r   r   r   q  s     ezHistogram2d.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   W  s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ]  s    ,zHistogram2d.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2d.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2d.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ap  
        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.
    
        The 'histfunc' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['count', 'sum', 'avg', 'min', 'max']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram2d.histfuncc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        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).
    
        The 'histnorm' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['', 'percent', 'probability', 'density', 'probability
                density']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram2d.histnormc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2d.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2d.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r      s    c             C   s   | d S )a	  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2d.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.histogram2d.Hoverlabel
        r   r   )r   r   r   r   r   &  s    3zHistogram2d.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [  s    c             C   s   | d S )a*  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variable `z` Anything contained in tag `<extra>` is displayed
        in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   a  s    !zHistogram2d.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2d.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2d.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2d.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram2d.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aV  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2d.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                color
                    Sets the aggregation data.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .

        Returns
        -------
        plotly.graph_objs.histogram2d.Marker
        r   r   )r   r   r   r   r     s    zHistogram2d.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zHistogram2d.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zHistogram2d.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   &  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   ,  s    zHistogram2d.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   <  s    c             C   s   | d S )a  
        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.
    
        The 'nbinsx' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        r  r   )r   r   r   r   r  B  s    zHistogram2d.nbinsxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  T  s    c             C   s   | d S )a  
        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.
    
        The 'nbinsy' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        r  r   )r   r   r   r   r  Z  s    zHistogram2d.nbinsyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  l  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   r  s    zHistogram2d.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHistogram2d.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zHistogram2d.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHistogram2d.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ap  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2d.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.histogram2d.Stream
        r,   r   )r   r   r   r   r,     s    zHistogram2d.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zHistogram2d.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zHistogram2d.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zHistogram2d.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   /  s    c             C   s   | d S )z
        Sets the sample data to be binned on the x axis.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   5  s    zHistogram2d.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   C  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   I  s    zHistogram2d.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   \  s    c             C   s   | d S )a  
        Set a group of histogram traces which will have compatible
        x-bin settings. Using `xbingroup`, histogram2d and
        histogram2dcontour traces  (on axes of the same axis type) can
        have compatible x-bin settings. Note that the same `xbingroup`
        value can be used to set (1D) histogram `bingroup`
    
        The 'xbingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  b  s    zHistogram2d.xbingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  u  s    c             C   s   | d S )a	  
        The 'xbins' property is an instance of XBins
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2d.XBins`
          - A dict of string/value properties that will be passed
            to the XBins constructor
    
            Supported dict properties:
                
                end
                    Sets the end value for the x axis bins. The
                    last bin may not end exactly at this value, we
                    increment the bin edge by `size` from `start`
                    until we reach or exceed `end`. Defaults to the
                    maximum data value. Like `start`, for dates use
                    a date string, and for category data `end` is
                    based on the category serial numbers.
                size
                    Sets the size of each x axis bin. Default
                    behavior: If `nbinsx` is 0 or omitted, we
                    choose a nice round bin size such that the
                    number of bins is about the same as the typical
                    number of samples in each bin. If `nbinsx` is
                    provided, we choose a nice round bin size
                    giving no more than that many bins. For date
                    data, use milliseconds or "M<n>" for months, as
                    in `axis.dtick`. For category data, the number
                    of categories to bin together (always defaults
                    to 1).
                start
                    Sets the starting value for the x axis bins.
                    Defaults to the minimum data value, shifted
                    down if necessary to make nice round values and
                    to remove ambiguous bin edges. For example, if
                    most of the data is integers we shift the bin
                    edges 0.5 down, so a `size` of 5 would have a
                    default `start` of -0.5, so it is clear that
                    0-4 are in the first bin, 5-9 in the second,
                    but continuous data gets a start of 0 and bins
                    [0,5), [5,10) etc. Dates behave similarly, and
                    `start` should be a date string. For category
                    data, `start` is based on the category serial
                    numbers, and defaults to -0.5.

        Returns
        -------
        plotly.graph_objs.histogram2d.XBins
        r  r   )r   r   r   r   r  {  s    2zHistogram2d.xbinsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram2d.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the horizontal gap (in pixels) between bricks.
    
        The 'xgap' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        xgapr   )r   r   r   r   r,    s    zHistogram2d.xgapc             C   s   || d< d S )Nr,  r   )r   r   r   r   r   r,    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zHistogram2d.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )z
        Sets the sample data to be binned on the y axis.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    zHistogram2d.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   	  s    zHistogram2d.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB     s    c             C   s   | d S )a  
        Set a group of histogram traces which will have compatible
        y-bin settings. Using `ybingroup`, histogram2d and
        histogram2dcontour traces  (on axes of the same axis type) can
        have compatible y-bin settings. Note that the same `ybingroup`
        value can be used to set (1D) histogram `bingroup`
    
        The 'ybingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  "  s    zHistogram2d.ybingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  5  s    c             C   s   | d S )a	  
        The 'ybins' property is an instance of YBins
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram2d.YBins`
          - A dict of string/value properties that will be passed
            to the YBins constructor
    
            Supported dict properties:
                
                end
                    Sets the end value for the y axis bins. The
                    last bin may not end exactly at this value, we
                    increment the bin edge by `size` from `start`
                    until we reach or exceed `end`. Defaults to the
                    maximum data value. Like `start`, for dates use
                    a date string, and for category data `end` is
                    based on the category serial numbers.
                size
                    Sets the size of each y axis bin. Default
                    behavior: If `nbinsy` is 0 or omitted, we
                    choose a nice round bin size such that the
                    number of bins is about the same as the typical
                    number of samples in each bin. If `nbinsy` is
                    provided, we choose a nice round bin size
                    giving no more than that many bins. For date
                    data, use milliseconds or "M<n>" for months, as
                    in `axis.dtick`. For category data, the number
                    of categories to bin together (always defaults
                    to 1).
                start
                    Sets the starting value for the y axis bins.
                    Defaults to the minimum data value, shifted
                    down if necessary to make nice round values and
                    to remove ambiguous bin edges. For example, if
                    most of the data is integers we shift the bin
                    edges 0.5 down, so a `size` of 5 would have a
                    default `start` of -0.5, so it is clear that
                    0-4 are in the first bin, 5-9 in the second,
                    but continuous data gets a start of 0 and bins
                    [0,5), [5,10) etc. Dates behave similarly, and
                    `start` should be a date string. For category
                    data, `start` is based on the category serial
                    numbers, and defaults to -0.5.

        Returns
        -------
        plotly.graph_objs.histogram2d.YBins
        r  r   )r   r   r   r   r  ;  s    2zHistogram2d.ybinsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  o  s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  u  s    zHistogram2d.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the vertical gap (in pixels) between bricks.
    
        The 'ygap' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        ygapr   )r   r   r   r   r-    s    zHistogram2d.ygapc             C   s   || d< d S )Nr-  r   )r   r   r   r   r   r-    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zHistogram2d.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s   | d S )z
        Sets the aggregation data.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHistogram2d.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zHistogram2d.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the hover text formatting rule using d3 formatting mini-
        languages which are very similar to those in Python. See:
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#d3_format
    
        The 'zhoverformat' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r    s    zHistogram2d.zhoverformatc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHistogram2d.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHistogram2d.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  #  s    zHistogram2d.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  2  s    c             C   s   | d S )a  
        Picks a smoothing algorithm use to smooth `z` data.
    
        The 'zsmooth' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['fast', 'best', False]

        Returns
        -------
        Any
        zsmoothr   )r   r   r   r   r.  8  s    zHistogram2d.zsmoothc             C   s   || d< d S )Nr.  r   )r   r   r   r   r   r.  G  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   M  s    zHistogram2d.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   a  s    zHistogram2d.typec             C   s   dS )NrF   r   )r   r   r   r   rG   g  s    zHistogram2d._parent_path_strc             C   s   dS )Na6          autobinx
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobinx` is not needed.
            However, we accept `autobinx: true` or `false` and will
            update `xbins` accordingly before deleting `autobinx`
            from the trace.
        autobiny
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobiny` is not needed.
            However, we accept `autobiny: true` or `false` and will
            update `ybins` accordingly before deleting `autobiny`
            from the trace.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        bingroup
            Set the `xbingroup` and `ybingroup` default prefix For
            example, setting a `bingroup` of 1 on two histogram2d
            traces will make them their x-bins and y-bins match
            separately.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.histogram2d.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        histfunc
            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.
        histnorm
            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).
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.histogram2d.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `z` Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.histogram2d.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        nbinsx
            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.
        nbinsy
            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.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.histogram2d.Stream`
            instance or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the sample data to be binned on the x axis.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbingroup
            Set a group of histogram traces which will have
            compatible x-bin settings. Using `xbingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible x-bin settings.
            Note that the same `xbingroup` value can be used to set
            (1D) histogram `bingroup`
        xbins
            :class:`plotly.graph_objects.histogram2d.XBins`
            instance or dict with compatible properties
        xcalendar
            Sets the calendar system to use with `x` date data.
        xgap
            Sets the horizontal gap (in pixels) between bricks.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the sample data to be binned on the y axis.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybingroup
            Set a group of histogram traces which will have
            compatible y-bin settings. Using `ybingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible y-bin settings.
            Note that the same `ybingroup` value can be used to set
            (1D) histogram `bingroup`
        ybins
            :class:`plotly.graph_objects.histogram2d.YBins`
            instance or dict with compatible properties
        ycalendar
            Sets the calendar system to use with `y` date data.
        ygap
            Sets the vertical gap (in pixels) between bricks.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the aggregation data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsmooth
            Picks a smoothing algorithm use to smooth `z` data.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   m  s      zHistogram2d._prop_descriptionsNc9       =         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|9
dd| _ddlm}: |: | jd< |: | jd	< |: | jd
< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |: | jd< |:  | jd< |:! | jd< |:" | jd< |:# | jd< |:$ | jd< |:% | jd< |:& | jd< |:' | jd < |:( | jd!< |:) | jd"< |:* | jd#< |:+ | jd$< |:, | jd%< |:- | jd&< |:. | jd'< |:/ | jd(< |:0 | jd)< |:1 | jd*< |:2 | jd+< |:3 | jd,< |:4 | jd-< |:5 | jd.< |:6 | jd/< |:7 | jd0< |:8 | jd1< |:9 | jd2< |:: | jd3< |:; | jd4< |:< | jd5< |:= | jd6< |:> | jd7< |:? | jd8< |:@ | jd9< |:A | jd:< |:B | jd;< |:C | jd<< |:D | jd=< |:E | jd>< |
dd};|dk	r|n|;| d< |
d	d};|dk	r|n|;| d	< |
d
d};|dk	r|n|;| d
< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r2|n|;| d< |
dd};|dk	rT|n|;| d< |
dd};|	dk	rv|	n|;| d< |
dd};|
dk	r|
n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r |n|;| d< |
dd};|dk	rB|n|;| d< |
dd};|dk	rd|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r|n|;| d< |
dd};|dk	r0|n|;| d< |
dd};|dk	rR|n|;| d< |
dd};|dk	rt|n|;| d< |
dd};|dk	r|n|;| d< |
d d};|dk	r|n|;| d < |
d!d};|dk	r|n|;| d!< |
d"d};|dk	r|n|;| d"< |
d#d};|dk	r|n|;| d#< |
d$d};|dk	r@|n|;| d$< |
d%d};|dk	rb|n|;| d%< |
d&d};| dk	r| n|;| d&< |
d'd};|!dk	r|!n|;| d'< |
d(d};|"dk	r|"n|;| d(< |
d)d};|#dk	r|#n|;| d)< |
d*d};|$dk	r|$n|;| d*< |
d+d};|%dk	r.|%n|;| d+< |
d,d};|&dk	rP|&n|;| d,< |
d-d};|'dk	rr|'n|;| d-< |
d.d};|(dk	r|(n|;| d.< |
d/d};|)dk	r|)n|;| d/< |
d0d};|*dk	r|*n|;| d0< |
d1d};|+dk	r|+n|;| d1< |
d2d};|,dk		r|,n|;| d2< |
d3d};|-dk		r>|-n|;| d3< |
d4d};|.dk		r`|.n|;| d4< |
d5d};|/dk		r|/n|;| d5< |
d6d};|0dk		r|0n|;| d6< |
d7d};|1dk		r|1n|;| d7< |
d8d};|2dk		r|2n|;| d8< |
d9d};|3dk	
r
|3n|;| d9< |
d:d};|4dk	
r,|4n|;| d:< |
d;d};|5dk	
rN|5n|;| d;< |
d<d};|6dk	
rp|6n|;| d<< |
d=d};|7dk	
r|7n|;| d=< |
d>d};|8dk	
r|8n|;| d>< dd?lFmG}< d| jHd@< |<d@dddA| jd@< |
d@d | jIf t|f|9 d| _dS )Ba|9  
        Construct a new Histogram2d object
        
        The sample data from which statistics are computed is set in
        `x` and `y` (where `x` and `y` represent marginal
        distributions, binning is set in `xbins` and `ybins` in this
        case) or `z` (where `z` represent the 2D distribution and
        binning set, binning is set by `x` and `y` in this case). The
        resulting distribution is visualized as a heatmap.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Histogram2d`
        autobinx
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobinx` is not needed.
            However, we accept `autobinx: true` or `false` and will
            update `xbins` accordingly before deleting `autobinx`
            from the trace.
        autobiny
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobiny` is not needed.
            However, we accept `autobiny: true` or `false` and will
            update `ybins` accordingly before deleting `autobiny`
            from the trace.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        bingroup
            Set the `xbingroup` and `ybingroup` default prefix For
            example, setting a `bingroup` of 1 on two histogram2d
            traces will make them their x-bins and y-bins match
            separately.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.histogram2d.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        histfunc
            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.
        histnorm
            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).
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.histogram2d.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `z` Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.histogram2d.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        nbinsx
            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.
        nbinsy
            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.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.histogram2d.Stream`
            instance or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the sample data to be binned on the x axis.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbingroup
            Set a group of histogram traces which will have
            compatible x-bin settings. Using `xbingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible x-bin settings.
            Note that the same `xbingroup` value can be used to set
            (1D) histogram `bingroup`
        xbins
            :class:`plotly.graph_objects.histogram2d.XBins`
            instance or dict with compatible properties
        xcalendar
            Sets the calendar system to use with `x` date data.
        xgap
            Sets the horizontal gap (in pixels) between bricks.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the sample data to be binned on the y axis.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybingroup
            Set a group of histogram traces which will have
            compatible y-bin settings. Using `ybingroup`,
            histogram2d and histogram2dcontour traces  (on axes of
            the same axis type) can have compatible y-bin settings.
            Note that the same `ybingroup` value can be used to set
            (1D) histogram `bingroup`
        ybins
            :class:`plotly.graph_objects.histogram2d.YBins`
            instance or dict with compatible properties
        ycalendar
            Sets the calendar system to use with `y` date data.
        ygap
            Sets the vertical gap (in pixels) between bricks.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the aggregation data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsmooth
            Picks a smoothing algorithm use to smooth `z` data.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Histogram2d
        histogram2dNzThe first argument to the plotly.graph_objs.Histogram2d 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Histogram2d`rJ   Fr   )r/  r
  r  r   r  r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r'   r   r+   r   r,   r7   r8   r9   r<   r>   r  r  r  r,  r?   r@   rB   r  r  r  r-  rC   r   r  r  r  r  r  r.  r   )rK   rD   )rL   rM   r   )JrN   r+  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r/  r  r[   r  r   r  r   r   r   r`   ra   r  r   re   rf   rg   rh   ri   rl   rm   rq   r   rr   rs   rt   r!  r"  rx   r   r|   r   r}   r   r   r   r   r   r$  r%  r  XgapValidatorr   r   r   r&  r'  r  YgapValidatorr   r   r(  r)  r  r*  r  ZsmoothValidatorr   r   rK   rE   r   )=r   r   r
  r  r   r  r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r'   r   r+   r   r,   r7   r8   r9   r<   r>   r  r  r  r,  r?   r@   rB   r  r  r  r-  rC   r   r  r  r  r  r  r.  r   r   Zv_histogram2dr   rK   )rQ   r   r   rO     sr     e


zHistogram2d.__init__)8NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Ar   r   r   r   r
  r   r  r   r  r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r'   r   r+   r   r,   r7   r8   r9   r<   r>   r  r  r  r,  r?   r@   rB   r  r  r  r-  rC   r   r  r  r  r  r  r.  r   rD   rG   rH   rO   r   r   r   )rQ   r   r+    sX   g.5#44                                                         r+  c            3       sV  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7edd Z8edd Z9d fdd	Z:  Z;S )	Histogramc             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same alignmentgroup. This controls whether bars
        compute their positional range dependently or independently.
    
        The 'alignmentgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram.alignmentgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Obsolete: since v1.42 each bin attribute is auto-determined
        separately and `autobinx` is not needed. However, we accept
        `autobinx: true` or `false` and will update `xbins` accordingly
        before deleting `autobinx` from the trace.
    
        The 'autobinx' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
  r   )r   r   r   r   r
    s    zHistogram.autobinxc             C   s   || d< d S )Nr
  r   )r   r   r   r   r   r
    s    c             C   s   | d S )a  
        Obsolete: since v1.42 each bin attribute is auto-determined
        separately and `autobiny` is not needed. However, we accept
        `autobiny: true` or `false` and will update `ybins` accordingly
        before deleting `autobiny` from the trace.
    
        The 'autobiny' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zHistogram.autobinyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  	  s    c             C   s   | d S )a  
        Set a group of histogram traces which will have compatible bin
        settings. Note that traces on the same subplot and with the
        same "orientation" under `barmode` "stack", "relative" and
        "group" are forced into the same bingroup, Using `bingroup`,
        traces under `barmode` "overlay" and on different axes (of the
        same axis type) can have compatible bin settings. Note that
        histogram and histogram2d* trace can share the same `bingroup`
    
        The 'bingroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r    s    zHistogram.bingroupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  $  s    c             C   s   | d S )a  
        The 'cumulative' property is an instance of Cumulative
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.Cumulative`
          - A dict of string/value properties that will be passed
            to the Cumulative constructor
    
            Supported dict properties:
                
                currentbin
                    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.
                direction
                    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.
                enabled
                    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.

        Returns
        -------
        plotly.graph_objs.histogram.Cumulative
        
cumulativer   )r   r   r   r   r4  *  s    *zHistogram.cumulativec             C   s   || d< d S )Nr4  r   )r   r   r   r   r   r4  V  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   \  s    zHistogram.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   m  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   s  s    zHistogram.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a'  
        The 'error_x' property is an instance of ErrorX
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.ErrorX`
          - A dict of string/value properties that will be passed
            to the ErrorX constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                copy_ystyle
    
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.histogram.ErrorX
        ry  r   )r   r   r   r   ry    s    IzHistogram.error_xc             C   s   || d< d S )Nry  r   )r   r   r   r   r   ry    s    c             C   s   | d S )a  
        The 'error_y' property is an instance of ErrorY
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.ErrorY`
          - A dict of string/value properties that will be passed
            to the ErrorY constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.histogram.ErrorY
        rz  r   )r   r   r   r   rz    s    GzHistogram.error_yc             C   s   || d< d S )Nrz  r   )r   r   r   r   r   rz  !  s    c             C   s   | d S )ap  
        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.
    
        The 'histfunc' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['count', 'sum', 'avg', 'min', 'max']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  '  s    zHistogram.histfuncc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ;  s    c             C   s   | d S )a  
        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).
    
        The 'histnorm' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['', 'percent', 'probability', 'density', 'probability
                density']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  A  s    zHistogram.histnormc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ]  s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   c  s    zHistogram.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   w  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   }  s    zHistogram.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.histogram.Hoverlabel
        r   r   )r   r   r   r   r     s    3zHistogram.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a2  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variable `binNumber` Anything contained in tag `<extra>` is
        displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r     s    !zHistogram.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   	  s    zHistogram.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHistogram.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   -  s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   3  s    zHistogram.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   C  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   I  s    zHistogram.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   W  s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ]  s    zHistogram.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   n  s    c             C   s   | d S )a3  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.histogram.marker.C
                    olorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.histogram.marker.L
                    ine` instance or dict with compatible
                    properties
                opacity
                    Sets the opacity of the bars.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.

        Returns
        -------
        plotly.graph_objs.histogram.Marker
        r   r   )r   r   r   r   r   t  s    pzHistogram.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zHistogram.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"     s    zHistogram.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"     s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#     s    zHistogram.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   ,  s    c             C   s   | d S )a  
        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.
    
        The 'nbinsx' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        r  r   )r   r   r   r   r  2  s    zHistogram.nbinsxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  D  s    c             C   s   | d S )a  
        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.
    
        The 'nbinsy' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [0, 9223372036854775807]

        Returns
        -------
        int
        r  r   )r   r   r   r   r  J  s    zHistogram.nbinsyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  \  s    c             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same offsetgroup where bars of the same position
        coordinate will line up.
    
        The 'offsetgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r%   r   )r   r   r   r   r%   b  s    zHistogram.offsetgroupc             C   s   || d< d S )Nr%   r   )r   r   r   r   r   r%   s  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   y  s    zHistogram.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )a]  
        Sets the orientation of the bars. With "v" ("h"), the value of
        the each bar spans along the vertical (horizontal).
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(     s    zHistogram.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(     s    c             C   s   | d S )a  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.histogram.selected
                    .Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.histogram.selected
                    .Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.histogram.Selected
        r   r   )r   r   r   r   r     s    zHistogram.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*     s    zHistogram.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*     s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+     s    zHistogram.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.histogram.Stream
        r,   r   )r   r   r   r   r,     s    zHistogram.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )a  
        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.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zHistogram.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   $  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   *  s    zHistogram.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   8  s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   >  s    zHistogram.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   N  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   T  s    zHistogram.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   o  s    c             C   s   | d S )a&  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.histogram.unselect
                    ed.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.histogram.unselect
                    ed.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.histogram.Unselected
        r   r   )r   r   r   r   r   u  s    zHistogram.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9     s    zHistogram.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9     s    c             C   s   | d S )z
        Sets the sample data to be binned on the x axis.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<     s    zHistogram.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<     s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>     s    zHistogram.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )a  
        The 'xbins' property is an instance of XBins
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.XBins`
          - A dict of string/value properties that will be passed
            to the XBins constructor
    
            Supported dict properties:
                
                end
                    Sets the end value for the x axis bins. The
                    last bin may not end exactly at this value, we
                    increment the bin edge by `size` from `start`
                    until we reach or exceed `end`. Defaults to the
                    maximum data value. Like `start`, for dates use
                    a date string, and for category data `end` is
                    based on the category serial numbers.
                size
                    Sets the size of each x axis bin. Default
                    behavior: If `nbinsx` is 0 or omitted, we
                    choose a nice round bin size such that the
                    number of bins is about the same as the typical
                    number of samples in each bin. If `nbinsx` is
                    provided, we choose a nice round bin size
                    giving no more than that many bins. For date
                    data, use milliseconds or "M<n>" for months, as
                    in `axis.dtick`. For category data, the number
                    of categories to bin together (always defaults
                    to 1). If multiple non-overlaying histograms
                    share a subplot, the first explicit `size` is
                    used and all others discarded. If no `size` is
                    provided,the sample data from all traces is
                    combined to determine `size` as described
                    above.
                start
                    Sets the starting value for the x axis bins.
                    Defaults to the minimum data value, shifted
                    down if necessary to make nice round values and
                    to remove ambiguous bin edges. For example, if
                    most of the data is integers we shift the bin
                    edges 0.5 down, so a `size` of 5 would have a
                    default `start` of -0.5, so it is clear that
                    0-4 are in the first bin, 5-9 in the second,
                    but continuous data gets a start of 0 and bins
                    [0,5), [5,10) etc. Dates behave similarly, and
                    `start` should be a date string. For category
                    data, `start` is based on the category serial
                    numbers, and defaults to -0.5. If multiple non-
                    overlaying histograms share a subplot, the
                    first explicit `start` is used exactly and all
                    others are shifted down (if necessary) to
                    differ from that one by an integer number of
                    bins.

        Returns
        -------
        plotly.graph_objs.histogram.XBins
        r  r   )r   r   r   r   r    s    <zHistogram.xbinsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  /  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   5  s    zHistogram.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   C  s    c             C   s   | d S )z
        Sets the sample data to be binned on the y axis.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   I  s    zHistogram.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   W  s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   ]  s    zHistogram.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   p  s    c             C   s   | d S )a  
        The 'ybins' property is an instance of YBins
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.histogram.YBins`
          - A dict of string/value properties that will be passed
            to the YBins constructor
    
            Supported dict properties:
                
                end
                    Sets the end value for the y axis bins. The
                    last bin may not end exactly at this value, we
                    increment the bin edge by `size` from `start`
                    until we reach or exceed `end`. Defaults to the
                    maximum data value. Like `start`, for dates use
                    a date string, and for category data `end` is
                    based on the category serial numbers.
                size
                    Sets the size of each y axis bin. Default
                    behavior: If `nbinsy` is 0 or omitted, we
                    choose a nice round bin size such that the
                    number of bins is about the same as the typical
                    number of samples in each bin. If `nbinsy` is
                    provided, we choose a nice round bin size
                    giving no more than that many bins. For date
                    data, use milliseconds or "M<n>" for months, as
                    in `axis.dtick`. For category data, the number
                    of categories to bin together (always defaults
                    to 1). If multiple non-overlaying histograms
                    share a subplot, the first explicit `size` is
                    used and all others discarded. If no `size` is
                    provided,the sample data from all traces is
                    combined to determine `size` as described
                    above.
                start
                    Sets the starting value for the y axis bins.
                    Defaults to the minimum data value, shifted
                    down if necessary to make nice round values and
                    to remove ambiguous bin edges. For example, if
                    most of the data is integers we shift the bin
                    edges 0.5 down, so a `size` of 5 would have a
                    default `start` of -0.5, so it is clear that
                    0-4 are in the first bin, 5-9 in the second,
                    but continuous data gets a start of 0 and bins
                    [0,5), [5,10) etc. Dates behave similarly, and
                    `start` should be a date string. For category
                    data, `start` is based on the category serial
                    numbers, and defaults to -0.5. If multiple non-
                    overlaying histograms share a subplot, the
                    first explicit `start` is used exactly and all
                    others are shifted down (if necessary) to
                    differ from that one by an integer number of
                    bins.

        Returns
        -------
        plotly.graph_objs.histogram.YBins
        r  r   )r   r   r   r   r  v  s    <zHistogram.ybinsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHistogram.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zHistogram.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zHistogram.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zHistogram._parent_path_strc             C   s   dS )Na0          alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        autobinx
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobinx` is not needed.
            However, we accept `autobinx: true` or `false` and will
            update `xbins` accordingly before deleting `autobinx`
            from the trace.
        autobiny
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobiny` is not needed.
            However, we accept `autobiny: true` or `false` and will
            update `ybins` accordingly before deleting `autobiny`
            from the trace.
        bingroup
            Set a group of histogram traces which will have
            compatible bin settings. Note that traces on the same
            subplot and with the same "orientation" under `barmode`
            "stack", "relative" and "group" are forced into the
            same bingroup, Using `bingroup`, traces under `barmode`
            "overlay" and on different axes (of the same axis type)
            can have compatible bin settings. Note that histogram
            and histogram2d* trace can share the same `bingroup`
        cumulative
            :class:`plotly.graph_objects.histogram.Cumulative`
            instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        error_x
            :class:`plotly.graph_objects.histogram.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.histogram.ErrorY` instance
            or dict with compatible properties
        histfunc
            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.
        histnorm
            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).
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.histogram.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `binNumber` Anything contained in
            tag `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.histogram.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        nbinsx
            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.
        nbinsy
            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.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the bars. With "v" ("h"), the
            value of the each bar spans along the vertical
            (horizontal).
        selected
            :class:`plotly.graph_objects.histogram.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.histogram.Stream` instance
            or dict with compatible properties
        text
            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.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.histogram.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the sample data to be binned on the x axis.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbins
            :class:`plotly.graph_objects.histogram.XBins` instance
            or dict with compatible properties
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the sample data to be binned on the y axis.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybins
            :class:`plotly.graph_objects.histogram.YBins` instance
            or dict with compatible properties
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH     s     vzHistogram._prop_descriptionsNc4       8         s 
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|4
dd| _ddlm}5 |5 | jd< |5 | jd	< |5 | jd
< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5 | jd< |5  | jd< |5! | jd< |5" | jd< |5# | jd< |5$ | jd< |5% | jd< |5& | jd< |5' | jd < |5( | jd!< |5) | jd"< |5* | jd#< |5+ | jd$< |5, | jd%< |5- | jd&< |5. | jd'< |5/ | jd(< |50 | jd)< |51 | jd*< |52 | jd+< |53 | jd,< |54 | jd-< |55 | jd.< |56 | jd/< |57 | jd0< |58 | jd1< |59 | jd2< |5: | jd3< |5; | jd4< |5< | jd5< |5= | jd6< |5> | jd7< |5? | jd8< |5@ | jd9< |
dd}6|dk	rB|n|6| d< |
d	d}6|dk	rd|n|6| d	< |
d
d}6|dk	r|n|6| d
< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|	dk	r0|	n|6| d< |
dd}6|
dk	rR|
n|6| d< |
dd}6|dk	rt|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r@|n|6| d< |
dd}6|dk	rb|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r|n|6| d< |
dd}6|dk	r.|n|6| d< |
dd}6|dk	rP|n|6| d< |
d d}6|dk	rr|n|6| d < |
d!d}6|dk	r|n|6| d!< |
d"d}6|dk	r|n|6| d"< |
d#d}6|dk	r|n|6| d#< |
d$d}6|dk	r|n|6| d$< |
d%d}6|dk	r|n|6| d%< |
d&d}6| dk	r>| n|6| d&< |
d'd}6|!dk	r`|!n|6| d'< |
d(d}6|"dk	r|"n|6| d(< |
d)d}6|#dk	r|#n|6| d)< |
d*d}6|$dk	r|$n|6| d*< |
d+d}6|%dk	r|%n|6| d+< |
d,d}6|&dk	r
|&n|6| d,< |
d-d}6|'dk	r,|'n|6| d-< |
d.d}6|(dk	rN|(n|6| d.< |
d/d}6|)dk	rp|)n|6| d/< |
d0d}6|*dk	r|*n|6| d0< |
d1d}6|+dk	r|+n|6| d1< |
d2d}6|,dk	r|,n|6| d2< |
d3d}6|-dk	r|-n|6| d3< |
d4d}6|.dk		r|.n|6| d4< |
d5d}6|/dk		r<|/n|6| d5< |
d6d}6|0dk		r^|0n|6| d6< |
d7d}6|1dk		r|1n|6| d7< |
d8d}6|2dk		r|2n|6| d8< |
d9d}6|3dk		r|3n|6| d9< dd:lAmB}7 d| jCd;< |7d;ddd<| jd;< |
d;d | jDf t|f|4 d| _dS )=aQ2  
        Construct a new Histogram object
        
        The sample data from which statistics are computed is set in
        `x` for vertically spanning histograms and in `y` for
        horizontally spanning histograms. Binning options are set
        `xbins` and `ybins` respectively if no aggregation data is
        provided.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Histogram`
        alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        autobinx
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobinx` is not needed.
            However, we accept `autobinx: true` or `false` and will
            update `xbins` accordingly before deleting `autobinx`
            from the trace.
        autobiny
            Obsolete: since v1.42 each bin attribute is auto-
            determined separately and `autobiny` is not needed.
            However, we accept `autobiny: true` or `false` and will
            update `ybins` accordingly before deleting `autobiny`
            from the trace.
        bingroup
            Set a group of histogram traces which will have
            compatible bin settings. Note that traces on the same
            subplot and with the same "orientation" under `barmode`
            "stack", "relative" and "group" are forced into the
            same bingroup, Using `bingroup`, traces under `barmode`
            "overlay" and on different axes (of the same axis type)
            can have compatible bin settings. Note that histogram
            and histogram2d* trace can share the same `bingroup`
        cumulative
            :class:`plotly.graph_objects.histogram.Cumulative`
            instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        error_x
            :class:`plotly.graph_objects.histogram.ErrorX` instance
            or dict with compatible properties
        error_y
            :class:`plotly.graph_objects.histogram.ErrorY` instance
            or dict with compatible properties
        histfunc
            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.
        histnorm
            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).
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.histogram.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `binNumber` Anything contained in
            tag `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.histogram.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        nbinsx
            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.
        nbinsy
            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.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the bars. With "v" ("h"), the
            value of the each bar spans along the vertical
            (horizontal).
        selected
            :class:`plotly.graph_objects.histogram.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.histogram.Stream` instance
            or dict with compatible properties
        text
            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.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.histogram.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the sample data to be binned on the x axis.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xbins
            :class:`plotly.graph_objects.histogram.XBins` instance
            or dict with compatible properties
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the sample data to be binned on the y axis.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ybins
            :class:`plotly.graph_objects.histogram.YBins` instance
            or dict with compatible properties
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Histogram
        	histogramNzThe first argument to the plotly.graph_objs.Histogram 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Histogram`rJ   Fr   )r5  r   r
  r  r  r4  r   r   ry  rz  r  r  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r%   r'   r(   r   r*   r+   r,   r-   r3   r7   r8   r   r9   r<   r>   r  r  r?   r@   rB   r  r  rC   )rK   rD   )rL   rM   r   )ErN   r3  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r5  rZ   r[   r  r  r  ZCumulativeValidatorr`   ra   r|  r}  r  r   re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   rr   rs   rt   r!  r"  rv   rx   ry   r   r{   r|   r}   r~   r   r   r   r   r   r   r   r%  r  r   r   r   r'  r  r   r   rK   rE   r   )8r   r   r   r
  r  r  r4  r   r   ry  rz  r  r  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r%   r'   r(   r   r*   r+   r,   r-   r3   r7   r8   r   r9   r<   r>   r  r  r?   r@   rB   r  r  rC   r   Zv_histogramr   rK   )rQ   r   r   rO     sT     >


zHistogram.__init__)3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)<r   r   r   r   r   r   r
  r  r  r4  r   r   ry  rz  r  r  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r  r  r%   r'   r(   r   r*   r+   r,   r-   r3   r7   r8   r   r9   r<   r>   r  r  r?   r@   rB   r  r  rC   rD   rG   rH   rO   r   r   r   )rQ   r   r3    s6  ,KI5#r>> z                                                  r3  c            +       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/edd Z0edd Z1d fdd	Z2  Z3S )	Heatmapglc             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHeatmapgl.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmapgl.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   &  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.heatmapgl.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.heatmap
                    gl.colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.heatmapgl.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of heatmapgl.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.heatmapgl.colorbar
                    .Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    heatmapgl.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    heatmapgl.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.heatmapgl.ColorBar
        r   r   )r   r   r   r   r   ,  s     dzHeatmapgl.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    ,zHeatmapgl.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   E  s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   K  s    zHeatmapgl.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   b  s    zHeatmapgl.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   p  s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   v  s    zHeatmapgl.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    zHeatmapgl.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zHeatmapgl.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmapgl.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.heatmapgl.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.heatmapgl.Hoverlabel
        r   r   )r   r   r   r   r     s    3zHeatmapgl.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHeatmapgl.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmapgl.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   +  s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   1  s    zHeatmapgl.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   G  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   M  s    zHeatmapgl.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   [  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   a  s    zHeatmapgl.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   q  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   w  s    zHeatmapgl.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'     s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHeatmapgl.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHeatmapgl.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )al  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.heatmapgl.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.heatmapgl.Stream
        r,   r   )r   r   r   r   r,     s    zHeatmapgl.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )z
        Sets the text elements associated with each z value.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zHeatmapgl.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zHeatmapgl.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )z
        Transposes the z data.
    
        The 'transpose' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        	transposer   )r   r   r   r   r7    s    zHeatmapgl.transposec             C   s   || d< d S )Nr7  r   )r   r   r   r   r   r7    s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zHeatmapgl.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   #  s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   )  s    zHeatmapgl.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   D  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   J  s    zHeatmapgl.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   [  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   a  s    zHeatmapgl.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   o  s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   u  s    zHeatmapgl.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=     s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>     s    zHeatmapgl.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zHeatmapgl.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )a  
        If "array", the heatmap's x coordinates are given by "x" (the
        default behavior when `x` is provided). If "scaled", the
        heatmap's x coordinates are given by "x0" and "dx" (the default
        behavior when `x` is not provided).
    
        The 'xtype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        xtyper   )r   r   r   r   r8    s    zHeatmapgl.xtypec             C   s   || d< d S )Nr8  r   )r   r   r   r   r   r8    s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    zHeatmapgl.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA     s    zHeatmapgl.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB     s    zHeatmapgl.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC     s    zHeatmapgl.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC     s    c             C   s   | d S )a  
        If "array", the heatmap's y coordinates are given by "y" (the
        default behavior when `y` is provided) If "scaled", the
        heatmap's y coordinates are given by "y0" and "dy" (the default
        behavior when `y` is not provided)
    
        The 'ytype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        ytyper   )r   r   r   r   r9  %  s    zHeatmapgl.ytypec             C   s   || d< d S )Nr9  r   )r   r   r   r   r   r9  7  s    c             C   s   | d S )z
        Sets the z data.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   =  s    zHeatmapgl.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   K  s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  Q  s    zHeatmapgl.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  b  s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  h  s    zHeatmapgl.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  w  s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  }  s    zHeatmapgl.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHeatmapgl.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmapgl.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD     s    zHeatmapgl.typec             C   s   dS )NrF   r   )r   r   r   r   rG     s    zHeatmapgl._parent_path_strc             C   s   dS )Na "          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.heatmapgl.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.heatmapgl.Hoverlabel`
            instance or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.heatmapgl.Stream` instance
            or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        xtype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .
        ytype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH     s     7zHeatmapgl._prop_descriptionsNc,       0         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|,
dd| _ddlm}- |- | jd< |- | jd	< |- | jd
< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |-  | jd< |-! | jd< |-" | jd< |-# | jd< |-$ | jd< |-% | jd< |-& | jd< |-' | jd < |-( | jd!< |-) | jd"< |-* | jd#< |-+ | jd$< |-, | jd%< |-- | jd&< |-. | jd'< |-/ | jd(< |-0 | jd)< |-1 | jd*< |-2 | jd+< |-3 | jd,< |-4 | jd-< |-5 | jd.< |-6 | jd/< |-7 | jd0< |-8 | jd1< |
dd}.|dk	r|n|.| d< |
d	d}.|dk	r|n|.| d	< |
d
d}.|dk	r|n|.| d
< |
dd}.|dk	r8|n|.| d< |
dd}.|dk	rZ|n|.| d< |
dd}.|dk	r||n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|	dk	r|	n|.| d< |
dd}.|
dk	r|
n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r&|n|.| d< |
dd}.|dk	rH|n|.| d< |
dd}.|dk	rj|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r6|n|.| d< |
dd}.|dk	rX|n|.| d< |
dd}.|dk	rz|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
d d}.|dk	r|n|.| d < |
d!d}.|dk	r$|n|.| d!< |
d"d}.|dk	rF|n|.| d"< |
d#d}.|dk	rh|n|.| d#< |
d$d}.|dk	r|n|.| d$< |
d%d}.|dk	r|n|.| d%< |
d&d}.| dk	r| n|.| d&< |
d'd}.|!dk	r|!n|.| d'< |
d(d}.|"dk	r|"n|.| d(< |
d)d}.|#dk	r4|#n|.| d)< |
d*d}.|$dk	rV|$n|.| d*< |
d+d}.|%dk	rx|%n|.| d+< |
d,d}.|&dk	r|&n|.| d,< |
d-d}.|'dk	r|'n|.| d-< |
d.d}.|(dk	r|(n|.| d.< |
d/d}.|)dk	r |)n|.| d/< |
d0d}.|*dk	r"|*n|.| d0< |
d1d}.|+dk	rD|+n|.| d1< dd2l9m:}/ d| j;d3< |/d3ddd4| jd3< |
d3d | j<f t|f|, d| _dS )5am#  
        Construct a new Heatmapgl object
        
        WebGL version of the heatmap trace type.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Heatmapgl`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.heatmapgl.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.heatmapgl.Hoverlabel`
            instance or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.heatmapgl.Stream` instance
            or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        xtype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .
        ytype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Heatmapgl
        	heatmapglNzThe first argument to the plotly.graph_objs.Heatmapgl 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Heatmapgl`rJ   Fr   )r:  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r?   r8  r@   rA   rB   rC   r9  r   r  r  r  r  r   )rK   rD   )rL   rM   r   )=rN   r6  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r:  r   r[   r   r   r   r`   ra   rc   rd   re   rf   rg   rl   rm   rr   rs   rt   rx   r   r   r}   r~   r   TransposeValidatorr   r   r   r   r   r   r   XtypeValidatorr   r   r   r   YtypeValidatorr   r(  r  r*  r  r   r   rK   rE   r   )0r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r?   r8  r@   rA   rB   rC   r9  r   r  r  r  r  r   r   Zv_heatmapglr   rK   )rQ   r   r   rO     s"    r


zHeatmapgl.__init__)+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)4r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r?   r8  r@   rA   rB   rC   r9  r   r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r6    s   f.5 ;                                          r6  c            9       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=edd Z>edd Z?d fdd	Z@  ZAS )Heatmapc             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   *  s    zHeatmap.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   =  s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   C  s    zHeatmap.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X  s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.heatmap.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.heatmap
                    .colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.heatmap.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of heatmap.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.heatmap.colorbar.T
                    itle` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    heatmap.colorbar.title.font instead. Sets this
                    color bar's title font. Note that the title's
                    font used to be set by the now deprecated
                    `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    heatmap.colorbar.title.side instead. Determines
                    the location of color bar's title with respect
                    to the color bar. Note that the title's
                    location used to be set by the now deprecated
                    `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.heatmap.ColorBar
        r   r   )r   r   r   r   r   ^  s     dzHeatmap.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   C  s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   I  s    ,zHeatmap.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   w  s    c             C   s   | d S )a  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the `z` data are filled in. It is defaulted to true if `z`
        is a one dimensional array and `zsmooth` is not false;
        otherwise it is defaulted to false.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  }  s    zHeatmap.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHeatmap.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    z
Heatmap.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r     s    z
Heatmap.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zHeatmap.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.heatmap.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.heatmap.Hoverlabel
        r   r   )r   r   r   r   r     s    3zHeatmap.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J  s    c             C   s   | d S )a!  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the `z` data have hover labels associated with them.
    
        The 'hoverongaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        hoverongapsr   )r   r   r   r   r?  P  s    zHeatmap.hoverongapsc             C   s   || d< d S )Nr?  r   )r   r   r   r   r   r?  _  s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   e  s    !zHeatmap.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Same as `text`.
    
        The 'hovertext' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHeatmap.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zHeatmap.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!     s    zHeatmap.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   !  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   '  s    zHeatmap.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   5  s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   ;  s    zHeatmap.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   K  s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   Q  s    zHeatmap.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   _  s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   e  s    zHeatmap.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   u  s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   {  s    zHeatmap.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+     s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r     s    zHeatmap.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )ah  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.heatmap.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.heatmap.Stream
        r,   r   )r   r   r   r   r,     s    zHeatmap.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,     s    c             C   s   | d S )z
        Sets the text elements associated with each z value.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-     s    zHeatmap.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3     s    zHeatmap.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3     s    c             C   s   | d S )z
        Transposes the z data.
    
        The 'transpose' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r7  r   )r   r   r   r   r7    s    zHeatmap.transposec             C   s   || d< d S )Nr7  r   )r   r   r   r   r   r7    s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7     s    zHeatmap.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7     s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8     s    zHeatmap.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   3  s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   9  s    zHeatmap.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   J  s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   P  s    z	Heatmap.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   ^  s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   d  s    z
Heatmap.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=   s  s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   y  s    zHeatmap.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>     s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r    s    zHeatmap.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the horizontal gap (in pixels) between bricks.
    
        The 'xgap' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r,  r   )r   r   r   r   r,    s    zHeatmap.xgapc             C   s   || d< d S )Nr,  r   )r   r   r   r   r   r,    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?     s    zHeatmap.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?     s    c             C   s   | d S )a  
        If "array", the heatmap's x coordinates are given by "x" (the
        default behavior when `x` is provided). If "scaled", the
        heatmap's x coordinates are given by "x0" and "dx" (the default
        behavior when `x` is not provided).
    
        The 'xtype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        r8  r   )r   r   r   r   r8    s    zHeatmap.xtypec             C   s   || d< d S )Nr8  r   )r   r   r   r   r   r8    s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@     s    z	Heatmap.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@     s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA     s    z
Heatmap.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA     s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB     s    zHeatmap.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   &  s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  ,  s    zHeatmap.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  >  s    c             C   s   | d S )z
        Sets the vertical gap (in pixels) between bricks.
    
        The 'ygap' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r-  r   )r   r   r   r   r-  D  s    zHeatmap.ygapc             C   s   || d< d S )Nr-  r   )r   r   r   r   r   r-  R  s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   X  s    zHeatmap.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   f  s    c             C   s   | d S )a  
        If "array", the heatmap's y coordinates are given by "y" (the
        default behavior when `y` is provided) If "scaled", the
        heatmap's y coordinates are given by "y0" and "dy" (the default
        behavior when `y` is not provided)
    
        The 'ytype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        r9  r   )r   r   r   r   r9  l  s    zHeatmap.ytypec             C   s   || d< d S )Nr9  r   )r   r   r   r   r   r9  ~  s    c             C   s   | d S )z
        Sets the z data.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    z	Heatmap.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zHeatmap.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets the hover text formatting rule using d3 formatting mini-
        languages which are very similar to those in Python. See:
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#d3_format
    
        The 'zhoverformat' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r    s    zHeatmap.zhoverformatc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHeatmap.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHeatmap.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zHeatmap.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Picks a smoothing algorithm use to smooth `z` data.
    
        The 'zsmooth' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['fast', 'best', False]

        Returns
        -------
        Any
        r.  r   )r   r   r   r   r.    s    zHeatmap.zsmoothc             C   s   || d< d S )Nr.  r   )r   r   r   r   r   r.    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zHeatmap.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   *  s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   0  s    zHeatmap.typec             C   s   dS )NrF   r   )r   r   r   r   rG   6  s    zHeatmap._parent_path_strc             C   s   dS )Na.          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.heatmap.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data are filled in. It is defaulted
            to true if `z` is a one dimensional array and `zsmooth`
            is not false; otherwise it is defaulted to false.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.heatmap.Hoverlabel`
            instance or dict with compatible properties
        hoverongaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data have hover labels associated
            with them.
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.heatmap.Stream` instance
            or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xgap
            Sets the horizontal gap (in pixels) between bricks.
        xsrc
            Sets the source reference on plot.ly for  x .
        xtype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ygap
            Sets the vertical gap (in pixels) between bricks.
        ysrc
            Sets the source reference on plot.ly for  y .
        ytype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsmooth
            Picks a smoothing algorithm use to smooth `z` data.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   <  s     tzHeatmap._prop_descriptionsNc:       >         s@  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|:
dd| _ddlm}; |; | jd< |; | jd	< |; | jd
< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |; | jd< |;  | jd< |;! | jd< |;" | jd< |;# | jd< |;$ | jd< |;% | jd< |;& | jd< |;' | jd < |;( | jd!< |;) | jd"< |;* | jd#< |;+ | jd$< |;, | jd%< |;- | jd&< |;. | jd'< |;/ | jd(< |;0 | jd)< |;1 | jd*< |;2 | jd+< |;3 | jd,< |;4 | jd-< |;5 | jd.< |;6 | jd/< |;7 | jd0< |;8 | jd1< |;9 | jd2< |;: | jd3< |;; | jd4< |;< | jd5< |;= | jd6< |;> | jd7< |;? | jd8< |;@ | jd9< |;A | jd:< |;B | jd;< |;C | jd<< |;D | jd=< |;E | jd>< |;F | jd?< |
dd}<|dk	r|n|<| d< |
d	d}<|dk	r|n|<| d	< |
d
d}<|dk	r|n|<| d
< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r@|n|<| d< |
dd}<|dk	rb|n|<| d< |
dd}<|	dk	r|	n|<| d< |
dd}<|
dk	r|
n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r.|n|<| d< |
dd}<|dk	rP|n|<| d< |
dd}<|dk	rr|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r>|n|<| d< |
dd}<|dk	r`|n|<| d< |
dd}<|dk	r|n|<| d< |
dd}<|dk	r|n|<| d< |
d d}<|dk	r|n|<| d < |
d!d}<|dk	r|n|<| d!< |
d"d}<|dk	r
|n|<| d"< |
d#d}<|dk	r,|n|<| d#< |
d$d}<|dk	rN|n|<| d$< |
d%d}<|dk	rp|n|<| d%< |
d&d}<| dk	r| n|<| d&< |
d'd}<|!dk	r|!n|<| d'< |
d(d}<|"dk	r|"n|<| d(< |
d)d}<|#dk	r|#n|<| d)< |
d*d}<|$dk	r|$n|<| d*< |
d+d}<|%dk	r<|%n|<| d+< |
d,d}<|&dk	r^|&n|<| d,< |
d-d}<|'dk	r|'n|<| d-< |
d.d}<|(dk	r|(n|<| d.< |
d/d}<|)dk	r|)n|<| d/< |
d0d}<|*dk	r|*n|<| d0< |
d1d}<|+dk		r|+n|<| d1< |
d2d}<|,dk		r*|,n|<| d2< |
d3d}<|-dk		rL|-n|<| d3< |
d4d}<|.dk		rn|.n|<| d4< |
d5d}<|/dk		r|/n|<| d5< |
d6d}<|0dk		r|0n|<| d6< |
d7d}<|1dk		r|1n|<| d7< |
d8d}<|2dk		r|2n|<| d8< |
d9d}<|3dk	
r|3n|<| d9< |
d:d}<|4dk	
r:|4n|<| d:< |
d;d}<|5dk	
r\|5n|<| d;< |
d<d}<|6dk	
r~|6n|<| d<< |
d=d}<|7dk	
r|7n|<| d=< |
d>d}<|8dk	
r|8n|<| d>< |
d?d}<|9dk	
r|9n|<| d?< dd@lGmH}= d| jIdA< |=dAdddB| jdA< |
dAd | jJf t|f|: d| _dS )Ca3  
        Construct a new Heatmap object
        
        The data that describes the heatmap value-to-color mapping is
        set in `z`. Data in `z` can either be a 2D list of values
        (ragged or not) or a 1D array of values. In the case where `z`
        is a 2D list, say that `z` has N rows and M columns. Then, by
        default, the resulting heatmap will have N partitions along the
        y axis and M partitions along the x axis. In other words, the
        i-th row/ j-th column cell in `z` is mapped to the i-th
        partition of the y axis (starting from the bottom of the plot)
        and the j-th partition of the x-axis (starting from the left of
        the plot). This behavior can be flipped by using `transpose`.
        Moreover, `x` (`y`) can be provided with M or M+1 (N or N+1)
        elements. If M (N), then the coordinates correspond to the
        center of the heatmap cells and the cells have equal width. If
        M+1 (N+1), then the coordinates correspond to the edges of the
        heatmap cells. In the case where `z` is a 1D list, the x and y
        coordinates must be provided in `x` and `y` respectively to
        form data triplets.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Heatmap`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.heatmap.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data are filled in. It is defaulted
            to true if `z` is a one dimensional array and `zsmooth`
            is not false; otherwise it is defaulted to false.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.heatmap.Hoverlabel`
            instance or dict with compatible properties
        hoverongaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data have hover labels associated
            with them.
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.heatmap.Stream` instance
            or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xgap
            Sets the horizontal gap (in pixels) between bricks.
        xsrc
            Sets the source reference on plot.ly for  x .
        xtype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ygap
            Sets the vertical gap (in pixels) between bricks.
        ysrc
            Sets the source reference on plot.ly for  y .
        ytype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsmooth
            Picks a smoothing algorithm use to smooth `z` data.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Heatmap
        heatmapNzThe first argument to the plotly.graph_objs.Heatmap 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Heatmap`rJ   Fr   )r@  r   r   r   r   r  r   r   r   r   r   r   r   r?  r   r   r   r   r   r   r   r!   r"   r#   r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r  r,  r?   r8  r@   rA   rB   r  r-  rC   r9  r   r  r  r  r  r  r.  r   )rK   rD   )rL   rM   r   )KrN   r>  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r@  r   r[   r   r   r   r  r`   ra   rc   rd   re   rf   rg   HoverongapsValidatorrh   ri   rj   rk   rl   rm   rq   rr   rs   rt   rx   r   r|   r   r}   r~   r   r;  r   r   r   r   r   r   r  r0  r   r<  r   r   r   r  r1  r   r=  r   r(  r)  r  r*  r  r2  r   r   rK   rE   r   )>r   r   r   r   r   r   r  r   r   r   r   r   r   r   r?  r   r   r   r   r   r   r   r!   r"   r#   r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r  r,  r?   r8  r@   rA   rB   r  r-  rC   r9  r   r  r  r  r  r  r.  r   r   Z	v_heatmapr   rK   )rQ   r   r   rO   1  sx     N


zHeatmap.__init__)9NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Br   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r?  r   r   r   r   r   r   r   r!   r"   r#   r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r  r,  r?   r8  r@   rA   rB   r  r-  rC   r9  r   r  r  r  r  r  r.  r   rD   rG   rH   rO   r   r   r   )rQ   r   r>  &  s\   f.5# x                                                        r>  c            +       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/edd Z0edd Z1d fdd	Z2  Z3S )
Funnelareac             C   s   | d S )z
        Sets the ratio between height and width
    
        The 'aspectratio' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        aspectratior   )r   r   r   r   rC  b  s    zFunnelarea.aspectratioc             C   s   || d< d S )NrC  r   )r   r   r   r   r   rC  p  s    c             C   s   | d S )z
        Sets the ratio between bottom length and maximum top length.
    
        The 'baseratio' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        	baseratior   )r   r   r   r   rD  v  s    zFunnelarea.baseratioc             C   s   || d< d S )NrD  r   )r   r   r   r   r   rD    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r     s    zFunnelarea.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zFunnelarea.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )z
        Sets the label step. See `label0` for more info.
    
        The 'dlabel' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r    s    zFunnelarea.dlabelc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        The 'domain' property is an instance of Domain
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Domain`
          - A dict of string/value properties that will be passed
            to the Domain constructor
    
            Supported dict properties:
                
                column
                    If there is a layout grid, use the domain for
                    this column in the grid for this funnelarea
                    trace .
                row
                    If there is a layout grid, use the domain for
                    this row in the grid for this funnelarea trace
                    .
                x
                    Sets the horizontal domain of this funnelarea
                    trace (in plot fraction).
                y
                    Sets the vertical domain of this funnelarea
                    trace (in plot fraction).

        Returns
        -------
        plotly.graph_objs.funnelarea.Domain
        r   r   )r   r   r   r   r     s    zFunnelarea.domainc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )au  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'percent', 'name'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r     s    zFunnelarea.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   	 s    zFunnelarea.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.funnelarea.Hoverlabel
        r   r   )r   r   r   r   r    s    3zFunnelarea.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   R s    c             C   s   | d S )a`  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `label`, `color`, `value`, `text` and `percent`.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   X s    "zFunnelarea.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   | s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnelarea.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )aK  
        Sets hover text elements associated with each sector. If a
        single string, the same string appears for all data points. If
        an array of string, the items are mapped in order of this
        trace's sectors. To be seen, trace `hoverinfo` must contain a
        "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r    s    zFunnelarea.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnelarea.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zFunnelarea.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnelarea.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a|  
        Sets the font used for `textinfo` lying inside the sector.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.funnelarea.Insidetextfont
        r   r   )r   r   r   r   r    s    /zFunnelarea.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a=  
        Alternate to `labels`. Builds a numeric set of labels. Use with
        `dlabel` where `label0` is the starting label and `dlabel` the
        step.
    
        The 'label0' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  % s    zFunnelarea.label0c             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  5 s    c             C   s   | d S )a  
        Sets the sector labels. If `labels` entries are duplicated, we
        sum associated `values` or simply count occurrences if `values`
        is not provided. For other array attributes (including color)
        we use the first non-empty entry among all occurrences of the
        label.
    
        The 'labels' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ; s    zFunnelarea.labelsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   M s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  labels .
    
        The 'labelssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   S s    zFunnelarea.labelssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   g s    zFunnelarea.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   x s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                colors
                    Sets the color of each sector. If not
                    specified, the default trace color set is used
                    to pick the sector colors.
                colorssrc
                    Sets the source reference on plot.ly for
                    colors .
                line
                    :class:`plotly.graph_objects.funnelarea.marker.
                    Line` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.funnelarea.Marker
        r   r   )r   r   r   r   r   ~ s    zFunnelarea.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!    s    zFunnelarea.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"    s    zFunnelarea.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"    s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#    s    zFunnelarea.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#    s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'    s    zFunnelarea.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'    s    c             C   s   | d S )a  
        If there are multiple funnelareas that should be sized
        according to their totals, link them by providing a non-empty
        group id here shared by every trace in the same group.
    
        The 'scalegroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnelarea.scalegroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+    s    zFunnelarea.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   ! s    c             C   s   | d S )an  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.funnelarea.Stream
        r,   r   )r   r   r   r   r,   ' s    zFunnelarea.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   B s    c             C   s   | d S )a  
        Sets text elements associated with each sector. If trace
        `textinfo` contains a "text" flag, these elements will be seen
        on the chart. If trace `hoverinfo` contains a "text" flag and
        "hovertext" is not set, these elements will be seen in the
        hover labels.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-   H s    zFunnelarea.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   Z s    c             C   s   | d S )aF  
        Sets the font used for `textinfo`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.funnelarea.Textfont
        r/   r   )r   r   r   r   r/   ` s    /zFunnelarea.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/    s    c             C   s   | d S )a  
        Determines which trace information appear on the graph.
    
        The 'textinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'value', 'percent'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        r0   r   )r   r   r   r   r0    s    zFunnelarea.textinfoc             C   s   || d< d S )Nr0   r   )r   r   r   r   r   r0    s    c             C   s   | d S )aj  
        Specifies the location of the `textinfo`.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'none']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1    s    zFunnelarea.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2    s    zFunnelarea.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3    s    zFunnelarea.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3    s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `label`, `color`, `value`, `text` and
        `percent`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4    s    zFunnelarea.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   
 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5    s    zFunnelarea.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5    s    c             C   s   | d S )a  
        The 'title' property is an instance of Title
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnelarea.Title`
          - A dict of string/value properties that will be passed
            to the Title constructor
    
            Supported dict properties:
                
                font
                    Sets the font used for `title`. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                position
                    Specifies the location of the `title`. Note
                    that the title's position used to be set by the
                    now deprecated `titleposition` attribute.
                text
                    Sets the title of the chart. If it is empty, no
                    title is displayed. 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.

        Returns
        -------
        plotly.graph_objs.funnelarea.Title
        r  r   )r   r   r   r   r  $ s    zFunnelarea.titlec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  D s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   J s    zFunnelarea.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   Z s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   ` s    zFunnelarea.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   { s    c             C   s   | d S )a  
        Sets the values of the sectors. If omitted, we count
        occurrences of each label.
    
        The 'values' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zFunnelarea.valuesc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  values .
    
        The 'valuessrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnelarea.valuessrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9    s    zFunnelarea.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9    s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD    s    zFunnelarea.typec             C   s   dS )NrF   r   )r   r   r   r   rG    s    zFunnelarea._parent_path_strc             C   s   dS )Na%          aspectratio
            Sets the ratio between height and width
        baseratio
            Sets the ratio between bottom length and maximum top
            length.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dlabel
            Sets the label step. See `label0` for more info.
        domain
            :class:`plotly.graph_objects.funnelarea.Domain`
            instance or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.funnelarea.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `label`, `color`, `value`, `text`
            and `percent`. Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        label0
            Alternate to `labels`. Builds a numeric set of labels.
            Use with `dlabel` where `label0` is the starting label
            and `dlabel` the step.
        labels
            Sets the sector labels. If `labels` entries are
            duplicated, we sum associated `values` or simply count
            occurrences if `values` is not provided. For other
            array attributes (including color) we use the first
            non-empty entry among all occurrences of the label.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.funnelarea.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        scalegroup
            If there are multiple funnelareas that should be sized
            according to their totals, link them by providing a
            non-empty group id here shared by every trace in the
            same group.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.funnelarea.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textposition
            Specifies the location of the `textinfo`.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `label`,
            `color`, `value`, `text` and `percent`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        title
            :class:`plotly.graph_objects.funnelarea.Title` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values of the sectors. If omitted, we count
            occurrences of each label.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH    s     EzFunnelarea._prop_descriptionsNc,       0         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|,
dd| _ddlm}- |- | jd< |- | jd	< |- | jd
< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |- | jd< |-  | jd< |-! | jd< |-" | jd< |-# | jd< |-$ | jd< |-% | jd< |-& | jd< |-' | jd < |-( | jd!< |-) | jd"< |-* | jd#< |-+ | jd$< |-, | jd%< |-- | jd&< |-. | jd'< |-/ | jd(< |-0 | jd)< |-1 | jd*< |-2 | jd+< |-3 | jd,< |-4 | jd-< |-5 | jd.< |-6 | jd/< |-7 | jd0< |-8 | jd1< |
dd}.|dk	r|n|.| d< |
d	d}.|dk	r|n|.| d	< |
d
d}.|dk	r|n|.| d
< |
dd}.|dk	r8|n|.| d< |
dd}.|dk	rZ|n|.| d< |
dd}.|dk	r||n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|	dk	r|	n|.| d< |
dd}.|
dk	r|
n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r&|n|.| d< |
dd}.|dk	rH|n|.| d< |
dd}.|dk	rj|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r6|n|.| d< |
dd}.|dk	rX|n|.| d< |
dd}.|dk	rz|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
dd}.|dk	r|n|.| d< |
d d}.|dk	r|n|.| d < |
d!d}.|dk	r$|n|.| d!< |
d"d}.|dk	rF|n|.| d"< |
d#d}.|dk	rh|n|.| d#< |
d$d}.|dk	r|n|.| d$< |
d%d}.|dk	r|n|.| d%< |
d&d}.| dk	r| n|.| d&< |
d'd}.|!dk	r|!n|.| d'< |
d(d}.|"dk	r|"n|.| d(< |
d)d}.|#dk	r4|#n|.| d)< |
d*d}.|$dk	rV|$n|.| d*< |
d+d}.|%dk	rx|%n|.| d+< |
d,d}.|&dk	r|&n|.| d,< |
d-d}.|'dk	r|'n|.| d-< |
d.d}.|(dk	r|(n|.| d.< |
d/d}.|)dk	r |)n|.| d/< |
d0d}.|*dk	r"|*n|.| d0< |
d1d}.|+dk	rD|+n|.| d1< dd2l9m:}/ d| j;d3< |/d3ddd4| jd3< |
d3d | j<f t|f|, d| _dS )5a(  
        Construct a new Funnelarea object
        
        Visualize stages in a process using area-encoded trapezoids.
        This trace can be used to show data in a part-to-whole
        representation similar to a "pie" trace, wherein each item
        appears in a single stage. See also the "funnel" trace type for
        a different approach to visualizing funnel data.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Funnelarea`
        aspectratio
            Sets the ratio between height and width
        baseratio
            Sets the ratio between bottom length and maximum top
            length.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dlabel
            Sets the label step. See `label0` for more info.
        domain
            :class:`plotly.graph_objects.funnelarea.Domain`
            instance or dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.funnelarea.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `label`, `color`, `value`, `text`
            and `percent`. Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each sector.
            If a single string, the same string appears for all
            data points. If an array of string, the items are
            mapped in order of this trace's sectors. To be seen,
            trace `hoverinfo` must contain a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextfont
            Sets the font used for `textinfo` lying inside the
            sector.
        label0
            Alternate to `labels`. Builds a numeric set of labels.
            Use with `dlabel` where `label0` is the starting label
            and `dlabel` the step.
        labels
            Sets the sector labels. If `labels` entries are
            duplicated, we sum associated `values` or simply count
            occurrences if `values` is not provided. For other
            array attributes (including color) we use the first
            non-empty entry among all occurrences of the label.
        labelssrc
            Sets the source reference on plot.ly for  labels .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.funnelarea.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        scalegroup
            If there are multiple funnelareas that should be sized
            according to their totals, link them by providing a
            non-empty group id here shared by every trace in the
            same group.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.funnelarea.Stream`
            instance or dict with compatible properties
        text
            Sets text elements associated with each sector. If
            trace `textinfo` contains a "text" flag, these elements
            will be seen on the chart. If trace `hoverinfo`
            contains a "text" flag and "hovertext" is not set,
            these elements will be seen in the hover labels.
        textfont
            Sets the font used for `textinfo`.
        textinfo
            Determines which trace information appear on the graph.
        textposition
            Specifies the location of the `textinfo`.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `label`,
            `color`, `value`, `text` and `percent`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        title
            :class:`plotly.graph_objects.funnelarea.Title` instance
            or dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        values
            Sets the values of the sectors. If omitted, we count
            occurrences of each label.
        valuessrc
            Sets the source reference on plot.ly for  values .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Funnelarea
        
funnelareaNzThe first argument to the plotly.graph_objs.Funnelarea 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Funnelarea`rJ   Fr   )rE  rC  rD  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r!   r"   r#   r'   r   r+   r,   r-   r/   r0   r1   r2   r3   r4   r5   r  r7   r8   r   r   r9   )rK   rD   )rL   rM   r   )=rN   rB  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rE  ZAspectratioValidatorr[   ZBaseratioValidatorr`   ra   r  r  re   rf   rg   rh   ri   rj   rk   rl   rm   rp   r  r  r  rq   r   rr   rs   rt   rx   r   r|   r}   r~   r   r   r   r   r   r   r   r  r   r   r  r	  r   r   rK   rE   r   )0r   r   rC  rD  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r!   r"   r#   r'   r   r+   r,   r-   r/   r0   r1   r2   r3   r4   r5   r  r7   r8   r   r   r9   r   Zv_funnelarear   rK   )rQ   r   r   rO    s$     


zFunnelarea.__init__)+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)4r   r   r   r   rC  r   rD  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r!   r"   r#   r'   r   r+   r,   r-   r/   r0   r1   r2   r3   r4   r5   r  r7   r8   r   r   r9   rD   rG   rH   rO   r   r   r   )rQ   r   rB  ^  s   5$11  I                                          rB  c            6       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:edd Z;edd Z<d fdd	Z=  Z>S )Funnelc             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same alignmentgroup. This controls whether bars
        compute their positional range dependently or independently.
    
        The 'alignmentgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Q s    zFunnel.alignmentgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   b s    c             C   s   | d S )a}  
        Determines whether the text nodes are clipped about the subplot
        axes. To show the text nodes above axis lines and tick labels,
        make sure to set `xaxis.layer` and `yaxis.layer` to *below
        traces*.
    
        The 'cliponaxis' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
   r   )r   r   r   r   r
   h s    zFunnel.cliponaxisc             C   s   || d< d S )Nr
   r   )r   r   r   r   r   r
   y s    c             C   s   | d S )a  
        The 'connector' property is an instance of Connector
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Connector`
          - A dict of string/value properties that will be passed
            to the Connector constructor
    
            Supported dict properties:
                
                fillcolor
                    Sets the fill color.
                line
                    :class:`plotly.graph_objects.funnel.connector.L
                    ine` instance or dict with compatible
                    properties
                visible
                    Determines if connector regions and lines are
                    drawn.

        Returns
        -------
        plotly.graph_objs.funnel.Connector
        r   r   )r   r   r   r   r    s    zFunnel.connectorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a_  
        Constrain the size of text inside or outside a bar to be no
        larger than the bar itself.
    
        The 'constraintext' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'both', 'none']

        Returns
        -------
        Any
        r   r   )r   r   r   r   r    s    zFunnel.constraintextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zFunnel.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnel.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r    s    z	Funnel.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r    s    z	Funnel.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['name', 'x', 'y', 'text', 'percent initial', 'percent previous', 'percent total'] joined with '+' characters
            (e.g. 'name+x')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   	 s    zFunnel.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   # s    zFunnel.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1 s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.funnel.Hoverlabel
        r   r   )r   r   r   r   r   7 s    3zFunnel.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l s    c             C   s   | d S )ag  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `percentInitial`, `percentPrevious` and
        `percentTotal`. Anything contained in tag `<extra>` is
        displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   r s    "zFunnel.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnel.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r    s    zFunnel.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnel.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    z
Funnel.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zFunnel.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	 s    c             C   s   | d S )a[  
        Determines if texts are kept at center or start/end points in
        `textposition` "inside" mode.
    
        The 'insidetextanchor' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['end', 'middle', 'start']

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   	 s    zFunnel.insidetextanchorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	 s    c             C   s   | d S )am  
        Sets the font used for `text` lying inside the bar.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.funnel.Insidetextfont
        r   r   )r   r   r   r   r   	 s    /zFunnel.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O	 s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   U	 s    zFunnel.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   f	 s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.funnel.marker.Colo
                    rBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.funnel.marker.Line
                    ` instance or dict with compatible properties
                opacity
                    Sets the opacity of the bars.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.

        Returns
        -------
        plotly.graph_objs.funnel.Marker
        r   r   )r   r   r   r   r   l	 s    ozFunnel.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   	 s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   	 s    zFunnel.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   	 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   	 s    zFunnel.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   
 s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   
 s    zFunnel.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   #
 s    c             C   s   | d S )a`  
        Shifts the position where the bar is drawn (in position axis
        units). In "group" barmode, traces that set "offset" will be
        excluded and drawn in "overlay" mode instead.
    
        The 'offset' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r$   r   )r   r   r   r   r$   )
 s    zFunnel.offsetc             C   s   || d< d S )Nr$   r   )r   r   r   r   r   r$   9
 s    c             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same offsetgroup where bars of the same position
        coordinate will line up.
    
        The 'offsetgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r%   r   )r   r   r   r   r%   ?
 s    zFunnel.offsetgroupc             C   s   || d< d S )Nr%   r   )r   r   r   r   r   r%   P
 s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   V
 s    zFunnel.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   d
 s    c             C   s   | d S )ah  
        Sets the orientation of the funnels. With "v" ("h"), the value
        of the each bar spans along the vertical (horizontal). By
        default funnels are tend to be oriented horizontally; unless
        only "y" array is presented or orientation is set to "v". Also
        regarding graphs including only 'horizontal' funnels,
        "autorange" on the "y-axis" are set to "reversed".
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(   j
 s    zFunnel.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(   ~
 s    c             C   s   | d S )as  
        Sets the font used for `text` lying outside the bar.
    
        The 'outsidetextfont' property is an instance of Outsidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Outsidetextfont`
          - A dict of string/value properties that will be passed
            to the Outsidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.funnel.Outsidetextfont
        r)   r   )r   r   r   r   r)   
 s    /zFunnel.outsidetextfontc             C   s   || d< d S )Nr)   r   )r   r   r   r   r   r)   
 s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   
 s    zFunnel.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   
 s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   
 s    zFunnel.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   
 s    c             C   s   | d S )af  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.funnel.Stream
        r,   r   )r   r   r   r   r,   
 s    zFunnel.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,    s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   	 s    zFunnel.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-    s    c             C   s   | d S )a*  
        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.
    
        The 'textangle' property is a angle (in degrees) that may be
        specified as a number between -180 and 180. Numeric values outside this
        range are converted to the equivalent value
        (e.g. 270 is converted to -90).

        Returns
        -------
        int|float
        r.   r   )r   r   r   r   r.   $ s    zFunnel.textanglec             C   s   || d< d S )Nr.   r   )r   r   r   r   r   r.   7 s    c             C   s   | d S )a:  
        Sets the font used for `text`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.funnel.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.funnel.Textfont
        r/   r   )r   r   r   r   r/   = s    /zFunnel.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   n s    c             C   s   | d S )a2  
        Determines which trace information appear on the graph. In the
        case of having multiple funnels, percentages & totals are
        computed separately (per trace).
    
        The 'textinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['label', 'text', 'percent initial', 'percent previous', 'percent total', 'value'] joined with '+' characters
            (e.g. 'label+text')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        r0   r   )r   r   r   r   r0   t s    zFunnel.textinfoc             C   s   || d< d S )Nr0   r   )r   r   r   r   r   r0    s    c             C   s   | d S )a'  
        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.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'auto', 'none']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1    s    zFunnel.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2    s    zFunnel.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3    s    zFunnel.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3    s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `percentInitial`, `percentPrevious`,
        `percentTotal`, `label` and `value`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4    s    zFunnel.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5    s    zFunnel.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5    s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   	 s    z
Funnel.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7    s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8    s    zFunnel.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   : s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   @ s    zFunnel.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   Q s    c             C   s   | d S )z
        Sets the bar width (in position axis units).
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r:   r   )r   r   r   r   r:   W s    zFunnel.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:   e s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   k s    zFunnel.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   y s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=    s    z	Funnel.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=    s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>    s    zFunnel.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?    s    zFunnel.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?    s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@    s    zFunnel.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@    s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA    s    z	Funnel.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA    s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB    s    zFunnel.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC    s    zFunnel.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC    s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD    s    zFunnel.typec             C   s   dS )NrF   r   )r   r   r   r   rG    s    zFunnel._parent_path_strc             C   s   dS )Na!2          alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        cliponaxis
            Determines whether the text nodes are clipped about the
            subplot axes. To show the text nodes above axis lines
            and tick labels, make sure to set `xaxis.layer` and
            `yaxis.layer` to *below traces*.
        connector
            :class:`plotly.graph_objects.funnel.Connector` instance
            or dict with compatible properties
        constraintext
            Constrain the size of text inside or outside a bar to
            be no larger than the bar itself.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.funnel.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `percentInitial`,
            `percentPrevious` and `percentTotal`. Anything
            contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextanchor
            Determines if texts are kept at center or start/end
            points in `textposition` "inside" mode.
        insidetextfont
            Sets the font used for `text` lying inside the bar.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.funnel.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the position where the bar is drawn (in position
            axis units). In "group" barmode, traces that set
            "offset" will be excluded and drawn in "overlay" mode
            instead.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the funnels. With "v" ("h"),
            the value of the each bar spans along the vertical
            (horizontal). By default funnels are tend to be
            oriented horizontally; unless only "y" array is
            presented or orientation is set to "v". Also regarding
            graphs including only 'horizontal' funnels, "autorange"
            on the "y-axis" are set to "reversed".
        outsidetextfont
            Sets the font used for `text` lying outside the bar.
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.funnel.Stream` instance or
            dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textangle
            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.
        textfont
            Sets the font used for `text`.
        textinfo
            Determines which trace information appear on the graph.
            In the case of having multiple funnels, percentages &
            totals are computed separately (per trace).
        textposition
            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.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables
            `percentInitial`, `percentPrevious`, `percentTotal`,
            `label` and `value`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar width (in position axis units).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   # s      zFunnel._prop_descriptionsNc7       ;         s
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|7
dd| _ddlm}8 |8 | jd< |8 | jd	< |8 | jd
< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8 | jd< |8  | jd< |8! | jd< |8" | jd< |8# | jd< |8$ | jd< |8% | jd< |8& | jd< |8' | jd < |8( | jd!< |8) | jd"< |8* | jd#< |8+ | jd$< |8, | jd%< |8- | jd&< |8. | jd'< |8/ | jd(< |80 | jd)< |81 | jd*< |82 | jd+< |83 | jd,< |84 | jd-< |85 | jd.< |86 | jd/< |87 | jd0< |88 | jd1< |89 | jd2< |8: | jd3< |8; | jd4< |8< | jd5< |8= | jd6< |8> | jd7< |8? | jd8< |8@ | jd9< |8A | jd:< |8B | jd;< |8C | jd<< |
dd}9|dk	rl|n|9| d< |
d	d}9|dk	r|n|9| d	< |
d
d}9|dk	r|n|9| d
< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r8|n|9| d< |
dd}9|	dk	rZ|	n|9| d< |
dd}9|
dk	r||
n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r&|n|9| d< |
dd}9|dk	rH|n|9| d< |
dd}9|dk	rj|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r|n|9| d< |
dd}9|dk	r6|n|9| d< |
dd}9|dk	rX|n|9| d< |
dd}9|dk	rz|n|9| d< |
d d}9|dk	r|n|9| d < |
d!d}9|dk	r|n|9| d!< |
d"d}9|dk	r|n|9| d"< |
d#d}9|dk	r|n|9| d#< |
d$d}9|dk	r$|n|9| d$< |
d%d}9|dk	rF|n|9| d%< |
d&d}9| dk	rh| n|9| d&< |
d'd}9|!dk	r|!n|9| d'< |
d(d}9|"dk	r|"n|9| d(< |
d)d}9|#dk	r|#n|9| d)< |
d*d}9|$dk	r|$n|9| d*< |
d+d}9|%dk	r|%n|9| d+< |
d,d}9|&dk	r4|&n|9| d,< |
d-d}9|'dk	rV|'n|9| d-< |
d.d}9|(dk	rx|(n|9| d.< |
d/d}9|)dk	r|)n|9| d/< |
d0d}9|*dk	r|*n|9| d0< |
d1d}9|+dk	r|+n|9| d1< |
d2d}9|,dk		r |,n|9| d2< |
d3d}9|-dk		r"|-n|9| d3< |
d4d}9|.dk		rD|.n|9| d4< |
d5d}9|/dk		rf|/n|9| d5< |
d6d}9|0dk		r|0n|9| d6< |
d7d}9|1dk		r|1n|9| d7< |
d8d}9|2dk		r|2n|9| d8< |
d9d}9|3dk		r|3n|9| d9< |
d:d}9|4dk	
r|4n|9| d:< |
d;d}9|5dk	
r2|5n|9| d;< |
d<d}9|6dk	
rT|6n|9| d<< dd=lDmE}: d| jFd>< |:d>ddd?| jd>< |
d>d | jGf t|f|7 d| _dS )@a4  
        Construct a new Funnel object
        
        Visualize stages in a process using length-encoded bars. This
        trace can be used to show data in either a part-to-whole
        representation wherein each item appears in a single stage, or
        in a "drop-off" representation wherein each item appears in
        each stage it traversed. See also the "funnelarea" trace type
        for a different approach to visualizing funnel data.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Funnel`
        alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        cliponaxis
            Determines whether the text nodes are clipped about the
            subplot axes. To show the text nodes above axis lines
            and tick labels, make sure to set `xaxis.layer` and
            `yaxis.layer` to *below traces*.
        connector
            :class:`plotly.graph_objects.funnel.Connector` instance
            or dict with compatible properties
        constraintext
            Constrain the size of text inside or outside a bar to
            be no larger than the bar itself.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.funnel.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `percentInitial`,
            `percentPrevious` and `percentTotal`. Anything
            contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextanchor
            Determines if texts are kept at center or start/end
            points in `textposition` "inside" mode.
        insidetextfont
            Sets the font used for `text` lying inside the bar.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.funnel.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the position where the bar is drawn (in position
            axis units). In "group" barmode, traces that set
            "offset" will be excluded and drawn in "overlay" mode
            instead.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the funnels. With "v" ("h"),
            the value of the each bar spans along the vertical
            (horizontal). By default funnels are tend to be
            oriented horizontally; unless only "y" array is
            presented or orientation is set to "v". Also regarding
            graphs including only 'horizontal' funnels, "autorange"
            on the "y-axis" are set to "reversed".
        outsidetextfont
            Sets the font used for `text` lying outside the bar.
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.funnel.Stream` instance or
            dict with compatible properties
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textangle
            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.
        textfont
            Sets the font used for `text`.
        textinfo
            Determines which trace information appear on the graph.
            In the case of having multiple funnels, percentages &
            totals are computed separately (per trace).
        textposition
            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.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables
            `percentInitial`, `percentPrevious`, `percentTotal`,
            `label` and `value`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar width (in position axis units).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Funnel
        funnelNzThe first argument to the plotly.graph_objs.Funnel 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Funnel`rJ   Fr   )rG  r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r7   r8   r9   r:   r<   r=   r>   r?   r@   rA   rB   rC   )rK   rD   )rL   rM   r   )HrN   rF  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rG  rZ   r[   r]   r^   r_   r`   ra   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   ro   rp   rq   r   rr   rs   rt   ru   rv   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rK   rE   r   );r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r7   r8   r9   r:   r<   r=   r>   r?   r@   rA   rB   rC   r   Zv_funnelr   rK   )rQ   r   r   rO   & sf     N


zFunnel.__init__)6NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)?r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r7   r8   r9   r:   r<   r=   r>   r?   r@   rA   rB   rC   rD   rG   rH   rO   r   r   r   )rQ   r   rF  M sJ  5$1q11                                                       rF  c            ,       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0edd Z1edd Z2d fdd	Z3  Z4S )Densitymapboxc             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   P s    zDensitymapbox.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c s    c             C   s   | d S )a  
        Determines if the densitymapbox trace will be inserted before
        the layer with the specified ID. By default, densitymapbox
        traces are placed below the first layer of type symbol If set
        to '', the layer will be inserted above every existing layer.
    
        The 'below' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        rm  r   )r   r   r   r   rm  i s    zDensitymapbox.belowc             C   s   || d< d S )Nrm  r   )r   r   r   r   r   rm  { s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zDensitymapbox.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a,-  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.densitymapbox.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.density
                    mapbox.colorbar.Tickformatstop` instances or
                    dicts with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.densitymapbox.colorbar.tickformatstopdefaults
                    ), sets the default property values to use for
                    elements of
                    densitymapbox.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.densitymapbox.colo
                    rbar.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    densitymapbox.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    densitymapbox.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.densitymapbox.ColorBar
        r   r   )r   r   r   r   r    s     ezDensitymapbox.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    ,zDensitymapbox.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zDensitymapbox.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zDensitymapbox.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )ah  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['lon', 'lat', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'lon+lat')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r    s    zDensitymapbox.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zDensitymapbox.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.densitymapbox.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.densitymapbox.Hoverlabel
        r   r   )r   r   r   r   r    s    3zDensitymapbox.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   P s    !zDensitymapbox.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   s s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   y s    zDensitymapbox.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )ai  
        Sets hover text elements associated with each (lon,lat) pair If
        a single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (lon,lat) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r    s    zDensitymapbox.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zDensitymapbox.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zDensitymapbox.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zDensitymapbox.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the latitude coordinates (in degrees North).
    
        The 'lat' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rn  r   )r   r   r   r   rn   s    zDensitymapbox.latc             C   s   || d< d S )Nrn  r   )r   r   r   r   r   rn   s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lat .
    
        The 'latsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        ro  r   )r   r   r   r   ro   s    zDensitymapbox.latsrcc             C   s   || d< d S )Nro  r   )r   r   r   r   r   ro   s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zDensitymapbox.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the longitude coordinates (in degrees East).
    
        The 'lon' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rp  r   )r   r   r   r   rp  $ s    zDensitymapbox.lonc             C   s   || d< d S )Nrp  r   )r   r   r   r   r   rp  2 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lon .
    
        The 'lonsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rq  r   )r   r   r   r   rq  8 s    zDensitymapbox.lonsrcc             C   s   || d< d S )Nrq  r   )r   r   r   r   r   rq  F s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   L s    zDensitymapbox.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   b s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   h s    zDensitymapbox.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   v s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   | s    zDensitymapbox.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#    s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'    s    zDensitymapbox.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'    s    c             C   s   | d S )a  
        Sets the radius of influence of one `lon` / `lat` point in
        pixels. Increasing the value makes the densitymapbox trace
        smoother, but less detailed.
    
        The 'radius' property is a number and may be specified as:
          - An int or float in the interval [1, inf]
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        radiusr   )r   r   r   r   rI   s    zDensitymapbox.radiusc             C   s   || d< d S )NrI  r   )r   r   r   r   r   rI   s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  radius .
    
        The 'radiussrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        	radiussrcr   )r   r   r   r   rJ   s    zDensitymapbox.radiussrcc             C   s   || d< d S )NrJ  r   )r   r   r   r   r   rJ   s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r    s    zDensitymapbox.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+    s    zDensitymapbox.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+    s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r    s    zDensitymapbox.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )at  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.densitymapbox.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.densitymapbox.Stream
        r,   r   )r   r   r   r   r,    s    zDensitymapbox.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   , s    c             C   s   | d S )a'  
        Sets a reference between this trace's data coordinates and a
        mapbox subplot. If "mapbox" (the default value), the data refer
        to `layout.mapbox`. If "mapbox2", the data refer to
        `layout.mapbox2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'mapbox', that may be specified as the string 'mapbox'
        optionally followed by an integer >= 1
        (e.g. 'mapbox', 'mapbox1', 'mapbox2', 'mapbox3', etc.)

        Returns
        -------
        str
        rL  r   )r   r   r   r   rL  2 s    zDensitymapbox.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  E s    c             C   s   | d S )a  
        Sets text elements associated with each (lon,lat) pair If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (lon,lat) coordinates. If trace `hoverinfo`
        contains a "text" flag and "hovertext" is not set, these
        elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   K s    zDensitymapbox.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   ` s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   f s    zDensitymapbox.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   t s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   z s    zDensitymapbox.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7    s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8    s    zDensitymapbox.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8    s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9    s    zDensitymapbox.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9    s    c             C   s   | d S )aA  
        Sets the points' weight. For example, a value of 10 would be
        equivalent to having 10 points of weight 1 in the same spot
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zDensitymapbox.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r   s    zDensitymapbox.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r   s    zDensitymapbox.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  	 s    zDensitymapbox.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r   s    zDensitymapbox.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  . s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   4 s    zDensitymapbox.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   B s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   H s    zDensitymapbox.typec             C   s   dS )NrF   r   )r   r   r   r   rG   N s    zDensitymapbox._parent_path_strc             C   s   dS )Na*          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        below
            Determines if the densitymapbox trace will be inserted
            before the layer with the specified ID. By default,
            densitymapbox traces are placed below the first layer
            of type symbol If set to '', the layer will be inserted
            above every existing layer.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.densitymapbox.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.densitymapbox.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (lon,lat)
            pair If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (lon,lat)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        lat
            Sets the latitude coordinates (in degrees North).
        latsrc
            Sets the source reference on plot.ly for  lat .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lon
            Sets the longitude coordinates (in degrees East).
        lonsrc
            Sets the source reference on plot.ly for  lon .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        radius
            Sets the radius of influence of one `lon` / `lat` point
            in pixels. Increasing the value makes the densitymapbox
            trace smoother, but less detailed.
        radiussrc
            Sets the source reference on plot.ly for  radius .
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.densitymapbox.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a mapbox subplot. If "mapbox" (the default value),
            the data refer to `layout.mapbox`. If "mapbox2", the
            data refer to `layout.mapbox2`, and so on.
        text
            Sets text elements associated with each (lon,lat) pair
            If a single string, the same string appears over all
            the data points. If an array of string, the items are
            mapped in order to the this trace's (lon,lat)
            coordinates. If trace `hoverinfo` contains a "text"
            flag and "hovertext" is not set, these elements will be
            seen in the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        z
            Sets the points' weight. For example, a value of 10
            would be equivalent to having 10 points of weight 1 in
            the same spot
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   T s     Vz Densitymapbox._prop_descriptionsNc-       1         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|-
dd| _ddlm}. |. | jd< |. | jd	< |. | jd
< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |.  | jd< |.! | jd< |." | jd< |.# | jd< |.$ | jd< |.% | jd< |.& | jd< |.' | jd < |.( | jd!< |.) | jd"< |.* | jd#< |.+ | jd$< |., | jd%< |.- | jd&< |.. | jd'< |./ | jd(< |.0 | jd)< |.1 | jd*< |.2 | jd+< |.3 | jd,< |.4 | jd-< |.5 | jd.< |.6 | jd/< |.7 | jd0< |.8 | jd1< |.9 | jd2< |
dd}/|dk	r|n|/| d< |
d	d}/|dk	r|n|/| d	< |
d
d}/|dk	r$|n|/| d
< |
dd}/|dk	rF|n|/| d< |
dd}/|dk	rh|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|	dk	r|	n|/| d< |
dd}/|
dk	r|
n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r4|n|/| d< |
dd}/|dk	rV|n|/| d< |
dd}/|dk	rx|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r |n|/| d< |
dd}/|dk	r"|n|/| d< |
dd}/|dk	rD|n|/| d< |
dd}/|dk	rf|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
d d}/|dk	r|n|/| d < |
d!d}/|dk	r2|n|/| d!< |
d"d}/|dk	rT|n|/| d"< |
d#d}/|dk	rv|n|/| d#< |
d$d}/|dk	r|n|/| d$< |
d%d}/|dk	r|n|/| d%< |
d&d}/| dk	r| n|/| d&< |
d'd}/|!dk	r|!n|/| d'< |
d(d}/|"dk	r |"n|/| d(< |
d)d}/|#dk	rB|#n|/| d)< |
d*d}/|$dk	rd|$n|/| d*< |
d+d}/|%dk	r|%n|/| d+< |
d,d}/|&dk	r|&n|/| d,< |
d-d}/|'dk	r|'n|/| d-< |
d.d}/|(dk	r|(n|/| d.< |
d/d}/|)dk	r|)n|/| d/< |
d0d}/|*dk	r0|*n|/| d0< |
d1d}/|+dk	rR|+n|/| d1< |
d2d}/|,dk	rt|,n|/| d2< dd3l:m;}0 d| j<d4< |0d4ddd5| jd4< |
d4d | j=f t|f|- d| _dS )6a+  
        Construct a new Densitymapbox object
        
        Draws a bivariate kernel density estimation with a Gaussian
        kernel from `lon` and `lat` coordinates and optional `z` values
        using a colorscale.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Densitymapbox`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        below
            Determines if the densitymapbox trace will be inserted
            before the layer with the specified ID. By default,
            densitymapbox traces are placed below the first layer
            of type symbol If set to '', the layer will be inserted
            above every existing layer.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.densitymapbox.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.densitymapbox.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (lon,lat)
            pair If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (lon,lat)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        lat
            Sets the latitude coordinates (in degrees North).
        latsrc
            Sets the source reference on plot.ly for  lat .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lon
            Sets the longitude coordinates (in degrees East).
        lonsrc
            Sets the source reference on plot.ly for  lon .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        radius
            Sets the radius of influence of one `lon` / `lat` point
            in pixels. Increasing the value makes the densitymapbox
            trace smoother, but less detailed.
        radiussrc
            Sets the source reference on plot.ly for  radius .
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.densitymapbox.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a mapbox subplot. If "mapbox" (the default value),
            the data refer to `layout.mapbox`. If "mapbox2", the
            data refer to `layout.mapbox2`, and so on.
        text
            Sets text elements associated with each (lon,lat) pair
            If a single string, the same string appears over all
            the data points. If an array of string, the items are
            mapped in order to the this trace's (lon,lat)
            coordinates. If trace `hoverinfo` contains a "text"
            flag and "hovertext" is not set, these elements will be
            seen in the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        z
            Sets the points' weight. For example, a value of 10
            would be equivalent to having 10 points of weight 1 in
            the same spot
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Densitymapbox
        densitymapboxNzThe first argument to the plotly.graph_objs.Densitymapbox 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Densitymapbox`rJ   Fr   )rK  r   rm  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn  ro  r   rp  rq  r!   r"   r#   r'   rI  rJ  r   r+   r   r,   rL  r-   r3   r7   r8   r9   r   r  r  r  r  r   )rK   rD   )rL   rM   r   )>rN   rH  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rK  r   r[   rs  r   r   r   r`   ra   re   rf   rg   rh   ri   rj   rk   rl   rm   rt  ru  rq   rv  rw  rr   rs   rt   rx   ZRadiusValidatorZRadiussrcValidatorr   r|   r   r}   rU  r~   r   r   r   r   r   r(  r  r*  r  r   r   rK   rE   r   )1r   r   r   rm  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn  ro  r   rp  rq  r!   r"   r#   r'   rI  rJ  r   r+   r   r,   rL  r-   r3   r7   r8   r9   r   r  r  r  r  r   r   Zv_densitymapboxr   rK   )rQ   r   r   rO   + s*     


zDensitymapbox.__init__),NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)5r   r   r   r   r   r   rm  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn  ro  r   rp  rq  r!   r"   r#   r'   rI  rJ  r   r+   r   r,   rL  r-   r3   r7   r8   r9   r   r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   rH  L s   g.5# Z                                           rH  c            2       s<  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6edd Z7edd Z8d fdd	Z9  Z:S )Contourcarpetc             C   s   | d S )z
        Sets the x coordinates.
    
        The 'a' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rD  r   )r   r   r   r   rD   s    zContourcarpet.ac             C   s   || d< d S )NrD  r   )r   r   r   r   r   rD   s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'a0' property accepts values of any type

        Returns
        -------
        Any
        a0r   )r   r   r   r   rM   s    zContourcarpet.a0c             C   s   || d< d S )NrM  r   )r   r   r   r   r   rM  ! s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  a .
    
        The 'asrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rE  r   )r   r   r   r   rE  ' s    zContourcarpet.asrcc             C   s   || d< d S )NrE  r   )r   r   r   r   r   rE  5 s    c             C   s   | d S )a  
        If "array", the heatmap's x coordinates are given by "x" (the
        default behavior when `x` is provided). If "scaled", the
        heatmap's x coordinates are given by "x0" and "dx" (the default
        behavior when `x` is not provided).
    
        The 'atype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        atyper   )r   r   r   r   rN  ; s    zContourcarpet.atypec             C   s   || d< d S )NrN  r   )r   r   r   r   r   rN  M s    c             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   S s    zContourcarpet.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   f s    c             C   s   | d S )a  
        Determines whether or not the contour level attributes are
        picked by an algorithm. If True, the number of contour levels
        can be set in `ncontours`. If False, set the contour level
        attributes in `contours`.
    
        The 'autocontour' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  l s    zContourcarpet.autocontourc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  } s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'b' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rF  r   )r   r   r   r   rF   s    zContourcarpet.bc             C   s   || d< d S )NrF  r   )r   r   r   r   r   rF   s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'b0' property accepts values of any type

        Returns
        -------
        Any
        b0r   )r   r   r   r   rO   s    zContourcarpet.b0c             C   s   || d< d S )NrO  r   )r   r   r   r   r   rO   s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  b .
    
        The 'bsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rG  r   )r   r   r   r   rG   s    zContourcarpet.bsrcc             C   s   || d< d S )NrG  r   )r   r   r   r   r   rG   s    c             C   s   | d S )a  
        If "array", the heatmap's y coordinates are given by "y" (the
        default behavior when `y` is provided) If "scaled", the
        heatmap's y coordinates are given by "y0" and "dy" (the default
        behavior when `y` is not provided)
    
        The 'btype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        btyper   )r   r   r   r   rP   s    zContourcarpet.btypec             C   s   || d< d S )NrP  r   )r   r   r   r   r   rP   s    c             C   s   | d S )a  
        The `carpet` of the carpet axes on which this contour trace
        lies
    
        The 'carpet' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r   s    zContourcarpet.carpetc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zContourcarpet.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a,-  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contourcarpet.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.contour
                    carpet.colorbar.Tickformatstop` instances or
                    dicts with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.contourcarpet.colorbar.tickformatstopdefaults
                    ), sets the default property values to use for
                    elements of
                    contourcarpet.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.contourcarpet.colo
                    rbar.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    contourcarpet.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    contourcarpet.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.contourcarpet.ColorBar
        r   r   )r   r   r   r   r   	 s     ezContourcarpet.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    ,zContourcarpet.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )aO  
        The 'contours' property is an instance of Contours
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contourcarpet.Contours`
          - A dict of string/value properties that will be passed
            to the Contours constructor
    
            Supported dict properties:
                
                coloring
                    Determines the coloring method showing the
                    contour values. If "fill", coloring is done
                    evenly between each contour level If "lines",
                    coloring is done on the contour lines. If
                    "none", no coloring is applied on this trace.
                end
                    Sets the end contour level value. Must be more
                    than `contours.start`
                labelfont
                    Sets the font used for labeling the contour
                    levels. The default color comes from the lines,
                    if shown. The default family and size come from
                    `layout.font`.
                labelformat
                    Sets the contour label formatting rule using d3
                    formatting mini-language which is very similar
                    to Python, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                operation
                    Sets the constraint operation. "=" keeps
                    regions equal to `value` "<" and "<=" keep
                    regions less than `value` ">" and ">=" keep
                    regions greater than `value` "[]", "()", "[)",
                    and "(]" keep regions inside `value[0]` to
                    `value[1]` "][", ")(", "](", ")[" keep regions
                    outside `value[0]` to value[1]` Open vs. closed
                    intervals make no difference to constraint
                    display, but all versions are allowed for
                    consistency with filter transforms.
                showlabels
                    Determines whether to label the contour lines
                    with their values.
                showlines
                    Determines whether or not the contour lines are
                    drawn. Has an effect only if
                    `contours.coloring` is set to "fill".
                size
                    Sets the step between each contour level. Must
                    be positive.
                start
                    Sets the starting contour level value. Must be
                    less than `contours.end`
                type
                    If `levels`, the data is represented as a
                    contour plot with multiple levels displayed. If
                    `constraint`, the data is represented as
                    constraints with the invalid region shaded as
                    specified by the `operation` and `value`
                    parameters.
                value
                    Sets the value or values of the constraint
                    boundary. When `operation` is set to one of the
                    comparison values (=,<,>=,>,<=) "value" is
                    expected to be a number. When `operation` is
                    set to one of the interval values
                    ([],(),[),(],][,)(,](,)[) "value" is expected
                    to be an array of two numbers where the first
                    is the lower bound and the second is the upper
                    bound.

        Returns
        -------
        plotly.graph_objs.contourcarpet.Contours
        r  r   )r   r   r   r   r  ) s    MzContourcarpet.contoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  x s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ~ s    zContourcarpet.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zContourcarpet.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'da' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        dar   )r   r   r   r   rQ   s    zContourcarpet.dac             C   s   || d< d S )NrQ  r   )r   r   r   r   r   rQ   s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'db' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        dbr   )r   r   r   r   rR   s    zContourcarpet.dbc             C   s   || d< d S )NrR  r   )r   r   r   r   r   rR   s    c             C   s   | d S )a!  
        Sets the fill color if `contours.type` is "constraint".
        Defaults to a half-transparent variant of the line color,
        marker color, or marker line color, whichever is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen
          - A number that will be interpreted as a color
            according to contourcarpet.colorscale

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    7zContourcarpet.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   
 s    c             C   s   | d S )z
        Same as `text`.
    
        The 'hovertext' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r    s    zContourcarpet.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   $ s    zContourcarpet.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   2 s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   8 s    zContourcarpet.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   H s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   N s    zContourcarpet.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \ s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   b s    zContourcarpet.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   s s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contourcarpet.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the color of the contour level. Has no
                    effect if `contours.coloring` is set to
                    "lines".
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                smoothing
                    Sets the amount of smoothing for the contour
                    lines, where 0 corresponds to no smoothing.
                width
                    Sets the contour line width in (in px) Defaults
                    to 0.5 when `contours.type` is "levels".
                    Defaults to 2 when `contour.type` is
                    "constraint".

        Returns
        -------
        plotly.graph_objs.contourcarpet.Line
        r   r   )r   r   r   r   r   y s    !zContourcarpet.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!    s    zContourcarpet.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"    s    zContourcarpet.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"    s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#    s    zContourcarpet.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#    s    c             C   s   | d S )a  
        Sets the maximum number of contour levels. The actual number of
        contours will be chosen automatically to be less than or equal
        to the value of `ncontours`. Has an effect only if
        `autocontour` is True or if `contours.size` is missing.
    
        The 'ncontours' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [1, 9223372036854775807]

        Returns
        -------
        int
        r  r   )r   r   r   r   r   s    zContourcarpet.ncontoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'     s    zContourcarpet.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'    s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r    s    zContourcarpet.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $ s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   * s    zContourcarpet.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   9 s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   ? s    zContourcarpet.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   N s    c             C   s   | d S )at  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contourcarpet.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.contourcarpet.Stream
        r,   r   )r   r   r   r   r,   T s    zContourcarpet.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   o s    c             C   s   | d S )z
        Sets the text elements associated with each z value.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-   u s    zContourcarpet.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-    s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3    s    zContourcarpet.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3    s    c             C   s   | d S )z
        Transposes the z data.
    
        The 'transpose' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r7  r   )r   r   r   r   r7   s    zContourcarpet.transposec             C   s   || d< d S )Nr7  r   )r   r   r   r   r   r7   s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7    s    zContourcarpet.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7    s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8    s    zContourcarpet.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8    s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9    s    zContourcarpet.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9    s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>    s    zContourcarpet.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>    s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB    s    zContourcarpet.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   + s    c             C   s   | d S )z
        Sets the z data.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   1 s    zContourcarpet.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ? s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  E s    zContourcarpet.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  V s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  \ s    zContourcarpet.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  k s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  q s    zContourcarpet.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r   s    zContourcarpet.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r    s    zContourcarpet.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD    s    zContourcarpet.typec             C   s   dS )NrF   r   )r   r   r   r   rG    s    zContourcarpet._parent_path_strc             C   s   dS )Na&          a
            Sets the x coordinates.
        a0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        asrc
            Sets the source reference on plot.ly for  a .
        atype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        autocontour
            Determines whether or not the contour level attributes
            are picked by an algorithm. If True, the number of
            contour levels can be set in `ncontours`. If False, set
            the contour level attributes in `contours`.
        b
            Sets the y coordinates.
        b0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        bsrc
            Sets the source reference on plot.ly for  b .
        btype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        carpet
            The `carpet` of the carpet axes on which this contour
            trace lies
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.contourcarpet.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contours
            :class:`plotly.graph_objects.contourcarpet.Contours`
            instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        da
            Sets the x coordinate step. See `x0` for more info.
        db
            Sets the y coordinate step. See `y0` for more info.
        fillcolor
            Sets the fill color if `contours.type` is "constraint".
            Defaults to a half-transparent variant of the line
            color, marker color, or marker line color, whichever is
            available.
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.contourcarpet.Line`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        ncontours
            Sets the maximum number of contour levels. The actual
            number of contours will be chosen automatically to be
            less than or equal to the value of `ncontours`. Has an
            effect only if `autocontour` is True or if
            `contours.size` is missing.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.contourcarpet.Stream`
            instance or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH    s     Qz Contourcarpet._prop_descriptionsNc3       7         s	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|3
dd| _ddlm}4 |4 | jd< |4 | jd	< |4 | jd
< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4 | jd< |4  | jd< |4! | jd< |4" | jd< |4# | jd< |4$ | jd< |4% | jd< |4& | jd< |4' | jd < |4( | jd!< |4) | jd"< |4* | jd#< |4+ | jd$< |4, | jd%< |4- | jd&< |4. | jd'< |4/ | jd(< |40 | jd)< |41 | jd*< |42 | jd+< |43 | jd,< |44 | jd-< |45 | jd.< |46 | jd/< |47 | jd0< |48 | jd1< |49 | jd2< |4: | jd3< |4; | jd4< |4< | jd5< |4= | jd6< |4> | jd7< |4? | jd8< |
dd}5|dk	r4|n|5| d< |
d	d}5|dk	rV|n|5| d	< |
d
d}5|dk	rx|n|5| d
< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r |n|5| d< |
dd}5|	dk	r"|	n|5| d< |
dd}5|
dk	rD|
n|5| d< |
dd}5|dk	rf|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r2|n|5| d< |
dd}5|dk	rT|n|5| d< |
dd}5|dk	rv|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r|n|5| d< |
dd}5|dk	r |n|5| d< |
dd}5|dk	rB|n|5| d< |
d d}5|dk	rd|n|5| d < |
d!d}5|dk	r|n|5| d!< |
d"d}5|dk	r|n|5| d"< |
d#d}5|dk	r|n|5| d#< |
d$d}5|dk	r|n|5| d$< |
d%d}5|dk	r|n|5| d%< |
d&d}5| dk	r0| n|5| d&< |
d'd}5|!dk	rR|!n|5| d'< |
d(d}5|"dk	rt|"n|5| d(< |
d)d}5|#dk	r|#n|5| d)< |
d*d}5|$dk	r|$n|5| d*< |
d+d}5|%dk	r|%n|5| d+< |
d,d}5|&dk	r|&n|5| d,< |
d-d}5|'dk	r|'n|5| d-< |
d.d}5|(dk	r@|(n|5| d.< |
d/d}5|)dk	rb|)n|5| d/< |
d0d}5|*dk	r|*n|5| d0< |
d1d}5|+dk	r|+n|5| d1< |
d2d}5|,dk	r|,n|5| d2< |
d3d}5|-dk	r|-n|5| d3< |
d4d}5|.dk		r|.n|5| d4< |
d5d}5|/dk		r.|/n|5| d5< |
d6d}5|0dk		rP|0n|5| d6< |
d7d}5|1dk		rr|1n|5| d7< |
d8d}5|2dk		r|2n|5| d8< dd9l@mA}6 d| jBd:< |6d:ddd;| jd:< |
d:d | jCf t|f|3 d| _dS )<a(  
        Construct a new Contourcarpet object
        
        Plots contours on either the first carpet axis or the carpet
        axis with a matching `carpet` attribute. Data `z` is
        interpreted as matching that of the corresponding carpet axis.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Contourcarpet`
        a
            Sets the x coordinates.
        a0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        asrc
            Sets the source reference on plot.ly for  a .
        atype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        autocontour
            Determines whether or not the contour level attributes
            are picked by an algorithm. If True, the number of
            contour levels can be set in `ncontours`. If False, set
            the contour level attributes in `contours`.
        b
            Sets the y coordinates.
        b0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        bsrc
            Sets the source reference on plot.ly for  b .
        btype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        carpet
            The `carpet` of the carpet axes on which this contour
            trace lies
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.contourcarpet.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        contours
            :class:`plotly.graph_objects.contourcarpet.Contours`
            instance or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        da
            Sets the x coordinate step. See `x0` for more info.
        db
            Sets the y coordinate step. See `y0` for more info.
        fillcolor
            Sets the fill color if `contours.type` is "constraint".
            Defaults to a half-transparent variant of the line
            color, marker color, or marker line color, whichever is
            available.
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.contourcarpet.Line`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        ncontours
            Sets the maximum number of contour levels. The actual
            number of contours will be chosen automatically to be
            less than or equal to the value of `ncontours`. Has an
            effect only if `autocontour` is True or if
            `contours.size` is missing.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.contourcarpet.Stream`
            instance or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Contourcarpet
        contourcarpetNzThe first argument to the plotly.graph_objs.Contourcarpet 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Contourcarpet`rJ   Fr   )rS  rD  rM  rE  rN  r   r  rF  rO  rG  rP  r  r   r   r   r  r   r   rQ  rR  r   r   r   r   r   r   r   r!   r"   r#   r  r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r>   rB   r   r  r  r  r  r   )rK   rD   )rL   rM   r   )DrN   rL  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rS  rO  r[   A0ValidatorrP  ZAtypeValidatorr   r  rQ  B0ValidatorrR  ZBtypeValidatorr  r   r   r   r  r`   ra   DaValidatorDbValidatorr   rj   rk   rl   rm   rq   r   rr   rs   rt   r#  rx   r   r|   r   r}   r~   r   r;  r   r   r   r   r   r   r(  r  r*  r  r   r   rK   rE   r   )7r   r   rD  rM  rE  rN  r   r  rF  rO  rG  rP  r  r   r   r   r  r   r   rQ  rR  r   r   r   r   r   r   r   r!   r"   r#   r  r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r>   rB   r   r  r  r  r  r   r   Zv_contourcarpetr   rK   )rQ   r   r   rO    sN     


zContourcarpet.__init__)2NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN);r   r   r   r   rD  r   rM  rE  rN  r   r  rF  rO  rG  rP  r  r   r   r   r  r   r   rQ  rR  r   r   r   r   r   r   r   r!   r"   r#   r  r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r>   rB   r   r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   rL   s2   g.O9# U                                                 rL  c            ;       s&  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?edd Z@edd ZAd fdd	ZB  ZCS )Contourc             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   p  s    zContour.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a  
        Determines whether or not the contour level attributes are
        picked by an algorithm. If True, the number of contour levels
        can be set in `ncontours`. If False, set the contour level
        attributes in `contours`.
    
        The 'autocontour' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r    s    zContour.autocontourc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r    s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r     s    zContour.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r     s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contour.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.contour
                    .colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.contour.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of contour.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.contour.colorbar.T
                    itle` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    contour.colorbar.title.font instead. Sets this
                    color bar's title font. Note that the title's
                    font used to be set by the now deprecated
                    `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    contour.colorbar.title.side instead. Determines
                    the location of color bar's title with respect
                    to the color bar. Note that the title's
                    location used to be set by the now deprecated
                    `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.contour.ColorBar
        r   r   )r   r   r   r   r     s     dzContour.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ! s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ! s    ,zContour.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ! s    c             C   s   | d S )an  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the `z` data are filled in. It is defaulted to true if `z`
        is a one dimensional array otherwise it is defaulted to false.
    
        The 'connectgaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  ! s    zContour.connectgapsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ! s    c             C   s   | d S )a  
        The 'contours' property is an instance of Contours
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contour.Contours`
          - A dict of string/value properties that will be passed
            to the Contours constructor
    
            Supported dict properties:
                
                coloring
                    Determines the coloring method showing the
                    contour values. If "fill", coloring is done
                    evenly between each contour level If "heatmap",
                    a heatmap gradient coloring is applied between
                    each contour level. If "lines", coloring is
                    done on the contour lines. If "none", no
                    coloring is applied on this trace.
                end
                    Sets the end contour level value. Must be more
                    than `contours.start`
                labelfont
                    Sets the font used for labeling the contour
                    levels. The default color comes from the lines,
                    if shown. The default family and size come from
                    `layout.font`.
                labelformat
                    Sets the contour label formatting rule using d3
                    formatting mini-language which is very similar
                    to Python, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                operation
                    Sets the constraint operation. "=" keeps
                    regions equal to `value` "<" and "<=" keep
                    regions less than `value` ">" and ">=" keep
                    regions greater than `value` "[]", "()", "[)",
                    and "(]" keep regions inside `value[0]` to
                    `value[1]` "][", ")(", "](", ")[" keep regions
                    outside `value[0]` to value[1]` Open vs. closed
                    intervals make no difference to constraint
                    display, but all versions are allowed for
                    consistency with filter transforms.
                showlabels
                    Determines whether to label the contour lines
                    with their values.
                showlines
                    Determines whether or not the contour lines are
                    drawn. Has an effect only if
                    `contours.coloring` is set to "fill".
                size
                    Sets the step between each contour level. Must
                    be positive.
                start
                    Sets the starting contour level value. Must be
                    less than `contours.end`
                type
                    If `levels`, the data is represented as a
                    contour plot with multiple levels displayed. If
                    `constraint`, the data is represented as
                    constraints with the invalid region shaded as
                    specified by the `operation` and `value`
                    parameters.
                value
                    Sets the value or values of the constraint
                    boundary. When `operation` is set to one of the
                    comparison values (=,<,>=,>,<=) "value" is
                    expected to be a number. When `operation` is
                    set to one of the interval values
                    ([],(),[),(],][,)(,](,)[) "value" is expected
                    to be an array of two numbers where the first
                    is the lower bound and the second is the upper
                    bound.

        Returns
        -------
        plotly.graph_objs.contour.Contours
        r  r   )r   r   r   r   r  ! s    OzContour.contoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  A" s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   G" s    zContour.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   X" s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ^" s    zContour.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l" s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   r" s    z
Contour.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   " s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   " s    z
Contour.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   " s    c             C   s   | d S )a  
        Sets the fill color if `contours.type` is "constraint".
        Defaults to a half-transparent variant of the line color,
        marker color, or marker line color, whichever is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen
          - A number that will be interpreted as a color
            according to contour.colorscale

        Returns
        -------
        str
        r   r   )r   r   r   r   r   " s    7zContour.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   " s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   " s    zContour.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   " s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   " s    zContour.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contour.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.contour.Hoverlabel
        r   r   )r   r   r   r   r   # s    3zContour.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   <# s    c             C   s   | d S )a!  
        Determines whether or not gaps (i.e. {nan} or missing values)
        in the `z` data have hover labels associated with them.
    
        The 'hoverongaps' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r?  r   )r   r   r   r   r?  B# s    zContour.hoverongapsc             C   s   || d< d S )Nr?  r   )r   r   r   r   r   r?  Q# s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   W# s    !zContour.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   z# s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   # s    zContour.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )z
        Same as `text`.
    
        The 'hovertext' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   # s    zContour.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   # s    zContour.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   # s    zContour.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   # s    zContour.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   # s    zContour.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   # s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contour.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the color of the contour level. Has no
                    effect if `contours.coloring` is set to
                    "lines".
                dash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                smoothing
                    Sets the amount of smoothing for the contour
                    lines, where 0 corresponds to no smoothing.
                width
                    Sets the contour line width in (in px) Defaults
                    to 0.5 when `contours.type` is "levels".
                    Defaults to 2 when `contour.type` is
                    "constraint".

        Returns
        -------
        plotly.graph_objs.contour.Line
        r   r   )r   r   r   r   r   # s    !zContour.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    $ s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   &$ s    zContour.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   <$ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   B$ s    zContour.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   P$ s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   V$ s    zContour.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   f$ s    c             C   s   | d S )a  
        Sets the maximum number of contour levels. The actual number of
        contours will be chosen automatically to be less than or equal
        to the value of `ncontours`. Has an effect only if
        `autocontour` is True or if `contours.size` is missing.
    
        The 'ncontours' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [1, 9223372036854775807]

        Returns
        -------
        int
        r  r   )r   r   r   r   r  l$ s    zContour.ncontoursc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ~$ s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   $ s    zContour.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   $ s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   $ s    zContour.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $ s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   $ s    zContour.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   $ s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   $ s    zContour.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $ s    c             C   s   | d S )ah  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.contour.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.contour.Stream
        r,   r   )r   r   r   r   r,   $ s    zContour.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   $ s    c             C   s   | d S )z
        Sets the text elements associated with each z value.
    
        The 'text' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r-   r   )r   r   r   r   r-   $ s    zContour.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   % s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   % s    zContour.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   % s    c             C   s   | d S )z
        Transposes the z data.
    
        The 'transpose' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r7  r   )r   r   r   r   r7  !% s    zContour.transposec             C   s   || d< d S )Nr7  r   )r   r   r   r   r   r7  /% s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   5% s    zContour.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   E% s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   K% s    zContour.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   f% s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   l% s    zContour.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   }% s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   % s    z	Contour.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   % s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   % s    z
Contour.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=   % s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   % s    zContour.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   % s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  % s    zContour.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  % s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   % s    zContour.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   % s    c             C   s   | d S )a  
        If "array", the heatmap's x coordinates are given by "x" (the
        default behavior when `x` is provided). If "scaled", the
        heatmap's x coordinates are given by "x0" and "dx" (the default
        behavior when `x` is not provided).
    
        The 'xtype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        r8  r   )r   r   r   r   r8  % s    zContour.xtypec             C   s   || d< d S )Nr8  r   )r   r   r   r   r   r8  & s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   	& s    z	Contour.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   & s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA   & s    z
Contour.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA   ,& s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   2& s    zContour.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   E& s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  K& s    zContour.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ]& s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   c& s    zContour.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   q& s    c             C   s   | d S )a  
        If "array", the heatmap's y coordinates are given by "y" (the
        default behavior when `y` is provided) If "scaled", the
        heatmap's y coordinates are given by "y0" and "dy" (the default
        behavior when `y` is not provided)
    
        The 'ytype' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['array', 'scaled']

        Returns
        -------
        Any
        r9  r   )r   r   r   r   r9  w& s    zContour.ytypec             C   s   || d< d S )Nr9  r   )r   r   r   r   r   r9  & s    c             C   s   | d S )z
        Sets the z data.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   & s    z	Contour.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   & s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  & s    zContour.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  & s    c             C   s   | d S )a  
        Sets the hover text formatting rule using d3 formatting mini-
        languages which are very similar to those in Python. See:
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#d3_format
    
        The 'zhoverformat' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  & s    zContour.zhoverformatc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  & s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  & s    zContour.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  & s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  & s    zContour.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  & s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  & s    zContour.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ' s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ' s    zContour.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r    ' s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   &' s    zContour.typec             C   s   dS )NrF   r   )r   r   r   r   rG   ,' s    zContour._parent_path_strc             C   s   dS )NaN1          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        autocontour
            Determines whether or not the contour level attributes
            are picked by an algorithm. If True, the number of
            contour levels can be set in `ncontours`. If False, set
            the contour level attributes in `contours`.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.contour.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data are filled in. It is defaulted
            to true if `z` is a one dimensional array otherwise it
            is defaulted to false.
        contours
            :class:`plotly.graph_objects.contour.Contours` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        fillcolor
            Sets the fill color if `contours.type` is "constraint".
            Defaults to a half-transparent variant of the line
            color, marker color, or marker line color, whichever is
            available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.contour.Hoverlabel`
            instance or dict with compatible properties
        hoverongaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data have hover labels associated
            with them.
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.contour.Line` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        ncontours
            Sets the maximum number of contour levels. The actual
            number of contours will be chosen automatically to be
            less than or equal to the value of `ncontours`. Has an
            effect only if `autocontour` is True or if
            `contours.size` is missing.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.contour.Stream` instance
            or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        xtype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        ytype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   2' s      zContour._prop_descriptionsNc<       @         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|<
dd| _ddlm}= |= | jd< |= | jd	< |= | jd
< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |= | jd< |=  | jd< |=! | jd< |=" | jd< |=# | jd< |=$ | jd< |=% | jd< |=& | jd< |=' | jd < |=( | jd!< |=) | jd"< |=* | jd#< |=+ | jd$< |=, | jd%< |=- | jd&< |=. | jd'< |=/ | jd(< |=0 | jd)< |=1 | jd*< |=2 | jd+< |=3 | jd,< |=4 | jd-< |=5 | jd.< |=6 | jd/< |=7 | jd0< |=8 | jd1< |=9 | jd2< |=: | jd3< |=; | jd4< |=< | jd5< |== | jd6< |=> | jd7< |=? | jd8< |=@ | jd9< |=A | jd:< |=B | jd;< |=C | jd<< |=D | jd=< |=E | jd>< |=F | jd?< |=G | jd@< |=H | jdA< |
dd}>|dk	r|n|>| d< |
d	d}>|dk	r|n|>| d	< |
d
d}>|dk	r|n|>| d
< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r:|n|>| d< |
dd}>|dk	r\|n|>| d< |
dd}>|dk	r~|n|>| d< |
dd}>|	dk	r|	n|>| d< |
dd}>|
dk	r|
n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r(|n|>| d< |
dd}>|dk	rJ|n|>| d< |
dd}>|dk	rl|n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r8|n|>| d< |
dd}>|dk	rZ|n|>| d< |
dd}>|dk	r||n|>| d< |
dd}>|dk	r|n|>| d< |
dd}>|dk	r|n|>| d< |
d d}>|dk	r|n|>| d < |
d!d}>|dk	r|n|>| d!< |
d"d}>|dk	r&|n|>| d"< |
d#d}>|dk	rH|n|>| d#< |
d$d}>|dk	rj|n|>| d$< |
d%d}>|dk	r|n|>| d%< |
d&d}>| dk	r| n|>| d&< |
d'd}>|!dk	r|!n|>| d'< |
d(d}>|"dk	r|"n|>| d(< |
d)d}>|#dk	r|#n|>| d)< |
d*d}>|$dk	r6|$n|>| d*< |
d+d}>|%dk	rX|%n|>| d+< |
d,d}>|&dk	rz|&n|>| d,< |
d-d}>|'dk	r|'n|>| d-< |
d.d}>|(dk	r|(n|>| d.< |
d/d}>|)dk	r|)n|>| d/< |
d0d}>|*dk		r|*n|>| d0< |
d1d}>|+dk		r$|+n|>| d1< |
d2d}>|,dk		rF|,n|>| d2< |
d3d}>|-dk		rh|-n|>| d3< |
d4d}>|.dk		r|.n|>| d4< |
d5d}>|/dk		r|/n|>| d5< |
d6d}>|0dk		r|0n|>| d6< |
d7d}>|1dk		r|1n|>| d7< |
d8d}>|2dk	
r|2n|>| d8< |
d9d}>|3dk	
r4|3n|>| d9< |
d:d}>|4dk	
rV|4n|>| d:< |
d;d}>|5dk	
rx|5n|>| d;< |
d<d}>|6dk	
r|6n|>| d<< |
d=d}>|7dk	
r|7n|>| d=< |
d>d}>|8dk	
r|8n|>| d>< |
d?d}>|9dk	r |9n|>| d?< |
d@d}>|:dk	r"|:n|>| d@< |
dAd}>|;dk	rD|;n|>| dA< ddBlImJ}? d| jKdC< |?dCdddD| jdC< |
dCd | jLf t|f|< d| _dS )Ea4  
        Construct a new Contour object
        
        The data from which contour lines are computed is set in `z`.
        Data in `z` must be a 2D list of numbers. Say that `z` has N
        rows and M columns, then by default, these N rows correspond to
        N y coordinates (set in `y` or auto-generated) and the M
        columns correspond to M x coordinates (set in `x` or auto-
        generated). By setting `transpose` to True, the above behavior
        is flipped.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Contour`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        autocontour
            Determines whether or not the contour level attributes
            are picked by an algorithm. If True, the number of
            contour levels can be set in `ncontours`. If False, set
            the contour level attributes in `contours`.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.contour.ColorBar` instance
            or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        connectgaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data are filled in. It is defaulted
            to true if `z` is a one dimensional array otherwise it
            is defaulted to false.
        contours
            :class:`plotly.graph_objects.contour.Contours` instance
            or dict with compatible properties
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        fillcolor
            Sets the fill color if `contours.type` is "constraint".
            Defaults to a half-transparent variant of the line
            color, marker color, or marker line color, whichever is
            available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.contour.Hoverlabel`
            instance or dict with compatible properties
        hoverongaps
            Determines whether or not gaps (i.e. {nan} or missing
            values) in the `z` data have hover labels associated
            with them.
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.contour.Line` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        ncontours
            Sets the maximum number of contour levels. The actual
            number of contours will be chosen automatically to be
            less than or equal to the value of `ncontours`. Has an
            effect only if `autocontour` is True or if
            `contours.size` is missing.
        opacity
            Sets the opacity of the trace.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.contour.Stream` instance
            or dict with compatible properties
        text
            Sets the text elements associated with each z value.
        textsrc
            Sets the source reference on plot.ly for  text .
        transpose
            Transposes the z data.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        xtype
            If "array", the heatmap's x coordinates are given by
            "x" (the default behavior when `x` is provided). If
            "scaled", the heatmap's x coordinates are given by "x0"
            and "dx" (the default behavior when `x` is not
            provided).
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        ytype
            If "array", the heatmap's y coordinates are given by
            "y" (the default behavior when `y` is provided) If
            "scaled", the heatmap's y coordinates are given by "y0"
            and "dy" (the default behavior when `y` is not
            provided)
        z
            Sets the z data.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zhoverformat
            Sets the hover text formatting rule using d3 formatting
            mini-languages which are very similar to those in
            Python. See: https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#d3_format
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Contour
        r   NzThe first argument to the plotly.graph_objs.Contour 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Contour`rJ   Fr   )r   r   r  r   r   r   r  r  r   r   r   r   r   r   r   r   r?  r   r   r   r   r   r   r   r   r!   r"   r#   r  r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r  r?   r8  r@   rA   rB   r  rC   r9  r   r  r  r  r  r  r   )rK   rD   )rL   rM   r   )MrN   rX  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   r   r[   r  r   r   r   r  r  r`   ra   rc   rd   r   re   rf   rg   rA  rh   ri   rj   rk   rl   rm   rq   r   rr   rs   rt   r#  rx   r   r|   r   r}   r~   r   r;  r   r   r   r   r   r   r  r   r<  r   r   r   r  r   r=  r   r(  r)  r  r*  r  r   r   rK   rE   r   )@r   r   r   r  r   r   r   r  r  r   r   r   r   r   r   r   r   r?  r   r   r   r   r   r   r   r   r!   r"   r#   r  r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r  r?   r8  r@   rA   rB   r  rC   r9  r   r  r  r  r  r  r   r   Z	v_contourr   rK   )rQ   r   r   rO   7( s     V


zContour.__init__);NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Dr   r   r   r   r   r   r  r   r   r   r  r  r   r   r   r   r   r   r   r   r?  r   r   r   r   r   r   r   r   r!   r"   r#   r  r'   r   r+   r   r,   r-   r3   r7  r7   r8   r9   r<   r=   r>   r  r?   r8  r@   rA   rB   r  rC   r9  r   r  r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   rX  l  sj   f.Q95##  	                                                          rX  c            4       sp  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8edd Z9edd Z:d fdd	Z;  Z<S )Conec             C   s   | d S )a  
        Sets the cones' anchor with respect to their x/y/z positions.
        Note that "cm" denote the cone's center of mass which
        corresponds to 1/4 from the tail to tip.
    
        The 'anchor' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['tip', 'tail', 'cm', 'center']

        Returns
        -------
        Any
        anchorr   )r   r   r   r   rZ  v* s    zCone.anchorc             C   s   || d< d S )NrZ  r   )r   r   r   r   r   rZ  * s    c             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   * s    zCone.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   * s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here u/v/w norm) or the bounds set
        in `cmin` and `cmax`  Defaults to `false` when `cmin` and
        `cmax` are set by the user.
    
        The 'cauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   * s    z
Cone.cautoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   * s    c             C   s   | d S )a7  
        Sets the upper bound of the color domain. Value should have the
        same units as u/v/w norm and if set, `cmin` must be set as
        well.
    
        The 'cmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   * s    z	Cone.cmaxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   * s    c             C   s   | d S )a}  
        Sets the mid-point of the color domain by scaling `cmin` and/or
        `cmax` to be equidistant to this point. Value should have the
        same units as u/v/w norm. Has no effect when `cauto` is
        `false`.
    
        The 'cmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   * s    z	Cone.cmidc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   * s    c             C   s   | d S )a7  
        Sets the lower bound of the color domain. Value should have the
        same units as u/v/w norm and if set, `cmax` must be set as
        well.
    
        The 'cmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   * s    z	Cone.cminc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   * s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r    + s    zCone.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   + s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.cone.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.cone.co
                    lorbar.Tickformatstop` instances or dicts with
                    compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.cone.colorbar.tickformatstopdefaults), sets
                    the default property values to use for elements
                    of cone.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.cone.colorbar.Titl
                    e` instance or dict with compatible properties
                titlefont
                    Deprecated: Please use cone.colorbar.title.font
                    instead. Sets this color bar's title font. Note
                    that the title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use cone.colorbar.title.side
                    instead. Determines the location of color bar's
                    title with respect to the color bar. Note that
                    the title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.cone.ColorBar
        r   r   )r   r   r   r   r   + s     azCone.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   + s    c             C   s   | d S )a	  
        Sets the colorscale. 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`cmin` and `cmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   , s    ,zCone.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1, s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   7, s    zCone.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   H, s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   N, s    zCone.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   \, s    c             C   s   | d S )aw  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'u', 'v', 'w', 'norm', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   b, s    zCone.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   v, s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   |, s    zCone.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   , s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.cone.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.cone.Hoverlabel
        r   r   )r   r   r   r   r   , s    3zCone.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   , s    c             C   s   | d S )a-  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variable `norm` Anything contained in tag `<extra>` is
        displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   , s    !zCone.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   , s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   , s    zCone.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   - s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   - s    zCone.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   - s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   - s    zCone.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ,- s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   2- s    zCone.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   B- s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   H- s    zCone.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   V- s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   \- s    zCone.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   m- s    c             C   s   | d S )ac  
        The 'lighting' property is an instance of Lighting
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.cone.Lighting`
          - A dict of string/value properties that will be passed
            to the Lighting constructor
    
            Supported dict properties:
                
                ambient
                    Ambient light increases overall color
                    visibility but can wash out the image.
                diffuse
                    Represents the extent that incident rays are
                    reflected in a range of angles.
                facenormalsepsilon
                    Epsilon for face normals calculation avoids
                    math issues arising from degenerate geometry.
                fresnel
                    Represents the reflectance as a dependency of
                    the viewing angle; e.g. paper is reflective
                    when viewing it from the edge of the paper
                    (almost 90 degrees), causing shine.
                roughness
                    Alters specular reflection; the rougher the
                    surface, the wider and less contrasty the
                    shine.
                specular
                    Represents the level that incident rays are
                    reflected in a single direction, causing shine.
                vertexnormalsepsilon
                    Epsilon for vertex normals calculation avoids
                    math issues arising from degenerate geometry.

        Returns
        -------
        plotly.graph_objs.cone.Lighting
        r   r   )r   r   r   r   r   s- s    (zCone.lightingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   - s    c             C   s   | d S )a  
        The 'lightposition' property is an instance of Lightposition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.cone.Lightposition`
          - A dict of string/value properties that will be passed
            to the Lightposition constructor
    
            Supported dict properties:
                
                x
                    Numeric vector, representing the X coordinate
                    for each vertex.
                y
                    Numeric vector, representing the Y coordinate
                    for each vertex.
                z
                    Numeric vector, representing the Z coordinate
                    for each vertex.

        Returns
        -------
        plotly.graph_objs.cone.Lightposition
        r   r   )r   r   r   r   r   - s    zCone.lightpositionc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   - s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   - s    z	Cone.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   - s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   - s    zCone.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   - s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   - s    z	Cone.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   . s    c             C   s   | d S )aS  
        Sets the opacity of the surface. Please note that in the case
        of using high `opacity` values for example a value greater than
        or equal to 0.5 on two surfaces (and 0.25 with four surfaces),
        an overlay of multiple transparent surfaces may not perfectly
        be sorted in depth by the webgl API. This behavior may be
        improved in the near future and is subject to change.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   
. s    zCone.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   . s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `cmin` will
        correspond to the last color in the array and `cmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   #. s    zCone.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   3. s    c             C   s   | d S )a7  
        Sets a reference between this trace's 3D coordinate system and
        a 3D scene. If "scene" (the default value), the (x,y,z)
        coordinates refer to `layout.scene`. If "scene2", the (x,y,z)
        coordinates refer to `layout.scene2`, and so on.
    
        The 'scene' property is an identifier of a particular
        subplot, of type 'scene', that may be specified as the string 'scene'
        optionally followed by an integer >= 1
        (e.g. 'scene', 'scene1', 'scene2', 'scene3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   9. s    z
Cone.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   L. s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   R. s    zCone.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   a. s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   g. s    zCone.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   v. s    c             C   s   | d S )a  
        Determines whether `sizeref` is set as a "scaled" (i.e
        unitless) scalar (normalized by the max u/v/w norm in the
        vector field) or as "absolute" value (in the same units as the
        vector field).
    
        The 'sizemode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['scaled', 'absolute']

        Returns
        -------
        Any
        sizemoder   )r   r   r   r   r[  |. s    zCone.sizemodec             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  . s    c             C   s   | d S )aO  
        Adjusts the cone size scaling. The size of the cones is
        determined by their u/v/w norm multiplied a factor and
        `sizeref`. This factor (computed internally) corresponds to the
        minimum "time" to travel across two successive x/y/z positions
        at the average velocity of those two successive positions. All
        cones in a given trace use the same factor. With `sizemode` set
        to "scaled", `sizeref` is unitless, its default value is 0.5
        With `sizemode` set to "absolute", `sizeref` has the same units
        as the u/v/w vector field, its the default value is half the
        sample's maximum vector norm.
    
        The 'sizeref' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r(  r   )r   r   r   r   r(  . s    zCone.sizerefc             C   s   || d< d S )Nr(  r   )r   r   r   r   r   r(  . s    c             C   s   | d S )ab  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.cone.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.cone.Stream
        r,   r   )r   r   r   r   r,   . s    zCone.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   . s    c             C   s   | d S )a  
        Sets the text elements associated with the cones. If trace
        `hoverinfo` contains a "text" flag and "hovertext" is not set,
        these elements will be seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   . s    z	Cone.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   . s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   . s    zCone.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   . s    c             C   s   | d S )z
        Sets the x components of the vector field.
    
        The 'u' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r*  r   )r   r   r   r   r*  . s    zCone.uc             C   s   || d< d S )Nr*  r   )r   r   r   r   r   r*  / s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   / s    zCone.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   "/ s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   (/ s    zCone.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   C/ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  u .
    
        The 'usrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r+  r   )r   r   r   r   r+  I/ s    z	Cone.usrcc             C   s   || d< d S )Nr+  r   )r   r   r   r   r   r+  W/ s    c             C   s   | d S )z
        Sets the y components of the vector field.
    
        The 'v' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r,  r   )r   r   r   r   r,  ]/ s    zCone.vc             C   s   || d< d S )Nr,  r   )r   r   r   r   r   r,  k/ s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   q/ s    zCone.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   / s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  v .
    
        The 'vsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r-  r   )r   r   r   r   r-  / s    z	Cone.vsrcc             C   s   || d< d S )Nr-  r   )r   r   r   r   r   r-  / s    c             C   s   | d S )z
        Sets the z components of the vector field.
    
        The 'w' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r.  r   )r   r   r   r   r.  / s    zCone.wc             C   s   || d< d S )Nr.  r   )r   r   r   r   r   r.  / s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  w .
    
        The 'wsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r/  r   )r   r   r   r   r/  / s    z	Cone.wsrcc             C   s   || d< d S )Nr/  r   )r   r   r   r   r   r/  / s    c             C   s   | d S )a  
        Sets the x coordinates of the vector field and of the displayed
        cones.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   / s    zCone.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   / s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   / s    z	Cone.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   / s    c             C   s   | d S )a  
        Sets the y coordinates of the vector field and of the displayed
        cones.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   / s    zCone.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   / s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   0 s    z	Cone.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   0 s    c             C   s   | d S )a  
        Sets the z coordinates of the vector field and of the displayed
        cones.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   0 s    zCone.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   %0 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   +0 s    z	Cone.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   90 s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   ?0 s    z	Cone.typec             C   s   dS )NrF   r   )r   r   r   r   rG   E0 s    zCone._parent_path_strc             C   s   dS )Na.          anchor
            Sets the cones' anchor with respect to their x/y/z
            positions. Note that "cm" denote the cone's center of
            mass which corresponds to 1/4 from the tail to tip.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here u/v/w norm) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmin`
            must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as u/v/w norm. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmax`
            must be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.cone.ColorBar` instance or
            dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.cone.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `norm` Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.cone.Lighting` instance or
            dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.cone.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        sizemode
            Determines whether `sizeref` is set as a "scaled" (i.e
            unitless) scalar (normalized by the max u/v/w norm in
            the vector field) or as "absolute" value (in the same
            units as the vector field).
        sizeref
            Adjusts the cone size scaling. The size of the cones is
            determined by their u/v/w norm multiplied a factor and
            `sizeref`. This factor (computed internally)
            corresponds to the minimum "time" to travel across two
            successive x/y/z positions at the average velocity of
            those two successive positions. All cones in a given
            trace use the same factor. With `sizemode` set to
            "scaled", `sizeref` is unitless, its default value is
            0.5 With `sizemode` set to "absolute", `sizeref` has
            the same units as the u/v/w vector field, its the
            default value is half the sample's maximum vector norm.
        stream
            :class:`plotly.graph_objects.cone.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with the cones. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        u
            Sets the x components of the vector field.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        usrc
            Sets the source reference on plot.ly for  u .
        v
            Sets the y components of the vector field.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        vsrc
            Sets the source reference on plot.ly for  v .
        w
            Sets the z components of the vector field.
        wsrc
            Sets the source reference on plot.ly for  w .
        x
            Sets the x coordinates of the vector field and of the
            displayed cones.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates of the vector field and of the
            displayed cones.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates of the vector field and of the
            displayed cones.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   K0 s     rzCone._prop_descriptionsNc5       9         sP
  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|5
dd| _ddlm}6 |6 | jd< |6 | jd	< |6 | jd
< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6 | jd< |6  | jd< |6! | jd< |6" | jd< |6# | jd< |6$ | jd< |6% | jd< |6& | jd< |6' | jd < |6( | jd!< |6) | jd"< |6* | jd#< |6+ | jd$< |6, | jd%< |6- | jd&< |6. | jd'< |6/ | jd(< |60 | jd)< |61 | jd*< |62 | jd+< |63 | jd,< |64 | jd-< |65 | jd.< |66 | jd/< |67 | jd0< |68 | jd1< |69 | jd2< |6: | jd3< |6; | jd4< |6< | jd5< |6= | jd6< |6> | jd7< |6? | jd8< |6@ | jd9< |6A | jd:< |
dd}7|dk	rP|n|7| d< |
d	d}7|dk	rr|n|7| d	< |
d
d}7|dk	r|n|7| d
< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|	dk	r>|	n|7| d< |
dd}7|
dk	r`|
n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r
|n|7| d< |
dd}7|dk	r,|n|7| d< |
dd}7|dk	rN|n|7| d< |
dd}7|dk	rp|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r|n|7| d< |
dd}7|dk	r<|n|7| d< |
dd}7|dk	r^|n|7| d< |
d d}7|dk	r|n|7| d < |
d!d}7|dk	r|n|7| d!< |
d"d}7|dk	r|n|7| d"< |
d#d}7|dk	r|n|7| d#< |
d$d}7|dk	r|n|7| d$< |
d%d}7|dk	r*|n|7| d%< |
d&d}7| dk	rL| n|7| d&< |
d'd}7|!dk	rn|!n|7| d'< |
d(d}7|"dk	r|"n|7| d(< |
d)d}7|#dk	r|#n|7| d)< |
d*d}7|$dk	r|$n|7| d*< |
d+d}7|%dk	r|%n|7| d+< |
d,d}7|&dk	r|&n|7| d,< |
d-d}7|'dk	r:|'n|7| d-< |
d.d}7|(dk	r\|(n|7| d.< |
d/d}7|)dk	r~|)n|7| d/< |
d0d}7|*dk	r|*n|7| d0< |
d1d}7|+dk	r|+n|7| d1< |
d2d}7|,dk	r|,n|7| d2< |
d3d}7|-dk		r|-n|7| d3< |
d4d}7|.dk		r(|.n|7| d4< |
d5d}7|/dk		rJ|/n|7| d5< |
d6d}7|0dk		rl|0n|7| d6< |
d7d}7|1dk		r|1n|7| d7< |
d8d}7|2dk		r|2n|7| d8< |
d9d}7|3dk		r|3n|7| d9< |
d:d}7|4dk		r|4n|7| d:< dd;lBmC}8 d| jDd<< |8d<ddd=| jd<< |
d<d | jEf t|f|5 d| _dS )>a0  
        Construct a new Cone object
        
        Use cone traces to visualize vector fields.  Specify a vector
        field using 6 1D arrays, 3 position arrays `x`, `y` and `z` and
        3 vector component arrays `u`, `v`, `w`. The cones are drawn
        exactly at the positions given by `x`, `y` and `z`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Cone`
        anchor
            Sets the cones' anchor with respect to their x/y/z
            positions. Note that "cm" denote the cone's center of
            mass which corresponds to 1/4 from the tail to tip.
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        cauto
            Determines whether or not the color domain is computed
            with respect to the input data (here u/v/w norm) or the
            bounds set in `cmin` and `cmax`  Defaults to `false`
            when `cmin` and `cmax` are set by the user.
        cmax
            Sets the upper bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmin`
            must be set as well.
        cmid
            Sets the mid-point of the color domain by scaling
            `cmin` and/or `cmax` to be equidistant to this point.
            Value should have the same units as u/v/w norm. Has no
            effect when `cauto` is `false`.
        cmin
            Sets the lower bound of the color domain. Value should
            have the same units as u/v/w norm and if set, `cmax`
            must be set as well.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.cone.ColorBar` instance or
            dict with compatible properties
        colorscale
            Sets the colorscale. 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`cmin` and `cmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.cone.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `norm` Anything contained in tag
            `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        lighting
            :class:`plotly.graph_objects.cone.Lighting` instance or
            dict with compatible properties
        lightposition
            :class:`plotly.graph_objects.cone.Lightposition`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the surface. Please note that in
            the case of using high `opacity` values for example a
            value greater than or equal to 0.5 on two surfaces (and
            0.25 with four surfaces), an overlay of multiple
            transparent surfaces may not perfectly be sorted in
            depth by the webgl API. This behavior may be improved
            in the near future and is subject to change.
        reversescale
            Reverses the color mapping if true. If true, `cmin`
            will correspond to the last color in the array and
            `cmax` will correspond to the first color.
        scene
            Sets a reference between this trace's 3D coordinate
            system and a 3D scene. If "scene" (the default value),
            the (x,y,z) coordinates refer to `layout.scene`. If
            "scene2", the (x,y,z) coordinates refer to
            `layout.scene2`, and so on.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        sizemode
            Determines whether `sizeref` is set as a "scaled" (i.e
            unitless) scalar (normalized by the max u/v/w norm in
            the vector field) or as "absolute" value (in the same
            units as the vector field).
        sizeref
            Adjusts the cone size scaling. The size of the cones is
            determined by their u/v/w norm multiplied a factor and
            `sizeref`. This factor (computed internally)
            corresponds to the minimum "time" to travel across two
            successive x/y/z positions at the average velocity of
            those two successive positions. All cones in a given
            trace use the same factor. With `sizemode` set to
            "scaled", `sizeref` is unitless, its default value is
            0.5 With `sizemode` set to "absolute", `sizeref` has
            the same units as the u/v/w vector field, its the
            default value is half the sample's maximum vector norm.
        stream
            :class:`plotly.graph_objects.cone.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with the cones. If
            trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textsrc
            Sets the source reference on plot.ly for  text .
        u
            Sets the x components of the vector field.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        usrc
            Sets the source reference on plot.ly for  u .
        v
            Sets the y components of the vector field.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        vsrc
            Sets the source reference on plot.ly for  v .
        w
            Sets the z components of the vector field.
        wsrc
            Sets the source reference on plot.ly for  w .
        x
            Sets the x coordinates of the vector field and of the
            displayed cones.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates of the vector field and of the
            displayed cones.
        ysrc
            Sets the source reference on plot.ly for  y .
        z
            Sets the z coordinates of the vector field and of the
            displayed cones.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Cone
        coneNzThe first argument to the plotly.graph_objs.Cone 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Cone`rJ   Fr   )r\  rZ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r[  r(  r,   r-   r3   r*  r7   r8   r+  r,  r9   r-  r.  r/  r<   r?   r@   rC   r   r   )rK   rD   )rL   rM   r   )FrN   rY  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r\  ZAnchorValidatorr[   r   r   r   r   r   r   r   r   r`   ra   re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   r   rr   rs   rt   rx   r   r   r|   r   ZSizemodeValidatorr1  r}   r~   r   r2  r   r   r3  r4  r   r5  r6  r7  r   r   r   r   r   r   r   rK   rE   r   )9r   r   rZ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r[  r(  r,   r-   r3   r*  r7   r8   r+  r,  r9   r-  r.  r/  r<   r?   r@   rC   r   r   r   Zv_coner   rK   )rQ   r   r   rO   >1 sZ     :


zCone.__init__)4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)=r   r   r   r   rZ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   r   r   r+   r   r[  r(  r,   r-   r3   r*  r7   r8   r+  r,  r9   r-  r.  r/  r<   r?   r@   rC   r   r   rD   rG   rH   rO   r   r   r   )rQ   r   rY  r* s>   c.5#* v                                                   rY  c            -       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1edd Z2edd Z3d fdd	Z4  Z5S )Choroplethmapboxc             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   L3 s    zChoroplethmapbox.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _3 s    c             C   s   | d S )a  
        Determines if the choropleth polygons will be inserted before
        the layer with the specified ID. By default, choroplethmapbox
        traces are placed above the water layers. If set to '', the
        layer will be inserted above every existing layer.
    
        The 'below' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        rm  r   )r   r   r   r   rm  e3 s    zChoroplethmapbox.belowc             C   s   || d< d S )Nrm  r   )r   r   r   r   r   rm  w3 s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   }3 s    zChoroplethmapbox.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   3 s    c             C   s   | d S )aD-  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choroplethmapbox.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.choropl
                    ethmapbox.colorbar.Tickformatstop` instances or
                    dicts with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.choroplethmapbox.colorbar.tickformatstopdefau
                    lts), sets the default property values to use
                    for elements of
                    choroplethmapbox.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.choroplethmapbox.c
                    olorbar.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    choroplethmapbox.colorbar.title.font instead.
                    Sets this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    choroplethmapbox.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.choroplethmapbox.ColorBar
        r   r   )r   r   r   r   r   3 s     ezChoroplethmapbox.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ~4 s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   4 s    ,zChoroplethmapbox.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   4 s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   4 s    zChoroplethmapbox.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   4 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   4 s    zChoroplethmapbox.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   4 s    c             C   s   | d S )a  
        Sets the key in GeoJSON features which is used as id to match
        the items included in the `locations` array. Support nested
        property, for example "properties.name".
    
        The 'featureidkey' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  4 s    zChoroplethmapbox.featureidkeyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  4 s    c             C   s   | d S )a  
        Sets the GeoJSON data associated with this trace. It can be set
        as a valid GeoJSON object or as a URL string. Note that we only
        accept GeoJSONs of type "FeatureCollection" or "Feature" with
        geometries of type "Polygon" or "MultiPolygon".
    
        The 'geojson' property accepts values of any type

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  4 s    zChoroplethmapbox.geojsonc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  
5 s    c             C   s   | d S )ai  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['location', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'location+z')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   5 s    zChoroplethmapbox.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $5 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   *5 s    zChoroplethmapbox.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   85 s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choroplethmapbox.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.choroplethmapbox.Hoverlabel
        r   r   )r   r   r   r   r   >5 s    3zChoroplethmapbox.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   s5 s    c             C   s   | d S )a3  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variable `properties` Anything contained in tag `<extra>` is
        displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   y5 s    !zChoroplethmapbox.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   5 s    z!Choroplethmapbox.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5 s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   5 s    zChoroplethmapbox.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   5 s    zChoroplethmapbox.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5 s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   5 s    zChoroplethmapbox.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   5 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   5 s    zChoroplethmapbox.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6 s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   
6 s    zChoroplethmapbox.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6 s    c             C   s   | d S )a  
        Sets which features found in "geojson" to plot using their
        feature `id` field.
    
        The 'locations' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  !6 s    zChoroplethmapbox.locationsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  06 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  locations .
    
        The 'locationssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  66 s    zChoroplethmapbox.locationssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  D6 s    c             C   s   | d S )a&  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choroplethmapbox.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                line
                    :class:`plotly.graph_objects.choroplethmapbox.m
                    arker.Line` instance or dict with compatible
                    properties
                opacity
                    Sets the opacity of the locations.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .

        Returns
        -------
        plotly.graph_objs.choroplethmapbox.Marker
        r   r   )r   r   r   r   r   J6 s    zChoroplethmapbox.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   e6 s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   k6 s    zChoroplethmapbox.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   6 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   6 s    zChoroplethmapbox.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   6 s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   6 s    zChoroplethmapbox.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   6 s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   6 s    zChoroplethmapbox.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6 s    c             C   s   | d S )aq  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choroplethmapbox.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.choroplethmapbox.s
                    elected.Marker` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.choroplethmapbox.Selected
        r   r   )r   r   r   r   r   6 s    zChoroplethmapbox.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6 s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   6 s    zChoroplethmapbox.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   6 s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   6 s    zChoroplethmapbox.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   
7 s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   7 s    zChoroplethmapbox.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7 s    c             C   s   | d S )az  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choroplethmapbox.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.choroplethmapbox.Stream
        r,   r   )r   r   r   r   r,   %7 s    zChoroplethmapbox.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   @7 s    c             C   s   | d S )a'  
        Sets a reference between this trace's data coordinates and a
        mapbox subplot. If "mapbox" (the default value), the data refer
        to `layout.mapbox`. If "mapbox2", the data refer to
        `layout.mapbox2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'mapbox', that may be specified as the string 'mapbox'
        optionally followed by an integer >= 1
        (e.g. 'mapbox', 'mapbox1', 'mapbox2', 'mapbox3', etc.)

        Returns
        -------
        str
        rL  r   )r   r   r   r   rL  F7 s    zChoroplethmapbox.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  Y7 s    c             C   s   | d S )a]  
        Sets the text elements associated with each location.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   _7 s    zChoroplethmapbox.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   o7 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   u7 s    zChoroplethmapbox.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   7 s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   7 s    zChoroplethmapbox.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   7 s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   7 s    zChoroplethmapbox.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   7 s    c             C   s   | d S )a}  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choroplethmapbox.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.choroplethmapbox.u
                    nselected.Marker` instance or dict with
                    compatible properties

        Returns
        -------
        plotly.graph_objs.choroplethmapbox.Unselected
        r   r   )r   r   r   r   r   7 s    zChoroplethmapbox.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   7 s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   7 s    zChoroplethmapbox.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   7 s    c             C   s   | d S )z
        Sets the color values.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   7 s    zChoroplethmapbox.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   8 s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  8 s    zChoroplethmapbox.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  8 s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  8 s    zChoroplethmapbox.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  -8 s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  38 s    zChoroplethmapbox.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  C8 s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  I8 s    zChoroplethmapbox.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  X8 s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   ^8 s    zChoroplethmapbox.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l8 s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   r8 s    zChoroplethmapbox.typec             C   s   dS )NrF   r   )r   r   r   r   rG   x8 s    z!Choroplethmapbox._parent_path_strc             C   s   dS )Na*          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        below
            Determines if the choropleth polygons will be inserted
            before the layer with the specified ID. By default,
            choroplethmapbox traces are placed above the water
            layers. If set to '', the layer will be inserted above
            every existing layer.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.choroplethmapbox.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        featureidkey
            Sets the key in GeoJSON features which is used as id to
            match the items included in the `locations` array.
            Support nested property, for example "properties.name".
        geojson
            Sets the GeoJSON data associated with this trace. It
            can be set as a valid GeoJSON object or as a URL
            string. Note that we only accept GeoJSONs of type
            "FeatureCollection" or "Feature" with geometries of
            type "Polygon" or "MultiPolygon".
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.choroplethmapbox.Hoverlabe
            l` instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `properties` Anything contained in
            tag `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        locations
            Sets which features found in "geojson" to plot using
            their feature `id` field.
        locationssrc
            Sets the source reference on plot.ly for  locations .
        marker
            :class:`plotly.graph_objects.choroplethmapbox.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        selected
            :class:`plotly.graph_objects.choroplethmapbox.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.choroplethmapbox.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a mapbox subplot. If "mapbox" (the default value),
            the data refer to `layout.mapbox`. If "mapbox2", the
            data refer to `layout.mapbox2`, and so on.
        text
            Sets the text elements associated with each location.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.choroplethmapbox.Unselecte
            d` instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        z
            Sets the color values.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   ~8 s     Yz#Choroplethmapbox._prop_descriptionsNc.       2         s 	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|.
dd| _ddlm}/ |/ | jd< |/ | jd	< |/ | jd
< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/  | jd< |/! | jd< |/" | jd< |/# | jd< |/$ | jd< |/% | jd< |/& | jd< |/' | jd < |/( | jd!< |/) | jd"< |/* | jd#< |/+ | jd$< |/, | jd%< |/- | jd&< |/. | jd'< |// | jd(< |/0 | jd)< |/1 | jd*< |/2 | jd+< |/3 | jd,< |/4 | jd-< |/5 | jd.< |/6 | jd/< |/7 | jd0< |/8 | jd1< |/9 | jd2< |/: | jd3< |
dd}0|dk	r|n|0| d< |
d	d}0|dk	r|n|0| d	< |
d
d}0|dk	r2|n|0| d
< |
dd}0|dk	rT|n|0| d< |
dd}0|dk	rv|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|	dk	r|	n|0| d< |
dd}0|
dk	r|
n|0| d< |
dd}0|dk	r |n|0| d< |
dd}0|dk	rB|n|0| d< |
dd}0|dk	rd|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r0|n|0| d< |
dd}0|dk	rR|n|0| d< |
dd}0|dk	rt|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
d d}0|dk	r|n|0| d < |
d!d}0|dk	r@|n|0| d!< |
d"d}0|dk	rb|n|0| d"< |
d#d}0|dk	r|n|0| d#< |
d$d}0|dk	r|n|0| d$< |
d%d}0|dk	r|n|0| d%< |
d&d}0| dk	r| n|0| d&< |
d'd}0|!dk	r|!n|0| d'< |
d(d}0|"dk	r.|"n|0| d(< |
d)d}0|#dk	rP|#n|0| d)< |
d*d}0|$dk	rr|$n|0| d*< |
d+d}0|%dk	r|%n|0| d+< |
d,d}0|&dk	r|&n|0| d,< |
d-d}0|'dk	r|'n|0| d-< |
d.d}0|(dk	r|(n|0| d.< |
d/d}0|)dk	r|)n|0| d/< |
d0d}0|*dk	r>|*n|0| d0< |
d1d}0|+dk	r`|+n|0| d1< |
d2d}0|,dk	r|,n|0| d2< |
d3d}0|-dk	r|-n|0| d3< dd4l;m<}1 d| j=d5< |1d5ddd6| jd5< |
d5d | j>f t|f|. d| _dS )7a,  
        Construct a new Choroplethmapbox object
        
        GeoJSON features to be filled are set in `geojson` The data
        that describes the choropleth value-to-color mapping is set in
        `locations` and `z`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.Choroplethmapbox`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        below
            Determines if the choropleth polygons will be inserted
            before the layer with the specified ID. By default,
            choroplethmapbox traces are placed above the water
            layers. If set to '', the layer will be inserted above
            every existing layer.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.choroplethmapbox.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        featureidkey
            Sets the key in GeoJSON features which is used as id to
            match the items included in the `locations` array.
            Support nested property, for example "properties.name".
        geojson
            Sets the GeoJSON data associated with this trace. It
            can be set as a valid GeoJSON object or as a URL
            string. Note that we only accept GeoJSONs of type
            "FeatureCollection" or "Feature" with geometries of
            type "Polygon" or "MultiPolygon".
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.choroplethmapbox.Hoverlabe
            l` instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variable `properties` Anything contained in
            tag `<extra>` is displayed in the secondary box, for
            example "<extra>{fullData.name}</extra>". To hide the
            secondary box completely, use an empty tag
            `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        locations
            Sets which features found in "geojson" to plot using
            their feature `id` field.
        locationssrc
            Sets the source reference on plot.ly for  locations .
        marker
            :class:`plotly.graph_objects.choroplethmapbox.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        selected
            :class:`plotly.graph_objects.choroplethmapbox.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.choroplethmapbox.Stream`
            instance or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a mapbox subplot. If "mapbox" (the default value),
            the data refer to `layout.mapbox`. If "mapbox2", the
            data refer to `layout.mapbox2`, and so on.
        text
            Sets the text elements associated with each location.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.choroplethmapbox.Unselecte
            d` instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        z
            Sets the color values.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Choroplethmapbox
        choroplethmapboxNzThe first argument to the plotly.graph_objs.Choroplethmapbox 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Choroplethmapbox`rJ   Fr   )r^  r   rm  r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r   r!   r"   r#   r   r   r*   r+   r   r,   rL  r-   r3   r7   r8   r   r9   r   r  r  r  r  r   )rK   rD   )rL   rM   r   )?rN   r]  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r^  r   r[   rs  r   r   r   r`   ra   r  r  re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r  r  r   rr   rs   rt   r   r   r{   r|   r   r}   rU  r~   r   r   r   r   r   r   r(  r  r*  r  r   r   rK   rE   r   )2r   r   r   rm  r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r   r!   r"   r#   r   r   r*   r+   r   r,   rL  r-   r3   r7   r8   r   r9   r   r  r  r  r  r   r   Zv_choroplethmapboxr   rK   )rQ   r   r   rO   X9 s0     


zChoroplethmapbox.__init__)-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)6r   r   r   r   r   r   rm  r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r   r!   r"   r#   r   r   r*   r+   r   r,   rL  r-   r3   r7   r8   r   r9   r   r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r]  H3 s   g.5# ]                                            r]  c            -       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1edd Z2edd Z3d fdd	Z4  Z5S )
Choroplethc             C   s   | d S )a	  
        Determines whether the colorscale is a default palette
        (`autocolorscale: true`) or the palette determined by
        `colorscale`. 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.
    
        The 'autocolorscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   7; s    zChoropleth.autocolorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J; s    c             C   s   | d S )a  
        Sets a reference to a shared color axis. References to these
        shared color axes are "coloraxis", "coloraxis2", "coloraxis3",
        etc. Settings for these shared color axes are set in the
        layout, under `layout.coloraxis`, `layout.coloraxis2`, etc.
        Note that multiple color scales can be linked to the same color
        axis.
    
        The 'coloraxis' property is an identifier of a particular
        subplot, of type 'coloraxis', that may be specified as the string 'coloraxis'
        optionally followed by an integer >= 1
        (e.g. 'coloraxis', 'coloraxis1', 'coloraxis2', 'coloraxis3', etc.)

        Returns
        -------
        str
        r   r   )r   r   r   r   r   P; s    zChoropleth.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   e; s    c             C   s   | d S )a,  
        The 'colorbar' property is an instance of ColorBar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choropleth.ColorBar`
          - A dict of string/value properties that will be passed
            to the ColorBar constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the color of padded area.
                bordercolor
                    Sets the axis line color.
                borderwidth
                    Sets the width (in px) or the border enclosing
                    this color bar.
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                len
                    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.
                lenmode
                    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.
                nticks
                    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".
                outlinecolor
                    Sets the axis line color.
                outlinewidth
                    Sets the width (in px) of the axis line.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                thickness
                    Sets the thickness of the color bar This
                    measure excludes the size of the padding, ticks
                    and labels.
                thicknessmode
                    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.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the color bar's tick label font
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.choropl
                    eth.colorbar.Tickformatstop` instances or dicts
                    with compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.choropleth.colorbar.tickformatstopdefaults),
                    sets the default property values to use for
                    elements of choropleth.colorbar.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    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.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.choropleth.colorba
                    r.Title` instance or dict with compatible
                    properties
                titlefont
                    Deprecated: Please use
                    choropleth.colorbar.title.font instead. Sets
                    this color bar's title font. Note that the
                    title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleside
                    Deprecated: Please use
                    choropleth.colorbar.title.side instead.
                    Determines the location of color bar's title
                    with respect to the color bar. Note that the
                    title's location used to be set by the now
                    deprecated `titleside` attribute.
                x
                    Sets the x position of the color bar (in plot
                    fraction).
                xanchor
                    Sets this color bar's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the color
                    bar.
                xpad
                    Sets the amount of padding (in px) along the x
                    direction.
                y
                    Sets the y position of the color bar (in plot
                    fraction).
                yanchor
                    Sets this color bar's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the color bar.
                ypad
                    Sets the amount of padding (in px) along the y
                    direction.

        Returns
        -------
        plotly.graph_objs.choropleth.ColorBar
        r   r   )r   r   r   r   r   k; s     dzChoropleth.colorbarc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P< s    c             C   s   | d S )a	  
        Sets the colorscale. 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`zmin` and `zmax`.
        Alternatively, `colorscale` may be a palette name string of the
        following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
        ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Vi
        ridis,Cividis.
    
        The 'colorscale' property is a colorscale and may be
        specified as:
          - A list of colors that will be spaced evenly to create the colorscale.
            Many predefined colorscale lists are included in the sequential, diverging,
            and cyclical modules in the plotly.colors package.
          - A list of 2-element lists where the first element is the
            normalized color level value (starting at 0 and ending at 1), 
            and the second item is a valid color string.
            (e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
          - One of the following named colorscales:
                ['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
                 'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
                 'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
                 'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
                 'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
                 'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
                 'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
                 'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
                 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
                 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
                 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
                 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
                 'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
                 'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd'].
            Appending '_r' to a named colorscale reverses it.

        Returns
        -------
        str
        r   r   )r   r   r   r   r   V< s    ,zChoropleth.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   < s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   < s    zChoropleth.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   < s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   < s    zChoropleth.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   < s    c             C   s   | d S )a  
        Sets the key in GeoJSON features which is used as id to match
        the items included in the `locations` array. Only has an effect
        when `geojson` is set. Support nested property, for example
        "properties.name".
    
        The 'featureidkey' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  < s    zChoropleth.featureidkeyc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  < s    c             C   s   | d S )a/  
        Sets a reference between this trace's geospatial coordinates
        and a geographic map. If "geo" (the default value), the
        geospatial coordinates refer to `layout.geo`. If "geo2", the
        geospatial coordinates refer to `layout.geo2`, and so on.
    
        The 'geo' property is an identifier of a particular
        subplot, of type 'geo', that may be specified as the string 'geo'
        optionally followed by an integer >= 1
        (e.g. 'geo', 'geo1', 'geo2', 'geo3', etc.)

        Returns
        -------
        str
        r  r   )r   r   r   r   r  < s    zChoropleth.geoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  < s    c             C   s   | d S )a  
        Sets optional GeoJSON data associated with this trace. If not
        given, the features on the base map are used. It can be set as
        a valid GeoJSON object or as a URL string. Note that we only
        accept GeoJSONs of type "FeatureCollection" or "Feature" with
        geometries of type "Polygon" or "MultiPolygon".
    
        The 'geojson' property accepts values of any type

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  < s    zChoropleth.geojsonc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  < s    c             C   s   | d S )ai  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['location', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'location+z')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   < s    zChoropleth.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   = s    zChoropleth.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   %= s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choropleth.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.choropleth.Hoverlabel
        r   r   )r   r   r   r   r   += s    3zChoropleth.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   `= s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   f= s    !zChoropleth.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   = s    zChoropleth.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   = s    zChoropleth.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   = s    zChoropleth.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   = s    zChoropleth.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   = s    zChoropleth.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   = s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   = s    zChoropleth.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   > s    c             C   s   | d S )aI  
        Determines the set of locations used to match entries in
        `locations` to regions on the map. Values "ISO-3", "USA-
        states", *country names* correspond to features on the base map
        and value "geojson-id" corresponds to features from a custom
        GeoJSON linked to the `geojson` attribute.
    
        The 'locationmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['ISO-3', 'USA-states', 'country names', 'geojson-id']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  > s    zChoropleth.locationmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  !> s    c             C   s   | d S )a"  
        Sets the coordinates via location IDs or names. See
        `locationmode` for more info.
    
        The 'locations' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  '> s    zChoropleth.locationsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  6> s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  locations .
    
        The 'locationssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  <> s    zChoropleth.locationssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  J> s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choropleth.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                line
                    :class:`plotly.graph_objects.choropleth.marker.
                    Line` instance or dict with compatible
                    properties
                opacity
                    Sets the opacity of the locations.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .

        Returns
        -------
        plotly.graph_objs.choropleth.Marker
        r   r   )r   r   r   r   r   P> s    zChoropleth.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   k> s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   q> s    zChoropleth.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   > s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   > s    zChoropleth.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   > s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   > s    zChoropleth.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   > s    c             C   s   | d S )aF  
        Reverses the color mapping if true. If true, `zmin` will
        correspond to the last color in the array and `zmax` will
        correspond to the first color.
    
        The 'reversescale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   > s    zChoropleth.reversescalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   > s    c             C   s   | d S )a_  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choropleth.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.choropleth.selecte
                    d.Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.choropleth.Selected
        r   r   )r   r   r   r   r   > s    zChoropleth.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   > s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   > s    zChoropleth.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   > s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   ? s    zChoropleth.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   ? s    c             C   s   | d S )z
        Determines whether or not a colorbar is displayed for this
        trace.
    
        The 'showscale' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r   r   )r   r   r   r   r   ? s    zChoropleth.showscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   %? s    c             C   s   | d S )an  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choropleth.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.choropleth.Stream
        r,   r   )r   r   r   r   r,   +? s    zChoropleth.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   F? s    c             C   s   | d S )a]  
        Sets the text elements associated with each location.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   L? s    zChoropleth.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   \? s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   b? s    zChoropleth.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   p? s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   v? s    zChoropleth.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   ? s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   ? s    zChoropleth.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   ? s    c             C   s   | d S )ak  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.choropleth.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.choropleth.unselec
                    ted.Marker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.choropleth.Unselected
        r   r   )r   r   r   r   r   ? s    zChoropleth.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ? s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   ? s    zChoropleth.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   ? s    c             C   s   | d S )z
        Sets the color values.
    
        The 'z' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   ? s    zChoropleth.zc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ? s    c             C   s   | d S )a  
        Determines whether or not the color domain is computed with
        respect to the input data (here in `z`) or the bounds set in
        `zmin` and `zmax`  Defaults to `false` when `zmin` and `zmax`
        are set by the user.
    
        The 'zauto' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r  r   )r   r   r   r   r  ? s    zChoropleth.zautoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  @ s    c             C   s   | d S )a+  
        Sets the upper bound of the color domain. Value should have the
        same units as in `z` and if set, `zmin` must be set as well.
    
        The 'zmax' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  @ s    zChoropleth.zmaxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  @ s    c             C   s   | d S )aq  
        Sets the mid-point of the color domain by scaling `zmin` and/or
        `zmax` to be equidistant to this point. Value should have the
        same units as in `z`. Has no effect when `zauto` is `false`.
    
        The 'zmid' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r   @ s    zChoropleth.zmidc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  0@ s    c             C   s   | d S )a+  
        Sets the lower bound of the color domain. Value should have the
        same units as in `z` and if set, `zmax` must be set as well.
    
        The 'zmin' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r  r   )r   r   r   r   r  6@ s    zChoropleth.zminc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  E@ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  z .
    
        The 'zsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   K@ s    zChoropleth.zsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Y@ s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   _@ s    zChoropleth.typec             C   s   dS )NrF   r   )r   r   r   r   rG   e@ s    zChoropleth._parent_path_strc             C   s   dS )NaU+          autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.choropleth.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        featureidkey
            Sets the key in GeoJSON features which is used as id to
            match the items included in the `locations` array. Only
            has an effect when `geojson` is set. Support nested
            property, for example "properties.name".
        geo
            Sets a reference between this trace's geospatial
            coordinates and a geographic map. If "geo" (the default
            value), the geospatial coordinates refer to
            `layout.geo`. If "geo2", the geospatial coordinates
            refer to `layout.geo2`, and so on.
        geojson
            Sets optional GeoJSON data associated with this trace.
            If not given, the features on the base map are used. It
            can be set as a valid GeoJSON object or as a URL
            string. Note that we only accept GeoJSONs of type
            "FeatureCollection" or "Feature" with geometries of
            type "Polygon" or "MultiPolygon".
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.choropleth.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        locationmode
            Determines the set of locations used to match entries
            in `locations` to regions on the map. Values "ISO-3",
            "USA-states", *country names* correspond to features on
            the base map and value "geojson-id" corresponds to
            features from a custom GeoJSON linked to the `geojson`
            attribute.
        locations
            Sets the coordinates via location IDs or names. See
            `locationmode` for more info.
        locationssrc
            Sets the source reference on plot.ly for  locations .
        marker
            :class:`plotly.graph_objects.choropleth.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        selected
            :class:`plotly.graph_objects.choropleth.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.choropleth.Stream`
            instance or dict with compatible properties
        text
            Sets the text elements associated with each location.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.choropleth.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        z
            Sets the color values.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .
        r   )r   r   r   r   rH   k@ s     \zChoropleth._prop_descriptionsNc.       2         s 	  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|.
dd| _ddlm}/ |/ | jd< |/ | jd	< |/ | jd
< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/ | jd< |/  | jd< |/! | jd< |/" | jd< |/# | jd< |/$ | jd< |/% | jd< |/& | jd< |/' | jd < |/( | jd!< |/) | jd"< |/* | jd#< |/+ | jd$< |/, | jd%< |/- | jd&< |/. | jd'< |// | jd(< |/0 | jd)< |/1 | jd*< |/2 | jd+< |/3 | jd,< |/4 | jd-< |/5 | jd.< |/6 | jd/< |/7 | jd0< |/8 | jd1< |/9 | jd2< |/: | jd3< |
dd}0|dk	r|n|0| d< |
d	d}0|dk	r|n|0| d	< |
d
d}0|dk	r2|n|0| d
< |
dd}0|dk	rT|n|0| d< |
dd}0|dk	rv|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|	dk	r|	n|0| d< |
dd}0|
dk	r|
n|0| d< |
dd}0|dk	r |n|0| d< |
dd}0|dk	rB|n|0| d< |
dd}0|dk	rd|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r0|n|0| d< |
dd}0|dk	rR|n|0| d< |
dd}0|dk	rt|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
dd}0|dk	r|n|0| d< |
d d}0|dk	r|n|0| d < |
d!d}0|dk	r@|n|0| d!< |
d"d}0|dk	rb|n|0| d"< |
d#d}0|dk	r|n|0| d#< |
d$d}0|dk	r|n|0| d$< |
d%d}0|dk	r|n|0| d%< |
d&d}0| dk	r| n|0| d&< |
d'd}0|!dk	r|!n|0| d'< |
d(d}0|"dk	r.|"n|0| d(< |
d)d}0|#dk	rP|#n|0| d)< |
d*d}0|$dk	rr|$n|0| d*< |
d+d}0|%dk	r|%n|0| d+< |
d,d}0|&dk	r|&n|0| d,< |
d-d}0|'dk	r|'n|0| d-< |
d.d}0|(dk	r|(n|0| d.< |
d/d}0|)dk	r|)n|0| d/< |
d0d}0|*dk	r>|*n|0| d0< |
d1d}0|+dk	r`|+n|0| d1< |
d2d}0|,dk	r|,n|0| d2< |
d3d}0|-dk	r|-n|0| d3< dd4l;m<}1 d| j=d5< |1d5ddd6| jd5< |
d5d | j>f t|f|. d| _dS )7a--  
        Construct a new Choropleth object
        
        The data that describes the choropleth value-to-color mapping
        is set in `z`. The geographic locations corresponding to each
        value in `z` are set in `locations`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Choropleth`
        autocolorscale
            Determines whether the colorscale is a default palette
            (`autocolorscale: true`) or the palette determined by
            `colorscale`. 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.
        coloraxis
            Sets a reference to a shared color axis. References to
            these shared color axes are "coloraxis", "coloraxis2",
            "coloraxis3", etc. Settings for these shared color axes
            are set in the layout, under `layout.coloraxis`,
            `layout.coloraxis2`, etc. Note that multiple color
            scales can be linked to the same color axis.
        colorbar
            :class:`plotly.graph_objects.choropleth.ColorBar`
            instance or dict with compatible properties
        colorscale
            Sets the colorscale. 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`zmin` and `zmax`.
            Alternatively, `colorscale` may be a palette name
            string of the following list: Greys,YlGnBu,Greens,YlOrR
            d,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,H
            ot,Blackbody,Earth,Electric,Viridis,Cividis.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        featureidkey
            Sets the key in GeoJSON features which is used as id to
            match the items included in the `locations` array. Only
            has an effect when `geojson` is set. Support nested
            property, for example "properties.name".
        geo
            Sets a reference between this trace's geospatial
            coordinates and a geographic map. If "geo" (the default
            value), the geospatial coordinates refer to
            `layout.geo`. If "geo2", the geospatial coordinates
            refer to `layout.geo2`, and so on.
        geojson
            Sets optional GeoJSON data associated with this trace.
            If not given, the features on the base map are used. It
            can be set as a valid GeoJSON object or as a URL
            string. Note that we only accept GeoJSONs of type
            "FeatureCollection" or "Feature" with geometries of
            type "Polygon" or "MultiPolygon".
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.choropleth.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        locationmode
            Determines the set of locations used to match entries
            in `locations` to regions on the map. Values "ISO-3",
            "USA-states", *country names* correspond to features on
            the base map and value "geojson-id" corresponds to
            features from a custom GeoJSON linked to the `geojson`
            attribute.
        locations
            Sets the coordinates via location IDs or names. See
            `locationmode` for more info.
        locationssrc
            Sets the source reference on plot.ly for  locations .
        marker
            :class:`plotly.graph_objects.choropleth.Marker`
            instance or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        reversescale
            Reverses the color mapping if true. If true, `zmin`
            will correspond to the last color in the array and
            `zmax` will correspond to the first color.
        selected
            :class:`plotly.graph_objects.choropleth.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        showscale
            Determines whether or not a colorbar is displayed for
            this trace.
        stream
            :class:`plotly.graph_objects.choropleth.Stream`
            instance or dict with compatible properties
        text
            Sets the text elements associated with each location.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.choropleth.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        z
            Sets the color values.
        zauto
            Determines whether or not the color domain is computed
            with respect to the input data (here in `z`) or the
            bounds set in `zmin` and `zmax`  Defaults to `false`
            when `zmin` and `zmax` are set by the user.
        zmax
            Sets the upper bound of the color domain. Value should
            have the same units as in `z` and if set, `zmin` must
            be set as well.
        zmid
            Sets the mid-point of the color domain by scaling
            `zmin` and/or `zmax` to be equidistant to this point.
            Value should have the same units as in `z`. Has no
            effect when `zauto` is `false`.
        zmin
            Sets the lower bound of the color domain. Value should
            have the same units as in `z` and if set, `zmax` must
            be set as well.
        zsrc
            Sets the source reference on plot.ly for  z .

        Returns
        -------
        Choropleth
        
choroplethNzThe first argument to the plotly.graph_objs.Choropleth 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Choropleth`rJ   Fr   )r`  r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r  r  r  r   r!   r"   r#   r   r   r*   r+   r   r,   r-   r3   r7   r8   r   r9   r   r  r  r  r  r   )rK   rD   )rL   rM   r   )?rN   r_  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r`  r   r[   r   r   r   r`   ra   r  r  r  re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r  r  r  r   rr   rs   rt   r   r   r{   r|   r   r}   r~   r   r   r   r   r   r   r(  r  r*  r  r   r   rK   rE   r   )2r   r   r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r  r  r  r   r!   r"   r#   r   r   r*   r+   r   r,   r-   r3   r7   r8   r   r9   r   r  r  r  r  r   r   Zv_choroplethr   rK   )rQ   r   r   rO   HA s0     


zChoropleth.__init__)-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)6r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r  r  r  r   r!   r"   r#   r   r   r*   r+   r   r,   r-   r3   r7   r8   r   r9   r   r  r  r  r  r   rD   rG   rH   rO   r   r   r   )rQ   r   r_  3; s   f.5# `                                            r_  c            !       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%edcdd Z&ededf Z'dj fdhdi	Z(  Z)S )kCarpetc             C   s   | d S )z
        An array containing values of the first parameter value
    
        The 'a' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rD  r   )r   r   r   r   rD  #C s    zCarpet.ac             C   s   || d< d S )NrD  r   )r   r   r   r   r   rD  1C s    c             C   s   | d S )a5  
        Alternate to `a`. Builds a linear space of a coordinates. Use
        with `da` where `a0` is the starting coordinate and `da` the
        step.
    
        The 'a0' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rM  r   )r   r   r   r   rM  7C s    z	Carpet.a0c             C   s   || d< d S )NrM  r   )r   r   r   r   r   rM  GC s    c             C   s   | d S )ai+  
        The 'aaxis' property is an instance of Aaxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.carpet.Aaxis`
          - A dict of string/value properties that will be passed
            to the Aaxis constructor
    
            Supported dict properties:
                
                arraydtick
                    The stride between grid lines along the axis
                arraytick0
                    The starting index of grid lines along the axis
                autorange
                    Determines whether or not the range of this
                    axis is computed in relation to the input data.
                    See `rangemode` for more info. If `range` is
                    provided, then `autorange` is set to False.
                categoryarray
                    Sets the order in which categories on this axis
                    appear. Only has an effect if `categoryorder`
                    is set to "array". Used with `categoryorder`.
                categoryarraysrc
                    Sets the source reference on plot.ly for
                    categoryarray .
                categoryorder
                    Specifies the ordering logic for the case of
                    categorical variables. By default, plotly uses
                    "trace", which specifies the order that is
                    present in the data supplied. Set
                    `categoryorder` to *category ascending* or
                    *category descending* if order should be
                    determined by the alphanumerical order of the
                    category names. Set `categoryorder` to "array"
                    to derive the ordering from the attribute
                    `categoryarray`. If a category is not found in
                    the `categoryarray` array, the sorting behavior
                    for that attribute will be identical to the
                    "trace" mode. The unspecified categories will
                    follow the categories in `categoryarray`.
                cheatertype
    
                color
                    Sets default for all colors associated with
                    this axis all at once: line, font, tick, and
                    grid colors. Grid color is lightened by
                    blending this with the plot background
                    Individual pieces can override this.
                dtick
                    The stride between grid lines along the axis
                endline
                    Determines whether or not a line is drawn at
                    along the final value of this axis. If True,
                    the end line is drawn on top of the grid lines.
                endlinecolor
                    Sets the line color of the end line.
                endlinewidth
                    Sets the width (in px) of the end line.
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                fixedrange
                    Determines whether or not this axis is zoom-
                    able. If true, then zoom is disabled.
                gridcolor
                    Sets the axis line color.
                gridwidth
                    Sets the width (in px) of the axis line.
                labelpadding
                    Extra padding between label and the axis
                labelprefix
                    Sets a axis label prefix.
                labelsuffix
                    Sets a axis label suffix.
                linecolor
                    Sets the axis line color.
                linewidth
                    Sets the width (in px) of the axis line.
                minorgridcolor
                    Sets the color of the grid lines.
                minorgridcount
                    Sets the number of minor grid ticks per major
                    grid tick
                minorgridwidth
                    Sets the width (in px) of the grid lines.
                nticks
                    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".
                range
                    Sets the range of this axis. If the axis `type`
                    is "log", then you must take the log of your
                    desired range (e.g. to set the range from 1 to
                    100, set the range from 0 to 2). If the axis
                    `type` is "date", it should be date strings,
                    like date data, though Date objects and unix
                    milliseconds will be accepted and converted to
                    strings. If the axis `type` is "category", it
                    should be numbers, using the scale where each
                    category is assigned a serial number from zero
                    in the order it appears.
                rangemode
                    If "normal", the range is computed in relation
                    to the extrema of the input data. If *tozero*`,
                    the range extends to 0, regardless of the input
                    data If "nonnegative", the range is non-
                    negative, regardless of the input data.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showgrid
                    Determines whether or not grid lines are drawn.
                    If True, the grid lines are drawn at every tick
                    mark.
                showline
                    Determines whether or not a line bounding this
                    axis is drawn.
                showticklabels
                    Determines whether axis labels are drawn on the
                    low side, the high side, both, or neither side
                    of the axis.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                smoothing
    
                startline
                    Determines whether or not a line is drawn at
                    along the starting value of this axis. If True,
                    the start line is drawn on top of the grid
                    lines.
                startlinecolor
                    Sets the line color of the start line.
                startlinewidth
                    Sets the width (in px) of the start line.
                tick0
                    The starting index of grid lines along the axis
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickfont
                    Sets the tick font.
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:  We add one item to d3's
                    date formatter: "%{n}f" for fractional seconds
                    with n digits. For example, *2016-10-13
                    09:15:23.456* with tickformat "%H~%M~%S.%2f"
                    would display "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.carpet.
                    aaxis.Tickformatstop` instances or dicts with
                    compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.carpet.aaxis.tickformatstopdefaults), sets
                    the default property values to use for elements
                    of carpet.aaxis.tickformatstops
                tickmode
    
                tickprefix
                    Sets a tick label prefix.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                title
                    :class:`plotly.graph_objects.carpet.aaxis.Title
                    ` instance or dict with compatible properties
                titlefont
                    Deprecated: Please use carpet.aaxis.title.font
                    instead. Sets this axis' title font. Note that
                    the title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleoffset
                    Deprecated: Please use
                    carpet.aaxis.title.offset instead. An
                    additional amount by which to offset the title
                    from the tick labels, given in pixels. Note
                    that this used to be set by the now deprecated
                    `titleoffset` attribute.
                type
                    Sets the axis type. By default, plotly attempts
                    to determined the axis type by looking into the
                    data of the traces that referenced the axis in
                    question.

        Returns
        -------
        plotly.graph_objs.carpet.Aaxis
        aaxisr   )r   r   r   r   rb  MC s     dzCarpet.aaxisc             C   s   || d< d S )Nrb  r   )r   r   r   r   r   rb  2D s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  a .
    
        The 'asrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rE  r   )r   r   r   r   rE  8D s    zCarpet.asrcc             C   s   || d< d S )NrE  r   )r   r   r   r   r   rE  FD s    c             C   s   | d S )z
        A two dimensional array of y coordinates at each carpet point.
    
        The 'b' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rF  r   )r   r   r   r   rF  LD s    zCarpet.bc             C   s   || d< d S )NrF  r   )r   r   r   r   r   rF  ZD s    c             C   s   | d S )a5  
        Alternate to `b`. Builds a linear space of a coordinates. Use
        with `db` where `b0` is the starting coordinate and `db` the
        step.
    
        The 'b0' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rO  r   )r   r   r   r   rO  `D s    z	Carpet.b0c             C   s   || d< d S )NrO  r   )r   r   r   r   r   rO  pD s    c             C   s   | d S )ai+  
        The 'baxis' property is an instance of Baxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.carpet.Baxis`
          - A dict of string/value properties that will be passed
            to the Baxis constructor
    
            Supported dict properties:
                
                arraydtick
                    The stride between grid lines along the axis
                arraytick0
                    The starting index of grid lines along the axis
                autorange
                    Determines whether or not the range of this
                    axis is computed in relation to the input data.
                    See `rangemode` for more info. If `range` is
                    provided, then `autorange` is set to False.
                categoryarray
                    Sets the order in which categories on this axis
                    appear. Only has an effect if `categoryorder`
                    is set to "array". Used with `categoryorder`.
                categoryarraysrc
                    Sets the source reference on plot.ly for
                    categoryarray .
                categoryorder
                    Specifies the ordering logic for the case of
                    categorical variables. By default, plotly uses
                    "trace", which specifies the order that is
                    present in the data supplied. Set
                    `categoryorder` to *category ascending* or
                    *category descending* if order should be
                    determined by the alphanumerical order of the
                    category names. Set `categoryorder` to "array"
                    to derive the ordering from the attribute
                    `categoryarray`. If a category is not found in
                    the `categoryarray` array, the sorting behavior
                    for that attribute will be identical to the
                    "trace" mode. The unspecified categories will
                    follow the categories in `categoryarray`.
                cheatertype
    
                color
                    Sets default for all colors associated with
                    this axis all at once: line, font, tick, and
                    grid colors. Grid color is lightened by
                    blending this with the plot background
                    Individual pieces can override this.
                dtick
                    The stride between grid lines along the axis
                endline
                    Determines whether or not a line is drawn at
                    along the final value of this axis. If True,
                    the end line is drawn on top of the grid lines.
                endlinecolor
                    Sets the line color of the end line.
                endlinewidth
                    Sets the width (in px) of the end line.
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                fixedrange
                    Determines whether or not this axis is zoom-
                    able. If true, then zoom is disabled.
                gridcolor
                    Sets the axis line color.
                gridwidth
                    Sets the width (in px) of the axis line.
                labelpadding
                    Extra padding between label and the axis
                labelprefix
                    Sets a axis label prefix.
                labelsuffix
                    Sets a axis label suffix.
                linecolor
                    Sets the axis line color.
                linewidth
                    Sets the width (in px) of the axis line.
                minorgridcolor
                    Sets the color of the grid lines.
                minorgridcount
                    Sets the number of minor grid ticks per major
                    grid tick
                minorgridwidth
                    Sets the width (in px) of the grid lines.
                nticks
                    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".
                range
                    Sets the range of this axis. If the axis `type`
                    is "log", then you must take the log of your
                    desired range (e.g. to set the range from 1 to
                    100, set the range from 0 to 2). If the axis
                    `type` is "date", it should be date strings,
                    like date data, though Date objects and unix
                    milliseconds will be accepted and converted to
                    strings. If the axis `type` is "category", it
                    should be numbers, using the scale where each
                    category is assigned a serial number from zero
                    in the order it appears.
                rangemode
                    If "normal", the range is computed in relation
                    to the extrema of the input data. If *tozero*`,
                    the range extends to 0, regardless of the input
                    data If "nonnegative", the range is non-
                    negative, regardless of the input data.
                separatethousands
                    If "true", even 4-digit integers are separated
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showgrid
                    Determines whether or not grid lines are drawn.
                    If True, the grid lines are drawn at every tick
                    mark.
                showline
                    Determines whether or not a line bounding this
                    axis is drawn.
                showticklabels
                    Determines whether axis labels are drawn on the
                    low side, the high side, both, or neither side
                    of the axis.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                smoothing
    
                startline
                    Determines whether or not a line is drawn at
                    along the starting value of this axis. If True,
                    the start line is drawn on top of the grid
                    lines.
                startlinecolor
                    Sets the line color of the start line.
                startlinewidth
                    Sets the width (in px) of the start line.
                tick0
                    The starting index of grid lines along the axis
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickfont
                    Sets the tick font.
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:  We add one item to d3's
                    date formatter: "%{n}f" for fractional seconds
                    with n digits. For example, *2016-10-13
                    09:15:23.456* with tickformat "%H~%M~%S.%2f"
                    would display "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.carpet.
                    baxis.Tickformatstop` instances or dicts with
                    compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.dat
                    a.carpet.baxis.tickformatstopdefaults), sets
                    the default property values to use for elements
                    of carpet.baxis.tickformatstops
                tickmode
    
                tickprefix
                    Sets a tick label prefix.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                title
                    :class:`plotly.graph_objects.carpet.baxis.Title
                    ` instance or dict with compatible properties
                titlefont
                    Deprecated: Please use carpet.baxis.title.font
                    instead. Sets this axis' title font. Note that
                    the title's font used to be set by the now
                    deprecated `titlefont` attribute.
                titleoffset
                    Deprecated: Please use
                    carpet.baxis.title.offset instead. An
                    additional amount by which to offset the title
                    from the tick labels, given in pixels. Note
                    that this used to be set by the now deprecated
                    `titleoffset` attribute.
                type
                    Sets the axis type. By default, plotly attempts
                    to determined the axis type by looking into the
                    data of the traces that referenced the axis in
                    question.

        Returns
        -------
        plotly.graph_objs.carpet.Baxis
        baxisr   )r   r   r   r   rc  vD s     dzCarpet.baxisc             C   s   || d< d S )Nrc  r   )r   r   r   r   r   rc  [E s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  b .
    
        The 'bsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rG  r   )r   r   r   r   rG  aE s    zCarpet.bsrcc             C   s   || d< d S )NrG  r   )r   r   r   r   r   rG  oE s    c             C   s   | d S )ab  
        An identifier for this carpet, so that `scattercarpet` and
        `contourcarpet` traces can specify a carpet plot on which they
        lie
    
        The 'carpet' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r  r   )r   r   r   r   r  uE s    zCarpet.carpetc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  E s    c             C   s   | d S )a&  
        The shift applied to each successive row of data in creating a
        cheater plot. Only used if `x` is been ommitted.
    
        The 'cheaterslope' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        cheatersloper   )r   r   r   r   rd  E s    zCarpet.cheaterslopec             C   s   || d< d S )Nrd  r   )r   r   r   r   r   rd  E s    c             C   s   | d S )a
  
        Sets default for all colors associated with this axis all at
        once: line, font, tick, and grid colors. Grid color is
        lightened by blending this with the plot background Individual
        pieces can override this.
    
        The 'color' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r  r   )r   r   r   r   r  E s    6zCarpet.colorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  E s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   E s    zCarpet.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   E s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   E s    zCarpet.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   F s    c             C   s   | d S )z
        Sets the a coordinate step. See `a0` for more info.
    
        The 'da' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rQ  r   )r   r   r   r   rQ  
F s    z	Carpet.dac             C   s   || d< d S )NrQ  r   )r   r   r   r   r   rQ  F s    c             C   s   | d S )z
        Sets the b coordinate step. See `b0` for more info.
    
        The 'db' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rR  r   )r   r   r   r   rR  F s    z	Carpet.dbc             C   s   || d< d S )NrR  r   )r   r   r   r   r   rR  ,F s    c             C   s   | d S )a  
        The default font used for axis & tick labels on this carpet
    
        The 'font' property is an instance of Font
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.carpet.Font`
          - A dict of string/value properties that will be passed
            to the Font constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.carpet.Font
        r  r   )r   r   r   r   r  2F s    %zCarpet.fontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  YF s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   _F s    z
Carpet.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   oF s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   uF s    zCarpet.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   F s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   F s    zCarpet.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   F s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   F s    zCarpet.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   F s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   F s    zCarpet.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   F s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   F s    zCarpet.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   F s    c             C   s   | d S )af  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.carpet.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.carpet.Stream
        r,   r   )r   r   r   r   r,   F s    zCarpet.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   F s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   G s    z
Carpet.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   G s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   G s    zCarpet.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   5G s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   ;G s    zCarpet.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   LG s    c             C   s   | d S )a[  
        A two dimensional array of x coordinates at each carpet point.
        If ommitted, the plot is a cheater plot and the xaxis is hidden
        by default.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   RG s    zCarpet.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   bG s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   hG s    zCarpet.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   {G s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   G s    zCarpet.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   G s    c             C   s   | d S )z
        A two dimensional array of y coordinates at each carpet point.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   G s    zCarpet.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   G s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   G s    zCarpet.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   G s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   G s    zCarpet.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   G s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   G s    zCarpet.typec             C   s   dS )NrF   r   )r   r   r   r   rG   G s    zCarpet._parent_path_strc             C   s   dS )NaX          a
            An array containing values of the first parameter value
        a0
            Alternate to `a`. Builds a linear space of a
            coordinates. Use with `da` where `a0` is the starting
            coordinate and `da` the step.
        aaxis
            :class:`plotly.graph_objects.carpet.Aaxis` instance or
            dict with compatible properties
        asrc
            Sets the source reference on plot.ly for  a .
        b
            A two dimensional array of y coordinates at each carpet
            point.
        b0
            Alternate to `b`. Builds a linear space of a
            coordinates. Use with `db` where `b0` is the starting
            coordinate and `db` the step.
        baxis
            :class:`plotly.graph_objects.carpet.Baxis` instance or
            dict with compatible properties
        bsrc
            Sets the source reference on plot.ly for  b .
        carpet
            An identifier for this carpet, so that `scattercarpet`
            and `contourcarpet` traces can specify a carpet plot on
            which they lie
        cheaterslope
            The shift applied to each successive row of data in
            creating a cheater plot. Only used if `x` is been
            ommitted.
        color
            Sets default for all colors associated with this axis
            all at once: line, font, tick, and grid colors. Grid
            color is lightened by blending this with the plot
            background Individual pieces can override this.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        da
            Sets the a coordinate step. See `a0` for more info.
        db
            Sets the b coordinate step. See `b0` for more info.
        font
            The default font used for axis & tick labels on this
            carpet
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        stream
            :class:`plotly.graph_objects.carpet.Stream` instance or
            dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            A two dimensional array of x coordinates at each carpet
            point. If ommitted, the plot is a cheater plot and the
            xaxis is hidden by default.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            A two dimensional array of y coordinates at each carpet
            point.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   G s     zCarpet._prop_descriptionsNc"       &         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|"
dd| _ddlm}# |# | jd< |# | jd	< |# | jd
< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |# | jd< |#  | jd< |#! | jd< |#" | jd< |## | jd< |#$ | jd< |#% | jd< |#& | jd< |#' | jd< |#( | jd < |#) | jd!< |#* | jd"< |#+ | jd#< |#, | jd$< |#- | jd%< |#. | jd&< |
dd}$|dk	rF|n|$| d< |
d	d}$|dk	rh|n|$| d	< |
d
d}$|dk	r|n|$| d
< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|	dk	r4|	n|$| d< |
dd}$|
dk	rV|
n|$| d< |
dd}$|dk	rx|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r |n|$| d< |
dd}$|dk	r"|n|$| d< |
dd}$|dk	rD|n|$| d< |
dd}$|dk	rf|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r|n|$| d< |
dd}$|dk	r2|n|$| d< |
dd}$|dk	rT|n|$| d< |
dd}$|dk	rv|n|$| d< |
d d}$|dk	r|n|$| d < |
d!d}$|dk	r|n|$| d!< |
d"d}$|dk	r|n|$| d"< |
d#d}$|dk	r|n|$| d#< |
d$d}$|dk	r |n|$| d$< |
d%d}$| dk	rB| n|$| d%< |
d&d}$|!dk	rd|!n|$| d&< dd'l/m0}% d| j1d(< |%d(ddd)| jd(< |
d(d | j2f t|f|" d| _dS )*a   
        Construct a new Carpet object
        
        The data describing carpet axis layout is set in `y` and
        (optionally) also `x`. If only `y` is present, `x` the plot is
        interpreted as a cheater plot and is filled in using the `y`
        values. `x` and `y` may either be 2D arrays matching with each
        dimension matching that of `a` and `b`, or they may be 1D
        arrays with total length equal to that of `a` and `b`.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Carpet`
        a
            An array containing values of the first parameter value
        a0
            Alternate to `a`. Builds a linear space of a
            coordinates. Use with `da` where `a0` is the starting
            coordinate and `da` the step.
        aaxis
            :class:`plotly.graph_objects.carpet.Aaxis` instance or
            dict with compatible properties
        asrc
            Sets the source reference on plot.ly for  a .
        b
            A two dimensional array of y coordinates at each carpet
            point.
        b0
            Alternate to `b`. Builds a linear space of a
            coordinates. Use with `db` where `b0` is the starting
            coordinate and `db` the step.
        baxis
            :class:`plotly.graph_objects.carpet.Baxis` instance or
            dict with compatible properties
        bsrc
            Sets the source reference on plot.ly for  b .
        carpet
            An identifier for this carpet, so that `scattercarpet`
            and `contourcarpet` traces can specify a carpet plot on
            which they lie
        cheaterslope
            The shift applied to each successive row of data in
            creating a cheater plot. Only used if `x` is been
            ommitted.
        color
            Sets default for all colors associated with this axis
            all at once: line, font, tick, and grid colors. Grid
            color is lightened by blending this with the plot
            background Individual pieces can override this.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        da
            Sets the a coordinate step. See `a0` for more info.
        db
            Sets the b coordinate step. See `b0` for more info.
        font
            The default font used for axis & tick labels on this
            carpet
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        stream
            :class:`plotly.graph_objects.carpet.Stream` instance or
            dict with compatible properties
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        x
            A two dimensional array of x coordinates at each carpet
            point. If ommitted, the plot is a cheater plot and the
            xaxis is hidden by default.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            A two dimensional array of y coordinates at each carpet
            point.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Carpet
        r  NzThe first argument to the plotly.graph_objs.Carpet 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Carpet`rJ   Fr   )r  rD  rM  rb  rE  rF  rO  rc  rG  rd  r  r   r   rQ  rR  r  r   r   r!   r"   r#   r'   r,   r7   r8   r9   r<   r>   r?   r@   rB   rC   )rK   rD   )rL   rM   r   )3rN   ra  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  rO  r[   rT  ZAaxisValidatorrP  rQ  rU  ZBaxisValidatorrR  r  ZCheaterslopeValidatorr  r`   ra   rV  rW  FontValidatorrl   rm   rr   rs   rt   rx   r}   r   r   r   r   r   r   r   r   r   r   rK   rE   r   )&r   r   rD  rM  rb  rE  rF  rO  rc  rG  r  rd  r  r   r   rQ  rR  r  r   r   r!   r"   r#   r'   r,   r7   r8   r9   r<   r>   r?   r@   rB   rC   r   Zv_carpetr   rK   )rQ   r   r   rO   fH s     9


zCarpet.__init__)!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)*r   r   r   r   rD  r   rM  rb  rE  rF  rO  rc  rG  r  rd  r  r   r   rQ  rR  r  r   r   r!   r"   r#   r'   r,   r7   r8   r9   r<   r>   r?   r@   rB   rC   rD   rG   rH   rO   r   r   r   )rQ   r   ra  C s    f f8'                                 ra  c            (       s8  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,edxdy Z-edzd{ Z.d fd}d~	Z/  Z0S )Candlestickc             C   s   | d S )z
        Sets the close values.
    
        The 'close' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  I s    zCandlestick.closec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  I s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  close .
    
        The 'closesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  I s    zCandlestick.closesrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  I s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   I s    zCandlestick.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   I s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   I s    zCandlestick.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J s    c             C   s   | d S )a`  
        The 'decreasing' property is an instance of Decreasing
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.candlestick.Decreasing`
          - A dict of string/value properties that will be passed
            to the Decreasing constructor
    
            Supported dict properties:
                
                fillcolor
                    Sets the fill color. Defaults to a half-
                    transparent variant of the line color, marker
                    color, or marker line color, whichever is
                    available.
                line
                    :class:`plotly.graph_objects.candlestick.decrea
                    sing.Line` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.candlestick.Decreasing
        r   r   )r   r   r   r   r   J s    zCandlestick.decreasingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   'J s    c             C   s   | d S )z
        Sets the high values.
    
        The 'high' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  -J s    zCandlestick.highc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ;J s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  high .
    
        The 'highsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  AJ s    zCandlestick.highsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  OJ s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   UJ s    zCandlestick.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   iJ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   oJ s    zCandlestick.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }J s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.candlestick.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .
                split
                    Show hover information (open, close, high, low)
                    in separate labels.

        Returns
        -------
        plotly.graph_objs.candlestick.Hoverlabel
        r   r   )r   r   r   r   r   J s    6zCandlestick.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   J s    zCandlestick.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   J s    zCandlestick.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   J s    zCandlestick.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   J s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   K s    zCandlestick.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   K s    c             C   s   | d S )a`  
        The 'increasing' property is an instance of Increasing
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.candlestick.Increasing`
          - A dict of string/value properties that will be passed
            to the Increasing constructor
    
            Supported dict properties:
                
                fillcolor
                    Sets the fill color. Defaults to a half-
                    transparent variant of the line color, marker
                    color, or marker line color, whichever is
                    available.
                line
                    :class:`plotly.graph_objects.candlestick.increa
                    sing.Line` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.candlestick.Increasing
        r   r   )r   r   r   r   r   K s    zCandlestick.increasingc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   0K s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   6K s    zCandlestick.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   GK s    c             C   s   | d S )a  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.candlestick.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                width
                    Sets the width (in px) of line bounding the
                    box(es). Note that this style setting can also
                    be set per direction via
                    `increasing.line.width` and
                    `decreasing.line.width`.

        Returns
        -------
        plotly.graph_objs.candlestick.Line
        r   r   )r   r   r   r   r   MK s    zCandlestick.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   eK s    c             C   s   | d S )z
        Sets the low values.
    
        The 'low' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  kK s    zCandlestick.lowc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  yK s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  low .
    
        The 'lowsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  K s    zCandlestick.lowsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  K s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   K s    zCandlestick.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   K s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   K s    zCandlestick.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   K s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   K s    zCandlestick.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   K s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   K s    zCandlestick.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   K s    c             C   s   | d S )z
        Sets the open values.
    
        The 'open' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  K s    zCandlestick.openc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  K s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  open .
    
        The 'opensrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  L s    zCandlestick.opensrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  L s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   L s    zCandlestick.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   'L s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   -L s    zCandlestick.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   <L s    c             C   s   | d S )ap  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.candlestick.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.candlestick.Stream
        r,   r   )r   r   r   r   r,   BL s    zCandlestick.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   ]L s    c             C   s   | d S )a  
        Sets hover text elements associated with each sample point. If
        a single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        this trace's sample points.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   cL s    zCandlestick.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   vL s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   |L s    zCandlestick.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   L s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   L s    zCandlestick.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   L s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   L s    zCandlestick.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   L s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   L s    zCandlestick.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   L s    c             C   s   | d S )aF  
        Sets the width of the whiskers relative to the box' width. For
        example, with 1, the whiskers are as wide as the box(es).
    
        The 'whiskerwidth' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        whiskerwidthr   )r   r   r   r   rg  L s    zCandlestick.whiskerwidthc             C   s   || d< d S )Nrg  r   )r   r   r   r   r   rg  L s    c             C   s   | d S )a  
        Sets the x coordinates. If absent, linear coordinate will be
        generated.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   L s    zCandlestick.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   M s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   M s    zCandlestick.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   M s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  !M s    zCandlestick.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  3M s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   9M s    zCandlestick.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   GM s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   MM s    zCandlestick.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   `M s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   fM s    zCandlestick.typec             C   s   dS )NrF   r   )r   r   r   r   rG   lM s    zCandlestick._parent_path_strc             C   s   dS )Na          close
            Sets the close values.
        closesrc
            Sets the source reference on plot.ly for  close .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        decreasing
            :class:`plotly.graph_objects.candlestick.Decreasing`
            instance or dict with compatible properties
        high
            Sets the high values.
        highsrc
            Sets the source reference on plot.ly for  high .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.candlestick.Hoverlabel`
            instance or dict with compatible properties
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        increasing
            :class:`plotly.graph_objects.candlestick.Increasing`
            instance or dict with compatible properties
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.candlestick.Line` instance
            or dict with compatible properties
        low
            Sets the low values.
        lowsrc
            Sets the source reference on plot.ly for  low .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        open
            Sets the open values.
        opensrc
            Sets the source reference on plot.ly for  open .
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.candlestick.Stream`
            instance or dict with compatible properties
        text
            Sets hover text elements associated with each sample
            point. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to this trace's sample points.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        whiskerwidth
            Sets the width of the whiskers relative to the box'
            width. For example, with 1, the whiskers are as wide as
            the box(es).
        x
            Sets the x coordinates. If absent, linear coordinate
            will be generated.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        r   )r   r   r   r   rH   rM s     zCandlestick._prop_descriptionsNc)       -         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|)
dd| _ddlm}* |* | jd< |* | jd	< |* | jd
< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |* | jd< |*  | jd< |*! | jd< |*" | jd< |*# | jd< |*$ | jd< |*% | jd< |*& | jd< |*' | jd < |*( | jd!< |*) | jd"< |** | jd#< |*+ | jd$< |*, | jd%< |*- | jd&< |*. | jd'< |*/ | jd(< |*0 | jd)< |*1 | jd*< |*2 | jd+< |*3 | jd,< |*4 | jd-< |*5 | jd.< |
dd}+|dk	r|n|+| d< |
d	d}+|dk	r|n|+| d	< |
d
d}+|dk	r|n|+| d
< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r0|n|+| d< |
dd}+|dk	rR|n|+| d< |
dd}+|dk	rt|n|+| d< |
dd}+|	dk	r|	n|+| d< |
dd}+|
dk	r|
n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r@|n|+| d< |
dd}+|dk	rb|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r.|n|+| d< |
dd}+|dk	rP|n|+| d< |
dd}+|dk	rr|n|+| d< |
dd}+|dk	r|n|+| d< |
dd}+|dk	r|n|+| d< |
d d}+|dk	r|n|+| d < |
d!d}+|dk	r|n|+| d!< |
d"d}+|dk	r|n|+| d"< |
d#d}+|dk	r>|n|+| d#< |
d$d}+|dk	r`|n|+| d$< |
d%d}+|dk	r|n|+| d%< |
d&d}+| dk	r| n|+| d&< |
d'd}+|!dk	r|!n|+| d'< |
d(d}+|"dk	r|"n|+| d(< |
d)d}+|#dk	r
|#n|+| d)< |
d*d}+|$dk	r,|$n|+| d*< |
d+d}+|%dk	rN|%n|+| d+< |
d,d}+|&dk	rp|&n|+| d,< |
d-d}+|'dk	r|'n|+| d-< |
d.d}+|(dk	r|(n|+| d.< dd/l6m7}, d| j8d0< |,d0ddd1| jd0< |
d0d | j9f t|f|) d| _dS )2a  
        Construct a new Candlestick object
        
        The candlestick is a style of financial chart describing open,
        high, low and close for a given `x` coordinate (most likely
        time). The boxes represent the spread between the `open` and
        `close` values and the lines represent the spread between the
        `low` and `high` values Sample points where the close value is
        higher (lower) then the open value are called increasing
        (decreasing). By default, increasing candles are drawn in green
        whereas decreasing are drawn in red.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Candlestick`
        close
            Sets the close values.
        closesrc
            Sets the source reference on plot.ly for  close .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        decreasing
            :class:`plotly.graph_objects.candlestick.Decreasing`
            instance or dict with compatible properties
        high
            Sets the high values.
        highsrc
            Sets the source reference on plot.ly for  high .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.candlestick.Hoverlabel`
            instance or dict with compatible properties
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        increasing
            :class:`plotly.graph_objects.candlestick.Increasing`
            instance or dict with compatible properties
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.candlestick.Line` instance
            or dict with compatible properties
        low
            Sets the low values.
        lowsrc
            Sets the source reference on plot.ly for  low .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        open
            Sets the open values.
        opensrc
            Sets the source reference on plot.ly for  open .
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.candlestick.Stream`
            instance or dict with compatible properties
        text
            Sets hover text elements associated with each sample
            point. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to this trace's sample points.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        whiskerwidth
            Sets the width of the whiskers relative to the box'
            width. For example, with 1, the whiskers are as wide as
            the box(es).
        x
            Sets the x coordinates. If absent, linear coordinate
            will be generated.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.

        Returns
        -------
        Candlestick
        candlestickNzThe first argument to the plotly.graph_objs.Candlestick 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Candlestick`rJ   Fr   )rh  r  r  r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r!   r"   r#   r'   r  r  r*   r+   r,   r-   r3   r7   r8   r9   rg  r<   r>   r  r?   rB   )rK   rD   )rL   rM   r   ):rN   rf  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rh  r  r[   r  r`   ra   rb   r  r  re   rf   rg   rj   rk   rl   rm   rn   rq   r   r  r  rr   rs   rt   rx   r  r  r{   r|   r}   r~   r   r   r   r   WhiskerwidthValidatorr   r   r  r   r   r   rK   rE   r   )-r   r   r  r  r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r!   r"   r#   r'   r  r  r*   r+   r,   r-   r3   r7   r8   r9   rg  r<   r>   r  r?   rB   r   Zv_candlestickr   rK   )rQ   r   r   rO   N s    S


zCandlestick.__init__)(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)1r   r   r   r   r  r   r  r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r  r!   r"   r#   r'   r  r  r*   r+   r,   r-   r3   r7   r8   r9   rg  r<   r>   r  r?   rB   rD   rG   rH   rO   r   r   r   )rQ   r   rf  I s   8                                        rf  c            G       s^  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?e?jdd Z?edd Z@e@jdd Z@edd ZAeAjdd ZAedd ZBeBjdd ZBedd ZCeCjdd ZCedd ZDeDjdd ZDedd ZEeEjdd ZEeddń ZFeFjddń ZFeddȄ ZGeGjddȄ ZGedd˄ ZHeHjdd˄ ZHedd΄ ZIeIjdd΄ ZIeddф ZJeJjddф ZJeddԄ ZKeddք ZLedd؄ ZMd܇ fddۄ	ZN  ZOS )Boxc             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same alignmentgroup. This controls whether bars
        compute their positional range dependently or independently.
    
        The 'alignmentgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   O s    zBox.alignmentgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O s    c             C   s   | d S )a  
        If True, the mean of the box(es)' underlying distribution is
        drawn as a dashed line inside the box(es). If "sd" the standard
        deviation is also drawn. Defaults to True when `mean` is set.
        Defaults to "sd" when `sd` is set Otherwise defaults to False.
    
        The 'boxmean' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, 'sd', False]

        Returns
        -------
        Any
        boxmeanr   )r   r   r   r   rk  O s    zBox.boxmeanc             C   s   || d< d S )Nrk  r   )r   r   r   r   r   rk  O s    c             C   s   | d S )aB  
        If "outliers", only the sample points lying outside the
        whiskers are shown If "suspectedoutliers", the outlier points
        are shown and points either less than 4*Q1-3*Q3 or greater than
        4*Q3-3*Q1 are highlighted (see `outliercolor`) If "all", all
        sample points are shown If False, only the box(es) are shown
        with no sample points Defaults to "suspectedoutliers" when
        `marker.outliercolor` or `marker.line.outliercolor` is set.
        Defaults to "all" under the q1/median/q3 signature. Otherwise
        defaults to "outliers".
    
        The 'boxpoints' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['all', 'outliers', 'suspectedoutliers', False]

        Returns
        -------
        Any
        	boxpointsr   )r   r   r   r   rl  O s    zBox.boxpointsc             C   s   || d< d S )Nrl  r   )r   r   r   r   r   rl  O s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   O s    zBox.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   O s    zBox.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   O s    c             C   s   | d S )z
        Sets the x coordinate step for multi-box traces set using
        q1/median/q3.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r    P s    zBox.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P s    c             C   s   | d S )z
        Sets the y coordinate step for multi-box traces set using
        q1/median/q3.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   P s    zBox.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $P s    c             C   s   | d S )a
  
        Sets the fill color. Defaults to a half-transparent variant of
        the line color, marker color, or marker line color, whichever
        is available.
    
        The 'fillcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        r   r   )r   r   r   r   r   *P s    5zBox.fillcolorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   aP s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   gP s    zBox.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   {P s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   P s    zBox.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.box.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.box.Hoverlabel
        r   r   )r   r   r   r   r   P s    3zBox.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P s    c             C   s   | d S )ah  
        Do the hover effects highlight individual boxes  or sample
        points or both?
    
        The 'hoveron' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['boxes', 'points'] joined with '+' characters
            (e.g. 'boxes+points')

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   P s    zBox.hoveronc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   P s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   P s    !zBox.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   
Q s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Q s    zBox.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   $Q s    zBox.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   4Q s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   :Q s    zBox.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   HQ s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   NQ s    zBox.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ^Q s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   dQ s    z
Box.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   rQ s    c             C   s   | d S )a  
        Sets the amount of jitter in the sample points drawn. If 0, the
        sample points align along the distribution axis. If 1, the
        sample points are drawn in a random jitter of width equal to
        the width of the box(es).
    
        The 'jitter' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   xQ s    z
Box.jitterc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Q s    zBox.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q s    c             C   s   | d S )aN  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.box.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor
    
            Supported dict properties:
                
                color
                    Sets the color of line bounding the box(es).
                width
                    Sets the width (in px) of line bounding the
                    box(es).

        Returns
        -------
        plotly.graph_objs.box.Line
        r   r   )r   r   r   r   r   Q s    zBox.linec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Q s    c             C   s   | d S )a  
        Sets the lower fence values. There should be as many items as
        the number of boxes desired. This attribute has effect only
        under the q1/median/q3 signature. If `lowerfence` is not
        provided but a sample (in `y` or `x`) is set, we compute the
        lower as the last sample point below 1.5 times the IQR.
    
        The 'lowerfence' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        
lowerfencer   )r   r   r   r   rm  Q s    zBox.lowerfencec             C   s   || d< d S )Nrm  r   )r   r   r   r   r   rm  Q s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  lowerfence .
    
        The 'lowerfencesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        lowerfencesrcr   )r   r   r   r   rn  Q s    zBox.lowerfencesrcc             C   s   || d< d S )Nrn  r   )r   r   r   r   r   rn  Q s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.box.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                color
                    Sets themarkercolor. 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.
                line
                    :class:`plotly.graph_objects.box.marker.Line`
                    instance or dict with compatible properties
                opacity
                    Sets the marker opacity.
                outliercolor
                    Sets the color of the outlier sample points.
                size
                    Sets the marker size (in px).
                symbol
                    Sets the marker symbol type. Adding 100 is
                    equivalent to appending "-open" to a symbol
                    name. Adding 200 is equivalent to appending
                    "-dot" to a symbol name. Adding 300 is
                    equivalent to appending "-open-dot" or "dot-
                    open" to a symbol name.

        Returns
        -------
        plotly.graph_objs.box.Marker
        r   r   )r   r   r   r   r   Q s    &z
Box.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   R s    c             C   s   | d S )a  
        Sets the mean values. There should be as many items as the
        number of boxes desired. This attribute has effect only under
        the q1/median/q3 signature. If `mean` is not provided but a
        sample (in `y` or `x`) is set, we compute the mean for each box
        using the sample values.
    
        The 'mean' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        meanr   )r   r   r   r   ro  R s    zBox.meanc             C   s   || d< d S )Nro  r   )r   r   r   r   r   ro  /R s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  mean .
    
        The 'meansrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        meansrcr   )r   r   r   r   rp  5R s    zBox.meansrcc             C   s   || d< d S )Nrp  r   )r   r   r   r   r   rp  CR s    c             C   s   | d S )a#  
        Sets the median values. There should be as many items as the
        number of boxes desired.
    
        The 'median' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        medianr   )r   r   r   r   rq  IR s    z
Box.medianc             C   s   || d< d S )Nrq  r   )r   r   r   r   r   rq  XR s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  median .
    
        The 'mediansrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        	mediansrcr   )r   r   r   r   rr  ^R s    zBox.mediansrcc             C   s   || d< d S )Nrr  r   )r   r   r   r   r   rr  lR s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   rR s    zBox.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   R s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   R s    zBox.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   R s    c             C   s   | d S )a  
        Sets the trace name. The trace name appear as the legend item
        and on hover. For box traces, the name will also be used for
        the position coordinate, if `x` and `x0` (`y` and `y0` if
        horizontal) are missing and the position axis is categorical
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   R s    zBox.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   R s    c             C   s   | d S )a  
        Determines whether or not notches are drawn. Notches displays a
        confidence interval around the median. We compute the
        confidence interval as median +/- 1.57 * IQR / sqrt(N), where
        IQR is the interquartile range and N is the sample size. If two
        boxes' notches do not overlap there is 95% confidence their
        medians differ. See
        https://sites.google.com/site/davidsstatistics/home/notched-
        box-plots for more info. Defaults to False unless `notchwidth`
        or `notchspan` is set.
    
        The 'notched' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        notchedr   )r   r   r   r   rs  R s    zBox.notchedc             C   s   || d< d S )Nrs  r   )r   r   r   r   r   rs  R s    c             C   s   | d S )a+  
        Sets the notch span from the boxes' `median` values. There
        should be as many items as the number of boxes desired. This
        attribute has effect only under the q1/median/q3 signature. If
        `notchspan` is not provided but a sample (in `y` or `x`) is
        set, we compute it as 1.57 * IQR / sqrt(N), where N is the
        sample size.
    
        The 'notchspan' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        	notchspanr   )r   r   r   r   rt  R s    zBox.notchspanc             C   s   || d< d S )Nrt  r   )r   r   r   r   r   rt  R s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  notchspan .
    
        The 'notchspansrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        notchspansrcr   )r   r   r   r   ru  R s    zBox.notchspansrcc             C   s   || d< d S )Nru  r   )r   r   r   r   r   ru  R s    c             C   s   | d S )aD  
        Sets the width of the notches relative to the box' width. For
        example, with 0, the notches are as wide as the box(es).
    
        The 'notchwidth' property is a number and may be specified as:
          - An int or float in the interval [0, 0.5]

        Returns
        -------
        int|float
        
notchwidthr   )r   r   r   r   rv  S s    zBox.notchwidthc             C   s   || d< d S )Nrv  r   )r   r   r   r   r   rv  S s    c             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same offsetgroup where bars of the same position
        coordinate will line up.
    
        The 'offsetgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r%   r   )r   r   r   r   r%   S s    zBox.offsetgroupc             C   s   || d< d S )Nr%   r   )r   r   r   r   r   r%   )S s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   /S s    zBox.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   =S s    c             C   s   | d S )a]  
        Sets the orientation of the box(es). If "v" ("h"), the
        distribution is visualized along the vertical (horizontal).
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(   CS s    zBox.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(   SS s    c             C   s   | d S )a  
        Sets the position of the sample points in relation to the
        box(es). If 0, the sample points are places over the center of
        the box(es). Positive (negative) values correspond to positions
        to the right (left) for vertical boxes and above (below) for
        horizontal boxes
    
        The 'pointpos' property is a number and may be specified as:
          - An int or float in the interval [-2, 2]

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   YS s    zBox.pointposc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   kS s    c             C   s   | d S )a#  
        Sets the Quartile 1 values. There should be as many items as
        the number of boxes desired.
    
        The 'q1' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        q1r   )r   r   r   r   rw  qS s    zBox.q1c             C   s   || d< d S )Nrw  r   )r   r   r   r   r   rw  S s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  q1 .
    
        The 'q1src' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        q1srcr   )r   r   r   r   rx  S s    z	Box.q1srcc             C   s   || d< d S )Nrx  r   )r   r   r   r   r   rx  S s    c             C   s   | d S )a#  
        Sets the Quartile 3 values. There should be as many items as
        the number of boxes desired.
    
        The 'q3' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        q3r   )r   r   r   r   ry  S s    zBox.q3c             C   s   || d< d S )Nry  r   )r   r   r   r   r   ry  S s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  q3 .
    
        The 'q3src' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        q3srcr   )r   r   r   r   rz  S s    z	Box.q3srcc             C   s   || d< d S )Nrz  r   )r   r   r   r   r   rz  S s    c             C   s   | d S )a  
        Sets the method used to compute the sample's Q1 and Q3
        quartiles. The "linear" method uses the 25th percentile for Q1
        and 75th percentile for Q3 as computed using method #10 (listed
        on http://www.amstat.org/publications/jse/v14n3/langford.html).
        The "exclusive" method uses the median to divide the ordered
        dataset into two halves if the sample is odd, it does not
        include the median in either half - Q1 is then the median of
        the lower half and Q3 the median of the upper half. The
        "inclusive" method also uses the median to divide the ordered
        dataset into two halves but if the sample is odd, it includes
        the median in both halves - Q1 is then the median of the lower
        half and Q3 the median of the upper half.
    
        The 'quartilemethod' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['linear', 'exclusive', 'inclusive']

        Returns
        -------
        Any
        quartilemethodr   )r   r   r   r   r{  S s    zBox.quartilemethodc             C   s   || d< d S )Nr{  r   )r   r   r   r   r   r{  S s    c             C   s   | d S )a	  
        Sets the standard deviation values. There should be as many
        items as the number of boxes desired. This attribute has effect
        only under the q1/median/q3 signature. If `sd` is not provided
        but a sample (in `y` or `x`) is set, we compute the standard
        deviation for each box using the sample values.
    
        The 'sd' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        sdr   )r   r   r   r   r|  S s    zBox.sdc             C   s   || d< d S )Nr|  r   )r   r   r   r   r   r|  S s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  sd .
    
        The 'sdsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        sdsrcr   )r   r   r   r   r}  S s    z	Box.sdsrcc             C   s   || d< d S )Nr}  r   )r   r   r   r   r   r}  	T s    c             C   s   | d S )a6  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.box.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.box.selected.Marke
                    r` instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.box.Selected
        r   r   )r   r   r   r   r   T s    zBox.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   $T s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   *T s    zBox.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   <T s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   BT s    zBox.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   QT s    c             C   s   | d S )a`  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.box.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.box.Stream
        r,   r   )r   r   r   r   r,   WT s    z
Box.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   rT s    c             C   s   | d S )a]  
        Sets the text elements associated with each sample value. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   xT s    zBox.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   T s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   T s    zBox.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   T s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   T s    zBox.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   T s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   T s    zBox.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   T s    c             C   s   | d S )aV  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.box.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.box.unselected.Mar
                    ker` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.box.Unselected
        r   r   )r   r   r   r   r   T s    zBox.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   T s    c             C   s   | d S )a  
        Sets the upper fence values. There should be as many items as
        the number of boxes desired. This attribute has effect only
        under the q1/median/q3 signature. If `upperfence` is not
        provided but a sample (in `y` or `x`) is set, we compute the
        lower as the last sample point above 1.5 times the IQR.
    
        The 'upperfence' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        
upperfencer   )r   r   r   r   r~  T s    zBox.upperfencec             C   s   || d< d S )Nr~  r   )r   r   r   r   r   r~  U s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  upperfence .
    
        The 'upperfencesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        upperfencesrcr   )r   r   r   r   r  U s    zBox.upperfencesrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  U s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   %U s    zBox.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   6U s    c             C   s   | d S )aF  
        Sets the width of the whiskers relative to the box' width. For
        example, with 1, the whiskers are as wide as the box(es).
    
        The 'whiskerwidth' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        rg  r   )r   r   r   r   rg  <U s    zBox.whiskerwidthc             C   s   || d< d S )Nrg  r   )r   r   r   r   r   rg  KU s    c             C   s   | d S )av  
        Sets the width of the box in data coordinate If 0 (default
        value) the width is automatically selected based on the
        positions of other box traces in the same subplot.
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r:   r   )r   r   r   r   r:   QU s    z	Box.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:   aU s    c             C   s   | d S )a  
        Sets the x sample data or coordinates. See overview for more
        info.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   gU s    zBox.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   vU s    c             C   s   | d S )a  
        Sets the x coordinate for single-box traces or the starting
        coordinate for multi-box traces set using q1/median/q3. See
        overview for more info.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   |U s    zBox.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=   U s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   U s    z	Box.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   U s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  U s    zBox.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  U s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   U s    zBox.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   U s    c             C   s   | d S )a  
        Sets the y sample data or coordinates. See overview for more
        info.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   U s    zBox.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   U s    c             C   s   | d S )a  
        Sets the y coordinate for single-box traces or the starting
        coordinate for multi-box traces set using q1/median/q3. See
        overview for more info.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA   U s    zBox.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA   U s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB    V s    z	Box.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   V s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  V s    zBox.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  +V s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   1V s    zBox.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   ?V s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   EV s    zBox.typec             C   s   dS )NrF   r   )r   r   r   r   rG   KV s    zBox._parent_path_strc             C   s   dS )Na@          alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        boxmean
            If True, the mean of the box(es)' underlying
            distribution is drawn as a dashed line inside the
            box(es). If "sd" the standard deviation is also drawn.
            Defaults to True when `mean` is set. Defaults to "sd"
            when `sd` is set Otherwise defaults to False.
        boxpoints
            If "outliers", only the sample points lying outside the
            whiskers are shown If "suspectedoutliers", the outlier
            points are shown and points either less than 4*Q1-3*Q3
            or greater than 4*Q3-3*Q1 are highlighted (see
            `outliercolor`) If "all", all sample points are shown
            If False, only the box(es) are shown with no sample
            points Defaults to "suspectedoutliers" when
            `marker.outliercolor` or `marker.line.outliercolor` is
            set. Defaults to "all" under the q1/median/q3
            signature. Otherwise defaults to "outliers".
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step for multi-box traces set
            using q1/median/q3.
        dy
            Sets the y coordinate step for multi-box traces set
            using q1/median/q3.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.box.Hoverlabel` instance
            or dict with compatible properties
        hoveron
            Do the hover effects highlight individual boxes  or
            sample points or both?
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        jitter
            Sets the amount of jitter in the sample points drawn.
            If 0, the sample points align along the distribution
            axis. If 1, the sample points are drawn in a random
            jitter of width equal to the width of the box(es).
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.box.Line` instance or dict
            with compatible properties
        lowerfence
            Sets the lower fence values. There should be as many
            items as the number of boxes desired. This attribute
            has effect only under the q1/median/q3 signature. If
            `lowerfence` is not provided but a sample (in `y` or
            `x`) is set, we compute the lower as the last sample
            point below 1.5 times the IQR.
        lowerfencesrc
            Sets the source reference on plot.ly for  lowerfence .
        marker
            :class:`plotly.graph_objects.box.Marker` instance or
            dict with compatible properties
        mean
            Sets the mean values. There should be as many items as
            the number of boxes desired. This attribute has effect
            only under the q1/median/q3 signature. If `mean` is not
            provided but a sample (in `y` or `x`) is set, we
            compute the mean for each box using the sample values.
        meansrc
            Sets the source reference on plot.ly for  mean .
        median
            Sets the median values. There should be as many items
            as the number of boxes desired.
        mediansrc
            Sets the source reference on plot.ly for  median .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover. For box traces, the name will
            also be used for the position coordinate, if `x` and
            `x0` (`y` and `y0` if horizontal) are missing and the
            position axis is categorical
        notched
            Determines whether or not notches are drawn. Notches
            displays a confidence interval around the median. We
            compute the confidence interval as median +/- 1.57 *
            IQR / sqrt(N), where IQR is the interquartile range and
            N is the sample size. If two boxes' notches do not
            overlap there is 95% confidence their medians differ.
            See https://sites.google.com/site/davidsstatistics/home
            /notched-box-plots for more info. Defaults to False
            unless `notchwidth` or `notchspan` is set.
        notchspan
            Sets the notch span from the boxes' `median` values.
            There should be as many items as the number of boxes
            desired. This attribute has effect only under the
            q1/median/q3 signature. If `notchspan` is not provided
            but a sample (in `y` or `x`) is set, we compute it as
            1.57 * IQR / sqrt(N), where N is the sample size.
        notchspansrc
            Sets the source reference on plot.ly for  notchspan .
        notchwidth
            Sets the width of the notches relative to the box'
            width. For example, with 0, the notches are as wide as
            the box(es).
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the box(es). If "v" ("h"), the
            distribution is visualized along the vertical
            (horizontal).
        pointpos
            Sets the position of the sample points in relation to
            the box(es). If 0, the sample points are places over
            the center of the box(es). Positive (negative) values
            correspond to positions to the right (left) for
            vertical boxes and above (below) for horizontal boxes
        q1
            Sets the Quartile 1 values. There should be as many
            items as the number of boxes desired.
        q1src
            Sets the source reference on plot.ly for  q1 .
        q3
            Sets the Quartile 3 values. There should be as many
            items as the number of boxes desired.
        q3src
            Sets the source reference on plot.ly for  q3 .
        quartilemethod
            Sets the method used to compute the sample's Q1 and Q3
            quartiles. The "linear" method uses the 25th percentile
            for Q1 and 75th percentile for Q3 as computed using
            method #10 (listed on http://www.amstat.org/publication
            s/jse/v14n3/langford.html). The "exclusive" method uses
            the median to divide the ordered dataset into two
            halves if the sample is odd, it does not include the
            median in either half - Q1 is then the median of the
            lower half and Q3 the median of the upper half. The
            "inclusive" method also uses the median to divide the
            ordered dataset into two halves but if the sample is
            odd, it includes the median in both halves - Q1 is then
            the median of the lower half and Q3 the median of the
            upper half.
        sd
            Sets the standard deviation values. There should be as
            many items as the number of boxes desired. This
            attribute has effect only under the q1/median/q3
            signature. If `sd` is not provided but a sample (in `y`
            or `x`) is set, we compute the standard deviation for
            each box using the sample values.
        sdsrc
            Sets the source reference on plot.ly for  sd .
        selected
            :class:`plotly.graph_objects.box.Selected` instance or
            dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.box.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with each sample
            value. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.box.Unselected` instance
            or dict with compatible properties
        upperfence
            Sets the upper fence values. There should be as many
            items as the number of boxes desired. This attribute
            has effect only under the q1/median/q3 signature. If
            `upperfence` is not provided but a sample (in `y` or
            `x`) is set, we compute the lower as the last sample
            point above 1.5 times the IQR.
        upperfencesrc
            Sets the source reference on plot.ly for  upperfence .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        whiskerwidth
            Sets the width of the whiskers relative to the box'
            width. For example, with 1, the whiskers are as wide as
            the box(es).
        width
            Sets the width of the box in data coordinate If 0
            (default value) the width is automatically selected
            based on the positions of other box traces in the same
            subplot.
        x
            Sets the x sample data or coordinates. See overview for
            more info.
        x0
            Sets the x coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y sample data or coordinates. See overview for
            more info.
        y0
            Sets the y coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   QV s      IzBox._prop_descriptionsNcH       L         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|H
dd| _ddlm}I |I | jd< |I | jd	< |I | jd
< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I | jd< |I  | jd< |I! | jd< |I" | jd< |I# | jd< |I$ | jd< |I% | jd< |I& | jd< |I' | jd < |I( | jd!< |I) | jd"< |I* | jd#< |I+ | jd$< |I, | jd%< |I- | jd&< |I. | jd'< |I/ | jd(< |I0 | jd)< |I1 | jd*< |I2 | jd+< |I3 | jd,< |I4 | jd-< |I5 | jd.< |I6 | jd/< |I7 | jd0< |I8 | jd1< |I9 | jd2< |I: | jd3< |I; | jd4< |I< | jd5< |I= | jd6< |I> | jd7< |I? | jd8< |I@ | jd9< |IA | jd:< |IB | jd;< |IC | jd<< |ID | jd=< |IE | jd>< |IF | jd?< |IG | jd@< |IH | jdA< |II | jdB< |IJ | jdC< |IK | jdD< |IL | jdE< |IM | jdF< |IN | jdG< |IO | jdH< |IP | jdI< |IQ | jdJ< |IR | jdK< |IS | jdL< |IT | jdM< |
dd}J|dk	rZ|n|J| d< |
d	d}J|dk	r||n|J| d	< |
d
d}J|dk	r|n|J| d
< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r&|n|J| d< |
dd}J|	dk	rH|	n|J| d< |
dd}J|
dk	rj|
n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r6|n|J| d< |
dd}J|dk	rX|n|J| d< |
dd}J|dk	rz|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r|n|J| d< |
dd}J|dk	r$|n|J| d< |
dd}J|dk	rF|n|J| d< |
dd}J|dk	rh|n|J| d< |
d d}J|dk	r|n|J| d < |
d!d}J|dk	r|n|J| d!< |
d"d}J|dk	r|n|J| d"< |
d#d}J|dk	r|n|J| d#< |
d$d}J|dk	r|n|J| d$< |
d%d}J|dk	r4|n|J| d%< |
d&d}J| dk	rV| n|J| d&< |
d'd}J|!dk	rx|!n|J| d'< |
d(d}J|"dk	r|"n|J| d(< |
d)d}J|#dk	r|#n|J| d)< |
d*d}J|$dk	r|$n|J| d*< |
d+d}J|%dk		r |%n|J| d+< |
d,d}J|&dk		r"|&n|J| d,< |
d-d}J|'dk		rD|'n|J| d-< |
d.d}J|(dk		rf|(n|J| d.< |
d/d}J|)dk		r|)n|J| d/< |
d0d}J|*dk		r|*n|J| d0< |
d1d}J|+dk		r|+n|J| d1< |
d2d}J|,dk		r|,n|J| d2< |
d3d}J|-dk	
r|-n|J| d3< |
d4d}J|.dk	
r2|.n|J| d4< |
d5d}J|/dk	
rT|/n|J| d5< |
d6d}J|0dk	
rv|0n|J| d6< |
d7d}J|1dk	
r|1n|J| d7< |
d8d}J|2dk	
r|2n|J| d8< |
d9d}J|3dk	
r|3n|J| d9< |
d:d}J|4dk	
r|4n|J| d:< |
d;d}J|5dk	r |5n|J| d;< |
d<d}J|6dk	rB|6n|J| d<< |
d=d}J|7dk	rd|7n|J| d=< |
d>d}J|8dk	r|8n|J| d>< |
d?d}J|9dk	r|9n|J| d?< |
d@d}J|:dk	r|:n|J| d@< |
dAd}J|;dk	r|;n|J| dA< |
dBd}J|<dk	r|<n|J| dB< |
dCd}J|=dk	r0|=n|J| dC< |
dDd}J|>dk	rR|>n|J| dD< |
dEd}J|?dk	rt|?n|J| dE< |
dFd}J|@dk	r|@n|J| dF< |
dGd}J|Adk	r|An|J| dG< |
dHd}J|Bdk	r|Bn|J| dH< |
dId}J|Cdk	r|Cn|J| dI< |
dJd}J|Ddk	r|Dn|J| dJ< |
dKd}J|Edk	r@|En|J| dK< |
dLd}J|Fdk	rb|Fn|J| dL< |
dMd}J|Gdk	r|Gn|J| dM< ddNlUmV}K d| jWdO< |KdOdddP| jdO< |
dOd | jXf t|f|H d| _dS )Qa\G  
        Construct a new Box object
        
        Each box spans from quartile 1 (Q1) to quartile 3 (Q3). The
        second quartile (Q2, i.e. the median) is marked by a line
        inside the box. The fences grow outward from the boxes' edges,
        by default they span +/- 1.5 times the interquartile range
        (IQR: Q3-Q1), The sample mean and standard deviation as well as
        notches and the sample, outlier and suspected outliers points
        can be optionally added to the box plot. The values and
        positions corresponding to each boxes can be input using two
        signatures. The first signature expects users to supply the
        sample values in the `y` data array for vertical boxes (`x` for
        horizontal boxes). By supplying an `x` (`y`) array, one box per
        distinct `x` (`y`) value is drawn If no `x` (`y`) list is
        provided, a single box is drawn. In this case, the box is
        positioned with the trace `name` or with `x0` (`y0`) if
        provided. The second signature expects users to supply the
        boxes corresponding Q1, median and Q3 statistics in the `q1`,
        `median` and `q3` data arrays respectively. Other box features
        relying on statistics namely `lowerfence`, `upperfence`,
        `notchspan` can be set directly by the users. To have plotly
        compute them or to show sample points besides the boxes, users
        can set the `y` data array for vertical boxes (`x` for
        horizontal boxes) to a 2D array with the outer length
        corresponding to the number of boxes in the traces and the
        inner length corresponding the sample size.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Box`
        alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        boxmean
            If True, the mean of the box(es)' underlying
            distribution is drawn as a dashed line inside the
            box(es). If "sd" the standard deviation is also drawn.
            Defaults to True when `mean` is set. Defaults to "sd"
            when `sd` is set Otherwise defaults to False.
        boxpoints
            If "outliers", only the sample points lying outside the
            whiskers are shown If "suspectedoutliers", the outlier
            points are shown and points either less than 4*Q1-3*Q3
            or greater than 4*Q3-3*Q1 are highlighted (see
            `outliercolor`) If "all", all sample points are shown
            If False, only the box(es) are shown with no sample
            points Defaults to "suspectedoutliers" when
            `marker.outliercolor` or `marker.line.outliercolor` is
            set. Defaults to "all" under the q1/median/q3
            signature. Otherwise defaults to "outliers".
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step for multi-box traces set
            using q1/median/q3.
        dy
            Sets the y coordinate step for multi-box traces set
            using q1/median/q3.
        fillcolor
            Sets the fill color. Defaults to a half-transparent
            variant of the line color, marker color, or marker line
            color, whichever is available.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.box.Hoverlabel` instance
            or dict with compatible properties
        hoveron
            Do the hover effects highlight individual boxes  or
            sample points or both?
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        jitter
            Sets the amount of jitter in the sample points drawn.
            If 0, the sample points align along the distribution
            axis. If 1, the sample points are drawn in a random
            jitter of width equal to the width of the box(es).
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        line
            :class:`plotly.graph_objects.box.Line` instance or dict
            with compatible properties
        lowerfence
            Sets the lower fence values. There should be as many
            items as the number of boxes desired. This attribute
            has effect only under the q1/median/q3 signature. If
            `lowerfence` is not provided but a sample (in `y` or
            `x`) is set, we compute the lower as the last sample
            point below 1.5 times the IQR.
        lowerfencesrc
            Sets the source reference on plot.ly for  lowerfence .
        marker
            :class:`plotly.graph_objects.box.Marker` instance or
            dict with compatible properties
        mean
            Sets the mean values. There should be as many items as
            the number of boxes desired. This attribute has effect
            only under the q1/median/q3 signature. If `mean` is not
            provided but a sample (in `y` or `x`) is set, we
            compute the mean for each box using the sample values.
        meansrc
            Sets the source reference on plot.ly for  mean .
        median
            Sets the median values. There should be as many items
            as the number of boxes desired.
        mediansrc
            Sets the source reference on plot.ly for  median .
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover. For box traces, the name will
            also be used for the position coordinate, if `x` and
            `x0` (`y` and `y0` if horizontal) are missing and the
            position axis is categorical
        notched
            Determines whether or not notches are drawn. Notches
            displays a confidence interval around the median. We
            compute the confidence interval as median +/- 1.57 *
            IQR / sqrt(N), where IQR is the interquartile range and
            N is the sample size. If two boxes' notches do not
            overlap there is 95% confidence their medians differ.
            See https://sites.google.com/site/davidsstatistics/home
            /notched-box-plots for more info. Defaults to False
            unless `notchwidth` or `notchspan` is set.
        notchspan
            Sets the notch span from the boxes' `median` values.
            There should be as many items as the number of boxes
            desired. This attribute has effect only under the
            q1/median/q3 signature. If `notchspan` is not provided
            but a sample (in `y` or `x`) is set, we compute it as
            1.57 * IQR / sqrt(N), where N is the sample size.
        notchspansrc
            Sets the source reference on plot.ly for  notchspan .
        notchwidth
            Sets the width of the notches relative to the box'
            width. For example, with 0, the notches are as wide as
            the box(es).
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the box(es). If "v" ("h"), the
            distribution is visualized along the vertical
            (horizontal).
        pointpos
            Sets the position of the sample points in relation to
            the box(es). If 0, the sample points are places over
            the center of the box(es). Positive (negative) values
            correspond to positions to the right (left) for
            vertical boxes and above (below) for horizontal boxes
        q1
            Sets the Quartile 1 values. There should be as many
            items as the number of boxes desired.
        q1src
            Sets the source reference on plot.ly for  q1 .
        q3
            Sets the Quartile 3 values. There should be as many
            items as the number of boxes desired.
        q3src
            Sets the source reference on plot.ly for  q3 .
        quartilemethod
            Sets the method used to compute the sample's Q1 and Q3
            quartiles. The "linear" method uses the 25th percentile
            for Q1 and 75th percentile for Q3 as computed using
            method #10 (listed on http://www.amstat.org/publication
            s/jse/v14n3/langford.html). The "exclusive" method uses
            the median to divide the ordered dataset into two
            halves if the sample is odd, it does not include the
            median in either half - Q1 is then the median of the
            lower half and Q3 the median of the upper half. The
            "inclusive" method also uses the median to divide the
            ordered dataset into two halves but if the sample is
            odd, it includes the median in both halves - Q1 is then
            the median of the lower half and Q3 the median of the
            upper half.
        sd
            Sets the standard deviation values. There should be as
            many items as the number of boxes desired. This
            attribute has effect only under the q1/median/q3
            signature. If `sd` is not provided but a sample (in `y`
            or `x`) is set, we compute the standard deviation for
            each box using the sample values.
        sdsrc
            Sets the source reference on plot.ly for  sd .
        selected
            :class:`plotly.graph_objects.box.Selected` instance or
            dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.box.Stream` instance or
            dict with compatible properties
        text
            Sets the text elements associated with each sample
            value. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        textsrc
            Sets the source reference on plot.ly for  text .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.box.Unselected` instance
            or dict with compatible properties
        upperfence
            Sets the upper fence values. There should be as many
            items as the number of boxes desired. This attribute
            has effect only under the q1/median/q3 signature. If
            `upperfence` is not provided but a sample (in `y` or
            `x`) is set, we compute the lower as the last sample
            point above 1.5 times the IQR.
        upperfencesrc
            Sets the source reference on plot.ly for  upperfence .
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        whiskerwidth
            Sets the width of the whiskers relative to the box'
            width. For example, with 1, the whiskers are as wide as
            the box(es).
        width
            Sets the width of the box in data coordinate If 0
            (default value) the width is automatically selected
            based on the positions of other box traces in the same
            subplot.
        x
            Sets the x sample data or coordinates. See overview for
            more info.
        x0
            Sets the x coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y sample data or coordinates. See overview for
            more info.
        y0
            Sets the y coordinate for single-box traces or the
            starting coordinate for multi-box traces set using
            q1/median/q3. See overview for more info.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Box
        r   Nz}The first argument to the plotly.graph_objs.Box 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Box`rJ   Fr   )r   r   rk  rl  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm  rn  r   ro  rp  rq  rr  r!   r"   r#   rs  rt  ru  rv  r%   r'   r(   r   rw  rx  ry  rz  r{  r|  r}  r   r*   r+   r,   r-   r3   r7   r8   r   r~  r  r9   rg  r:   r<   r=   r>   r  r?   r@   rA   rB   r  rC   )rK   rD   )rL   rM   r   )YrN   rj  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r   rZ   r[   ZBoxmeanValidatorZBoxpointsValidatorr`   ra   rc   rd   r   re   rf   rg   r   rh   ri   rj   rk   rl   rm   r   rq   r   ZLowerfenceValidatorZLowerfencesrcValidatorr   ZMeanValidatorZMeansrcValidatorZMedianValidatorZMediansrcValidatorrr   rs   rt   ZNotchedValidatorZNotchspanValidatorZNotchspansrcValidatorZNotchwidthValidatorrv   rx   ry   r   ZQ1ValidatorZQ1SrcValidatorZQ3ValidatorZQ3SrcValidatorZQuartilemethodValidatorZSdValidatorZSdsrcValidatorr   r{   r|   r}   r~   r   r   r   r   ZUpperfenceValidatorZUpperfencesrcValidatorr   ri  r   r   r   r   r  r   r   r   r   r  r   r   rK   rE   r   )Lr   r   r   rk  rl  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm  rn  r   ro  rp  rq  rr  r!   r"   r#   rs  rt  ru  rv  r%   r'   r(   r   rw  rx  ry  rz  r{  r|  r}  r   r*   r+   r,   r-   r3   r7   r8   r   r~  r  r9   rg  r:   r<   r=   r>   r  r?   r@   rA   rB   r  rC   r   Zv_boxr   rK   )rQ   r   r   rO   W s      8


zBox.__init__)GNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Pr   r   r   r   r   r   rk  rl  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm  rn  r   ro  rp  rq  rr  r!   r"   r#   rs  rt  ru  rv  r%   r'   r(   r   rw  rx  ry  rz  r{  r|  r}  r   r*   r+   r,   r-   r3   r7   r8   r   r~  r  r9   rg  r:   r<   r=   r>   r  r?   r@   rA   rB   r  rC   rD   rG   rH   rO   r   r   r   )rQ   r   rj  O s  75#(  M                                                                      rj  c            ,       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0edd Z1edd Z2d fdd	Z3  Z4S )Barpolarc             C   s   | d S )a2  
        Sets where the bar base is drawn (in radial axis units). In
        "stack" barmode, traces that set "base" will be excluded and
        drawn in "overlay" mode instead.
    
        The 'base' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r	   r   )r   r   r   r   r	   ^Z s    zBarpolar.basec             C   s   || d< d S )Nr	   r   )r   r   r   r   r   r	   mZ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  base .
    
        The 'basesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        basesrcr   )r   r   r   r   r  sZ s    zBarpolar.basesrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Z s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   Z s    zBarpolar.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Z s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Z s    zBarpolar.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Z s    c             C   s   | d S )z
        Sets the r coordinate step.
    
        The 'dr' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rW  r   )r   r   r   r   rW  Z s    zBarpolar.drc             C   s   || d< d S )NrW  r   )r   r   r   r   r   rW  Z s    c             C   s   | d S )a@  
        Sets the theta coordinate step. By default, the `dtheta` step
        equals the subplot's period divided by the length of the `r`
        coordinates.
    
        The 'dtheta' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        rX  r   )r   r   r   r   rX  Z s    zBarpolar.dthetac             C   s   || d< d S )NrX  r   )r   r   r   r   r   rX  Z s    c             C   s   | d S )ac  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['r', 'theta', 'text', 'name'] joined with '+' characters
            (e.g. 'r+theta')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   Z s    zBarpolar.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Z s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Z s    zBarpolar.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [ s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.barpolar.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.barpolar.Hoverlabel
        r   r   )r   r   r   r   r   
[ s    3zBarpolar.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ?[ s    c             C   s   | d S )a  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        Anything contained in tag `<extra>` is displayed in the
        secondary box, for example "<extra>{fullData.name}</extra>". To
        hide the secondary box completely, use an empty tag
        `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   E[ s    !zBarpolar.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   h[ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   n[ s    zBarpolar.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   |[ s    c             C   s   | d S )a<  
        Same as `text`.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   [ s    zBarpolar.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   [ s    zBarpolar.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [ s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   [ s    zBarpolar.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   [ s    zBarpolar.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [ s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   [ s    zBarpolar.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   [ s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.barpolar.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.barpolar.marker.Co
                    lorBar` instance or dict with compatible
                    properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.barpolar.marker.Li
                    ne` instance or dict with compatible properties
                opacity
                    Sets the opacity of the bars.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.

        Returns
        -------
        plotly.graph_objs.barpolar.Marker
        r   r   )r   r   r   r   r   [ s    ozBarpolar.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ^\ s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   d\ s    zBarpolar.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   z\ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   \ s    zBarpolar.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   \ s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   \ s    zBarpolar.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   \ s    c             C   s   | d S )aQ  
        Shifts the angular position where the bar is drawn (in
        "thetatunit" units).
    
        The 'offset' property is a number and may be specified as:
          - An int or float
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        r$   r   )r   r   r   r   r$   \ s    zBarpolar.offsetc             C   s   || d< d S )Nr$   r   )r   r   r   r   r   r$   \ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  offset .
    
        The 'offsetsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r&   r   )r   r   r   r   r&   \ s    zBarpolar.offsetsrcc             C   s   || d< d S )Nr&   r   )r   r   r   r   r   r&   \ s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   \ s    zBarpolar.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   \ s    c             C   s   | d S )z
        Sets the radial coordinates
    
        The 'r' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rY  r   )r   r   r   r   rY  \ s    z
Barpolar.rc             C   s   || d< d S )NrY  r   )r   r   r   r   r   rY  \ s    c             C   s   | d S )a	  
        Alternate to `r`. Builds a linear space of r coordinates. Use
        with `dr` where `r0` is the starting coordinate and `dr` the
        step.
    
        The 'r0' property accepts values of any type

        Returns
        -------
        Any
        rZ  r   )r   r   r   r   rZ  \ s    zBarpolar.r0c             C   s   || d< d S )NrZ  r   )r   r   r   r   r   rZ  ] s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  r .
    
        The 'rsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r[  r   )r   r   r   r   r[  ] s    zBarpolar.rsrcc             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  ] s    c             C   s   | d S )a  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.barpolar.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.barpolar.selected.
                    Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.barpolar.selected.
                    Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.barpolar.Selected
        r   r   )r   r   r   r   r   %] s    zBarpolar.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   ?] s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   E] s    zBarpolar.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   W] s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   ]] s    zBarpolar.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   l] s    c             C   s   | d S )aj  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.barpolar.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.barpolar.Stream
        r,   r   )r   r   r   r   r,   r] s    zBarpolar.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   ] s    c             C   s   | d S )a  
        Sets a reference between this trace's data coordinates and a
        polar subplot. If "polar" (the default value), the data refer
        to `layout.polar`. If "polar2", the data refer to
        `layout.polar2`, and so on.
    
        The 'subplot' property is an identifier of a particular
        subplot, of type 'polar', that may be specified as the string 'polar'
        optionally followed by an integer >= 1
        (e.g. 'polar', 'polar1', 'polar2', 'polar3', etc.)

        Returns
        -------
        str
        rL  r   )r   r   r   r   rL  ] s    zBarpolar.subplotc             C   s   || d< d S )NrL  r   )r   r   r   r   r   rL  ] s    c             C   s   | d S )a  
        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.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   ] s    zBarpolar.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   ] s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   ] s    zBarpolar.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   ] s    c             C   s   | d S )z
        Sets the angular coordinates
    
        The 'theta' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r\  r   )r   r   r   r   r\  ] s    zBarpolar.thetac             C   s   || d< d S )Nr\  r   )r   r   r   r   r   r\  ] s    c             C   s   | d S )a!  
        Alternate to `theta`. Builds a linear space of theta
        coordinates. Use with `dtheta` where `theta0` is the starting
        coordinate and `dtheta` the step.
    
        The 'theta0' property accepts values of any type

        Returns
        -------
        Any
        r]  r   )r   r   r   r   r]  ] s    zBarpolar.theta0c             C   s   || d< d S )Nr]  r   )r   r   r   r   r   r]  ] s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  theta .
    
        The 'thetasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r^  r   )r   r   r   r   r^  ^ s    zBarpolar.thetasrcc             C   s   || d< d S )Nr^  r   )r   r   r   r   r   r^  ^ s    c             C   s   | d S )aY  
        Sets the unit of input "theta" values. Has an effect only when
        on "linear" angular axes.
    
        The 'thetaunit' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['radians', 'degrees', 'gradians']

        Returns
        -------
        Any
        r_  r   )r   r   r   r   r_  ^ s    zBarpolar.thetaunitc             C   s   || d< d S )Nr_  r   )r   r   r   r   r   r_  &^ s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   ,^ s    zBarpolar.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   <^ s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   B^ s    zBarpolar.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   ]^ s    c             C   s   | d S )a"  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.barpolar.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.barpolar.unselecte
                    d.Marker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.barpolar.unselecte
                    d.Textfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.barpolar.Unselected
        r   r   )r   r   r   r   r   c^ s    zBarpolar.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   }^ s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   ^ s    zBarpolar.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   ^ s    c             C   s   | d S )aH  
        Sets the bar angular width (in "thetaunit" units).
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [0, inf]
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        r:   r   )r   r   r   r   r:   ^ s    zBarpolar.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:   ^ s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  width .
    
        The 'widthsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r;   r   )r   r   r   r   r;   ^ s    zBarpolar.widthsrcc             C   s   || d< d S )Nr;   r   )r   r   r   r   r   r;   ^ s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   ^ s    zBarpolar.typec             C   s   dS )NrF   r   )r   r   r   r   rG   ^ s    zBarpolar._parent_path_strc             C   s   dS )Na"          base
            Sets where the bar base is drawn (in radial axis
            units). In "stack" barmode, traces that set "base" will
            be excluded and drawn in "overlay" mode instead.
        basesrc
            Sets the source reference on plot.ly for  base .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dr
            Sets the r coordinate step.
        dtheta
            Sets the theta coordinate step. By default, the
            `dtheta` step equals the subplot's period divided by
            the length of the `r` coordinates.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.barpolar.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.barpolar.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the angular position where the bar is drawn (in
            "thetatunit" units).
        offsetsrc
            Sets the source reference on plot.ly for  offset .
        opacity
            Sets the opacity of the trace.
        r
            Sets the radial coordinates
        r0
            Alternate to `r`. Builds a linear space of r
            coordinates. Use with `dr` where `r0` is the starting
            coordinate and `dr` the step.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.barpolar.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.barpolar.Stream` instance
            or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a polar subplot. If "polar" (the default value),
            the data refer to `layout.polar`. If "polar2", the data
            refer to `layout.polar2`, and so on.
        text
            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.
        textsrc
            Sets the source reference on plot.ly for  text .
        theta
            Sets the angular coordinates
        theta0
            Alternate to `theta`. Builds a linear space of theta
            coordinates. Use with `dtheta` where `theta0` is the
            starting coordinate and `dtheta` the step.
        thetasrc
            Sets the source reference on plot.ly for  theta .
        thetaunit
            Sets the unit of input "theta" values. Has an effect
            only when on "linear" angular axes.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.barpolar.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar angular width (in "thetaunit" units).
        widthsrc
            Sets the source reference on plot.ly for  width .
        r   )r   r   r   r   rH   ^ s     6zBarpolar._prop_descriptionsNc-       1         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|-
dd| _ddlm}. |. | jd< |. | jd	< |. | jd
< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |. | jd< |.  | jd< |.! | jd< |." | jd< |.# | jd< |.$ | jd< |.% | jd< |.& | jd< |.' | jd < |.( | jd!< |.) | jd"< |.* | jd#< |.+ | jd$< |., | jd%< |.- | jd&< |.. | jd'< |./ | jd(< |.0 | jd)< |.1 | jd*< |.2 | jd+< |.3 | jd,< |.4 | jd-< |.5 | jd.< |.6 | jd/< |.7 | jd0< |.8 | jd1< |.9 | jd2< |
dd}/|dk	r|n|/| d< |
d	d}/|dk	r|n|/| d	< |
d
d}/|dk	r$|n|/| d
< |
dd}/|dk	rF|n|/| d< |
dd}/|dk	rh|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|	dk	r|	n|/| d< |
dd}/|
dk	r|
n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r4|n|/| d< |
dd}/|dk	rV|n|/| d< |
dd}/|dk	rx|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r |n|/| d< |
dd}/|dk	r"|n|/| d< |
dd}/|dk	rD|n|/| d< |
dd}/|dk	rf|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
dd}/|dk	r|n|/| d< |
d d}/|dk	r|n|/| d < |
d!d}/|dk	r2|n|/| d!< |
d"d}/|dk	rT|n|/| d"< |
d#d}/|dk	rv|n|/| d#< |
d$d}/|dk	r|n|/| d$< |
d%d}/|dk	r|n|/| d%< |
d&d}/| dk	r| n|/| d&< |
d'd}/|!dk	r|!n|/| d'< |
d(d}/|"dk	r |"n|/| d(< |
d)d}/|#dk	rB|#n|/| d)< |
d*d}/|$dk	rd|$n|/| d*< |
d+d}/|%dk	r|%n|/| d+< |
d,d}/|&dk	r|&n|/| d,< |
d-d}/|'dk	r|'n|/| d-< |
d.d}/|(dk	r|(n|/| d.< |
d/d}/|)dk	r|)n|/| d/< |
d0d}/|*dk	r0|*n|/| d0< |
d1d}/|+dk	rR|+n|/| d1< |
d2d}/|,dk	rt|,n|/| d2< dd3l:m;}0 d| j<d4< |0d4ddd5| jd4< |
d4d | j=f t|f|- d| _dS )6ak#  
        Construct a new Barpolar object
        
        The data visualized by the radial span of the bars is set in
        `r`

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Barpolar`
        base
            Sets where the bar base is drawn (in radial axis
            units). In "stack" barmode, traces that set "base" will
            be excluded and drawn in "overlay" mode instead.
        basesrc
            Sets the source reference on plot.ly for  base .
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dr
            Sets the r coordinate step.
        dtheta
            Sets the theta coordinate step. By default, the
            `dtheta` step equals the subplot's period divided by
            the length of the `r` coordinates.
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.barpolar.Hoverlabel`
            instance or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available.  Anything contained in tag `<extra>` is
            displayed in the secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Same as `text`.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.barpolar.Marker` instance
            or dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the angular position where the bar is drawn (in
            "thetatunit" units).
        offsetsrc
            Sets the source reference on plot.ly for  offset .
        opacity
            Sets the opacity of the trace.
        r
            Sets the radial coordinates
        r0
            Alternate to `r`. Builds a linear space of r
            coordinates. Use with `dr` where `r0` is the starting
            coordinate and `dr` the step.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.barpolar.Selected`
            instance or dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.barpolar.Stream` instance
            or dict with compatible properties
        subplot
            Sets a reference between this trace's data coordinates
            and a polar subplot. If "polar" (the default value),
            the data refer to `layout.polar`. If "polar2", the data
            refer to `layout.polar2`, and so on.
        text
            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.
        textsrc
            Sets the source reference on plot.ly for  text .
        theta
            Sets the angular coordinates
        theta0
            Alternate to `theta`. Builds a linear space of theta
            coordinates. Use with `dtheta` where `theta0` is the
            starting coordinate and `dtheta` the step.
        thetasrc
            Sets the source reference on plot.ly for  theta .
        thetaunit
            Sets the unit of input "theta" values. Has an effect
            only when on "linear" angular axes.
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.barpolar.Unselected`
            instance or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar angular width (in "thetaunit" units).
        widthsrc
            Sets the source reference on plot.ly for  width .

        Returns
        -------
        Barpolar
        barpolarNzThe first argument to the plotly.graph_objs.Barpolar 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Barpolar`rJ   Fr   )r  r	   r  r   r   rW  rX  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r&   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r3   r\  r]  r^  r_  r7   r8   r   r9   r:   r;   )rK   rD   )rL   rM   r   )>rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r\   r[   BasesrcValidatorr`   ra   ra  rb  re   rf   rg   rh   ri   rj   rk   rl   rm   rq   r   rr   rs   rt   ru   rw   rx   rc  rd  re  r   r{   r|   r}   rU  r~   r   rf  rg  rh  ri  r   r   r   r   r   r   r   rK   rE   r   )1r   r   r	   r  r   r   rW  rX  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r&   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r3   r\  r]  r^  r_  r7   r8   r   r9   r:   r;   r   Z
v_barpolarr   rK   )rQ   r   r   rO   _ s(    s


zBarpolar.__init__),NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)5r   r   r   r   r	   r   r  r   r   rW  rX  r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r&   r'   rY  rZ  r[  r   r*   r+   r,   rL  r-   r3   r\  r]  r^  r_  r7   r8   r   r9   r:   r;   rD   rG   rH   rO   r   r   r   )rQ   r   r  ZZ s  5#q :                                           r  c            B       s  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZejdEdD ZedFdG ZejdHdG ZedIdJ ZejdKdJ ZedLdM ZejdNdM ZedOdP ZejdQdP ZedRdS Z e jdTdS Z edUdV Z!e!jdWdV Z!edXdY Z"e"jdZdY Z"ed[d\ Z#e#jd]d\ Z#ed^d_ Z$e$jd`d_ Z$edadb Z%e%jdcdb Z%eddde Z&e&jdfde Z&edgdh Z'e'jdidh Z'edjdk Z(e(jdldk Z(edmdn Z)e)jdodn Z)edpdq Z*e*jdrdq Z*edsdt Z+e+jdudt Z+edvdw Z,e,jdxdw Z,edydz Z-e-jd{dz Z-ed|d} Z.e.jd~d} Z.edd Z/e/jdd Z/edd Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?e?jdd Z?edd Z@e@jdd Z@edd ZAeAjdd ZAedd ZBeBjdd ZBedd ZCeCjdd ZCedd ZDeDjdd ZDedd ZEeEjdd ZEeddń ZFeddǄ ZGeddɄ ZHd͇ fdd̄	ZI  ZJS )Barc             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same alignmentgroup. This controls whether bars
        compute their positional range dependently or independently.
    
        The 'alignmentgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   6a s    zBar.alignmentgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Ga s    c             C   s   | d S )aB  
        Sets where the bar base is drawn (in position axis units). In
        "stack" or "relative" barmode, traces that set "base" will be
        excluded and drawn in "overlay" mode instead.
    
        The 'base' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r	   r   )r   r   r   r   r	   Ma s    zBar.basec             C   s   || d< d S )Nr	   r   )r   r   r   r   r   r	   \a s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  base .
    
        The 'basesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  ba s    zBar.basesrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  pa s    c             C   s   | d S )a}  
        Determines whether the text nodes are clipped about the subplot
        axes. To show the text nodes above axis lines and tick labels,
        make sure to set `xaxis.layer` and `yaxis.layer` to *below
        traces*.
    
        The 'cliponaxis' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r
   r   )r   r   r   r   r
   va s    zBar.cliponaxisc             C   s   || d< d S )Nr
   r   )r   r   r   r   r   r
   a s    c             C   s   | d S )a_  
        Constrain the size of text inside or outside a bar to be no
        larger than the bar itself.
    
        The 'constraintext' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'both', 'none']

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   a s    zBar.constraintextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a s    c             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   a s    zBar.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   a s    zBar.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a s    c             C   s   | d S )z
        Sets the x coordinate step. See `x0` for more info.
    
        The 'dx' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   a s    zBar.dxc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a s    c             C   s   | d S )z
        Sets the y coordinate step. See `y0` for more info.
    
        The 'dy' property is a number and may be specified as:
          - An int or float

        Returns
        -------
        int|float
        r   r   )r   r   r   r   r   a s    zBar.dyc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   a s    c             C   s   | d S )a  
        The 'error_x' property is an instance of ErrorX
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.ErrorX`
          - A dict of string/value properties that will be passed
            to the ErrorX constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                copy_ystyle
    
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.bar.ErrorX
        ry  r   )r   r   r   r   ry  a s    IzBar.error_xc             C   s   || d< d S )Nry  r   )r   r   r   r   r   ry  Ab s    c             C   s   | d S )a  
        The 'error_y' property is an instance of ErrorY
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.ErrorY`
          - A dict of string/value properties that will be passed
            to the ErrorY constructor
    
            Supported dict properties:
                
                array
                    Sets the data corresponding the length of each
                    error bar. Values are plotted relative to the
                    underlying data.
                arrayminus
                    Sets the data corresponding the length of each
                    error bar in the bottom (left) direction for
                    vertical (horizontal) bars Values are plotted
                    relative to the underlying data.
                arrayminussrc
                    Sets the source reference on plot.ly for
                    arrayminus .
                arraysrc
                    Sets the source reference on plot.ly for  array
                    .
                color
                    Sets the stoke color of the error bars.
                symmetric
                    Determines whether or not the error bars have
                    the same length in both direction (top/bottom
                    for vertical bars, left/right for horizontal
                    bars.
                thickness
                    Sets the thickness (in px) of the error bars.
                traceref
    
                tracerefminus
    
                type
                    Determines the rule used to generate the error
                    bars. If *constant`, the bar lengths are of a
                    constant value. Set this constant in `value`.
                    If "percent", the bar lengths correspond to a
                    percentage of underlying data. Set this
                    percentage in `value`. If "sqrt", the bar
                    lengths correspond to the sqaure of the
                    underlying data. If "data", the bar lengths are
                    set with data set `array`.
                value
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars.
                valueminus
                    Sets the value of either the percentage (if
                    `type` is set to "percent") or the constant (if
                    `type` is set to "constant") corresponding to
                    the lengths of the error bars in the bottom
                    (left) direction for vertical (horizontal) bars
                visible
                    Determines whether or not this set of error
                    bars is visible.
                width
                    Sets the width (in px) of the cross-bar at both
                    ends of the error bars.

        Returns
        -------
        plotly.graph_objs.bar.ErrorY
        rz  r   )r   r   r   r   rz  Gb s    GzBar.error_yc             C   s   || d< d S )Nrz  r   )r   r   r   r   r   rz  b s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   b s    zBar.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   b s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   b s    zBar.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   b s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.bar.Hoverlabel
        r   r   )r   r   r   r   r   b s    3zBar.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   b s    c             C   s   | d S )a<  
        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}". Numbers are formatted using d3-format's syntax
        %{variable:d3-format}, for example "Price: %{y:$.2f}".
        https://github.com/d3/d3-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-
        data. Additionally, every attributes that can be specified per-
        point (the ones that are `arrayOk: true`) are available.
        variables `value` and `label`. Anything contained in tag
        `<extra>` is displayed in the secondary box, for example
        "<extra>{fullData.name}</extra>". To hide the secondary box
        completely, use an empty tag `<extra></extra>`.
    
        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   b s    !zBar.hovertemplatec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   "c s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertemplate .
    
        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   (c s    zBar.hovertemplatesrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   6c s    c             C   s   | d S )ab  
        Sets hover text elements associated with each (x,y) pair. If a
        single string, the same string appears over all the data
        points. If an array of string, the items are mapped in order to
        the this trace's (x,y) coordinates. To be seen, trace
        `hoverinfo` must contain a "text" flag.
    
        The 'hovertext' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   )r   r   r   r   r   <c s    zBar.hovertextc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Pc s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hovertext .
    
        The 'hovertextsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Vc s    zBar.hovertextsrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   dc s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   jc s    zBar.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   zc s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   c s    z
Bar.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c s    c             C   s   | d S )a[  
        Determines if texts are kept at center or start/end points in
        `textposition` "inside" mode.
    
        The 'insidetextanchor' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['end', 'middle', 'start']

        Returns
        -------
        Any
        r   r   )r   r   r   r   r   c s    zBar.insidetextanchorc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c s    c             C   s   | d S )ag  
        Sets the font used for `text` lying inside the bar.
    
        The 'insidetextfont' property is an instance of Insidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Insidetextfont`
          - A dict of string/value properties that will be passed
            to the Insidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.bar.Insidetextfont
        r   r   )r   r   r   r   r   c s    /zBar.insidetextfontc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   c s    zBar.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   c s    c             C   s   | d S )a  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                autocolorscale
                    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.
                cauto
                    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.
                cmax
                    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.
                cmid
                    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`.
                cmin
                    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.
                color
                    Sets themarkercolor. 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.
                coloraxis
                    Sets a reference to a shared color axis.
                    References to these shared color axes are
                    "coloraxis", "coloraxis2", "coloraxis3", etc.
                    Settings for these shared color axes are set in
                    the layout, under `layout.coloraxis`,
                    `layout.coloraxis2`, etc. Note that multiple
                    color scales can be linked to the same color
                    axis.
                colorbar
                    :class:`plotly.graph_objects.bar.marker.ColorBa
                    r` instance or dict with compatible properties
                colorscale
                    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:
                    Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                    ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                    arth,Electric,Viridis,Cividis.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                line
                    :class:`plotly.graph_objects.bar.marker.Line`
                    instance or dict with compatible properties
                opacity
                    Sets the opacity of the bars.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                reversescale
                    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.
                showscale
                    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.

        Returns
        -------
        plotly.graph_objs.bar.Marker
        r   r   )r   r   r   r   r   c s    nz
Bar.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   hd s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   nd s    zBar.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   d s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   d s    zBar.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   d s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   d s    zBar.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   d s    c             C   s   | d S )a  
        Shifts the position where the bar is drawn (in position axis
        units). In "group" barmode, traces that set "offset" will be
        excluded and drawn in "overlay" mode instead.
    
        The 'offset' property is a number and may be specified as:
          - An int or float
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        r$   r   )r   r   r   r   r$   d s    z
Bar.offsetc             C   s   || d< d S )Nr$   r   )r   r   r   r   r   r$   d s    c             C   s   | d S )a  
        Set several traces linked to the same position axis or matching
        axes to the same offsetgroup where bars of the same position
        coordinate will line up.
    
        The 'offsetgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r%   r   )r   r   r   r   r%   d s    zBar.offsetgroupc             C   s   || d< d S )Nr%   r   )r   r   r   r   r   r%   d s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  offset .
    
        The 'offsetsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r&   r   )r   r   r   r   r&   d s    zBar.offsetsrcc             C   s   || d< d S )Nr&   r   )r   r   r   r   r   r&   d s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   d s    zBar.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   e s    c             C   s   | d S )a]  
        Sets the orientation of the bars. With "v" ("h"), the value of
        the each bar spans along the vertical (horizontal).
    
        The 'orientation' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['v', 'h']

        Returns
        -------
        Any
        r(   r   )r   r   r   r   r(   
e s    zBar.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(   e s    c             C   s   | d S )am  
        Sets the font used for `text` lying outside the bar.
    
        The 'outsidetextfont' property is an instance of Outsidetextfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Outsidetextfont`
          - A dict of string/value properties that will be passed
            to the Outsidetextfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.bar.Outsidetextfont
        r)   r   )r   r   r   r   r)    e s    /zBar.outsidetextfontc             C   s   || d< d S )Nr)   r   )r   r   r   r   r   r)   Qe s    c             C   s   | d S )af  
        r coordinates in scatter traces are deprecated!Please switch to
        the "scatterpolar" trace type.Sets the radial coordinatesfor
        legacy polar chart only.
    
        The 'r' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rY  r   )r   r   r   r   rY  We s    zBar.rc             C   s   || d< d S )NrY  r   )r   r   r   r   r   rY  ge s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  r .
    
        The 'rsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r[  r   )r   r   r   r   r[  me s    zBar.rsrcc             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  {e s    c             C   s   | d S )a  
        The 'selected' property is an instance of Selected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Selected`
          - A dict of string/value properties that will be passed
            to the Selected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.bar.selected.Marke
                    r` instance or dict with compatible properties
                textfont
                    :class:`plotly.graph_objects.bar.selected.Textf
                    ont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.bar.Selected
        r   r   )r   r   r   r   r   e s    zBar.selectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   e s    c             C   s   | d S )a  
        Array containing integer indices of selected points. Has an
        effect only for traces that support selections. Note that an
        empty array means an empty selection where the `unselected` are
        turned on for all points, whereas, any other non-array values
        means no selection all where the `selected` and `unselected`
        styles have no effect.
    
        The 'selectedpoints' property accepts values of any type

        Returns
        -------
        Any
        r*   r   )r   r   r   r   r*   e s    zBar.selectedpointsc             C   s   || d< d S )Nr*   r   )r   r   r   r   r   r*   e s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   e s    zBar.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   e s    c             C   s   | d S )a`  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.bar.Stream
        r,   r   )r   r   r   r   r,   e s    z
Bar.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   e s    c             C   s   | d S )ag  
        t coordinates in scatter traces are deprecated!Please switch to
        the "scatterpolar" trace type.Sets the angular coordinatesfor
        legacy polar chart only.
    
        The 't' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  e s    zBar.tc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  e s    c             C   s   | d S )a  
        Sets text elements associated with each (x,y) pair. If a single
        string, the same string appears over all the data points. If an
        array of string, the items are mapped in order to the this
        trace's (x,y) coordinates. If trace `hoverinfo` contains a
        "text" flag and "hovertext" is not set, these elements will be
        seen in the hover labels.
    
        The 'text' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r-   r   )r   r   r   r   r-   f s    zBar.textc             C   s   || d< d S )Nr-   r   )r   r   r   r   r   r-   f s    c             C   s   | d S )a*  
        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.
    
        The 'textangle' property is a angle (in degrees) that may be
        specified as a number between -180 and 180. Numeric values outside this
        range are converted to the equivalent value
        (e.g. 270 is converted to -90).

        Returns
        -------
        int|float
        r.   r   )r   r   r   r   r.   f s    zBar.textanglec             C   s   || d< d S )Nr.   r   )r   r   r   r   r   r.   2f s    c             C   s   | d S )a4  
        Sets the font used for `text`.
    
        The 'textfont' property is an instance of Textfont
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Textfont`
          - A dict of string/value properties that will be passed
            to the Textfont constructor
    
            Supported dict properties:
                
                color
    
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                family
                    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 plotly service (at https://plot.ly
                    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".
                familysrc
                    Sets the source reference on plot.ly for
                    family .
                size
    
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .

        Returns
        -------
        plotly.graph_objs.bar.Textfont
        r/   r   )r   r   r   r   r/   8f s    /zBar.textfontc             C   s   || d< d S )Nr/   r   )r   r   r   r   r   r/   if s    c             C   s   | d S )a'  
        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.
    
        The 'textposition' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['inside', 'outside', 'auto', 'none']
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        Any|numpy.ndarray
        r1   r   )r   r   r   r   r1   of s    zBar.textpositionc             C   s   || d< d S )Nr1   r   )r   r   r   r   r   r1   f s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  textposition .
    
        The 'textpositionsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r2   r   )r   r   r   r   r2   f s    zBar.textpositionsrcc             C   s   || d< d S )Nr2   r   )r   r   r   r   r   r2   f s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  text .
    
        The 'textsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r3   r   )r   r   r   r   r3   f s    zBar.textsrcc             C   s   || d< d S )Nr3   r   )r   r   r   r   r   r3   f s    c             C   s   | d S )a  
        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-3.x-api-
        reference/blob/master/Formatting.md#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-3.x-api-
        reference/blob/master/Time-Formatting.md#format for details on
        the date formatting syntax. Every attributes that can be
        specified per-point (the ones that are `arrayOk: true`) are
        available. variables `value` and `label`.
    
        The 'texttemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r4   r   )r   r   r   r   r4   f s    zBar.texttemplatec             C   s   || d< d S )Nr4   r   )r   r   r   r   r   r4   f s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  texttemplate .
    
        The 'texttemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r5   r   )r   r   r   r   r5   f s    zBar.texttemplatesrcc             C   s   || d< d S )Nr5   r   )r   r   r   r   r   r5   f s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  t .
    
        The 'tsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  f s    zBar.tsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  f s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   f s    zBar.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   g s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   g s    zBar.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   /g s    c             C   s   | d S )a  
        The 'unselected' property is an instance of Unselected
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.bar.Unselected`
          - A dict of string/value properties that will be passed
            to the Unselected constructor
    
            Supported dict properties:
                
                marker
                    :class:`plotly.graph_objects.bar.unselected.Mar
                    ker` instance or dict with compatible
                    properties
                textfont
                    :class:`plotly.graph_objects.bar.unselected.Tex
                    tfont` instance or dict with compatible
                    properties

        Returns
        -------
        plotly.graph_objs.bar.Unselected
        r   r   )r   r   r   r   r   5g s    zBar.unselectedc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Og s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   Ug s    zBar.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   fg s    c             C   s   | d S )aB  
        Sets the bar width (in position axis units).
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [0, inf]
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        int|float|numpy.ndarray
        r:   r   )r   r   r   r   r:   lg s    z	Bar.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:   {g s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  width .
    
        The 'widthsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r;   r   )r   r   r   r   r;   g s    zBar.widthsrcc             C   s   || d< d S )Nr;   r   )r   r   r   r   r   r;   g s    c             C   s   | d S )z
        Sets the x coordinates.
    
        The 'x' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r<   r   )r   r   r   r   r<   g s    zBar.xc             C   s   || d< d S )Nr<   r   )r   r   r   r   r   r<   g s    c             C   s   | d S )a	  
        Alternate to `x`. Builds a linear space of x coordinates. Use
        with `dx` where `x0` is the starting coordinate and `dx` the
        step.
    
        The 'x0' property accepts values of any type

        Returns
        -------
        Any
        r=   r   )r   r   r   r   r=   g s    zBar.x0c             C   s   || d< d S )Nr=   r   )r   r   r   r   r   r=   g s    c             C   s   | d S )a  
        Sets a reference between this trace's x coordinates and a 2D
        cartesian x axis. If "x" (the default value), the x coordinates
        refer to `layout.xaxis`. If "x2", the x coordinates refer to
        `layout.xaxis2`, and so on.
    
        The 'xaxis' property is an identifier of a particular
        subplot, of type 'x', that may be specified as the string 'x'
        optionally followed by an integer >= 1
        (e.g. 'x', 'x1', 'x2', 'x3', etc.)

        Returns
        -------
        str
        r>   r   )r   r   r   r   r>   g s    z	Bar.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   g s    c             C   s   | d S )a  
        Sets the calendar system to use with `x` date data.
    
        The 'xcalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  g s    zBar.xcalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  g s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  x .
    
        The 'xsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r?   r   )r   r   r   r   r?   g s    zBar.xsrcc             C   s   || d< d S )Nr?   r   )r   r   r   r   r   r?   g s    c             C   s   | d S )z
        Sets the y coordinates.
    
        The 'y' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r@   r   )r   r   r   r   r@   h s    zBar.yc             C   s   || d< d S )Nr@   r   )r   r   r   r   r   r@   h s    c             C   s   | d S )a	  
        Alternate to `y`. Builds a linear space of y coordinates. Use
        with `dy` where `y0` is the starting coordinate and `dy` the
        step.
    
        The 'y0' property accepts values of any type

        Returns
        -------
        Any
        rA   r   )r   r   r   r   rA   h s    zBar.y0c             C   s   || d< d S )NrA   r   )r   r   r   r   r   rA   &h s    c             C   s   | d S )a  
        Sets a reference between this trace's y coordinates and a 2D
        cartesian y axis. If "y" (the default value), the y coordinates
        refer to `layout.yaxis`. If "y2", the y coordinates refer to
        `layout.yaxis2`, and so on.
    
        The 'yaxis' property is an identifier of a particular
        subplot, of type 'y', that may be specified as the string 'y'
        optionally followed by an integer >= 1
        (e.g. 'y', 'y1', 'y2', 'y3', etc.)

        Returns
        -------
        str
        rB   r   )r   r   r   r   rB   ,h s    z	Bar.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB   ?h s    c             C   s   | d S )a  
        Sets the calendar system to use with `y` date data.
    
        The 'ycalendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  Eh s    zBar.ycalendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Wh s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  y .
    
        The 'ysrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        rC   r   )r   r   r   r   rC   ]h s    zBar.ysrcc             C   s   || d< d S )NrC   r   )r   r   r   r   r   rC   kh s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   qh s    zBar.typec             C   s   dS )NrF   r   )r   r   r   r   rG   wh s    zBar._parent_path_strc             C   s   dS )Na5          alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        base
            Sets where the bar base is drawn (in position axis
            units). In "stack" or "relative" barmode, traces that
            set "base" will be excluded and drawn in "overlay" mode
            instead.
        basesrc
            Sets the source reference on plot.ly for  base .
        cliponaxis
            Determines whether the text nodes are clipped about the
            subplot axes. To show the text nodes above axis lines
            and tick labels, make sure to set `xaxis.layer` and
            `yaxis.layer` to *below traces*.
        constraintext
            Constrain the size of text inside or outside a bar to
            be no larger than the bar itself.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        error_x
            :class:`plotly.graph_objects.bar.ErrorX` instance or
            dict with compatible properties
        error_y
            :class:`plotly.graph_objects.bar.ErrorY` instance or
            dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.bar.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `value` and `label`. Anything
            contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextanchor
            Determines if texts are kept at center or start/end
            points in `textposition` "inside" mode.
        insidetextfont
            Sets the font used for `text` lying inside the bar.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.bar.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the position where the bar is drawn (in position
            axis units). In "group" barmode, traces that set
            "offset" will be excluded and drawn in "overlay" mode
            instead.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        offsetsrc
            Sets the source reference on plot.ly for  offset .
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the bars. With "v" ("h"), the
            value of the each bar spans along the vertical
            (horizontal).
        outsidetextfont
            Sets the font used for `text` lying outside the bar.
        r
            r coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the radial
            coordinatesfor legacy polar chart only.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.bar.Selected` instance or
            dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.bar.Stream` instance or
            dict with compatible properties
        t
            t coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the
            angular coordinatesfor legacy polar chart only.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textangle
            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.
        textfont
            Sets the font used for `text`.
        textposition
            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.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `value` and
            `label`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        tsrc
            Sets the source reference on plot.ly for  t .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.bar.Unselected` instance
            or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar width (in position axis units).
        widthsrc
            Sets the source reference on plot.ly for  width .
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .
        r   )r   r   r   r   rH   }h s      zBar._prop_descriptionsNcC       G         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|C
dd| _ddlm}D |D | jd< |D | jd	< |D | jd
< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D | jd< |D  | jd< |D! | jd< |D" | jd< |D# | jd< |D$ | jd< |D% | jd< |D& | jd< |D' | jd < |D( | jd!< |D) | jd"< |D* | jd#< |D+ | jd$< |D, | jd%< |D- | jd&< |D. | jd'< |D/ | jd(< |D0 | jd)< |D1 | jd*< |D2 | jd+< |D3 | jd,< |D4 | jd-< |D5 | jd.< |D6 | jd/< |D7 | jd0< |D8 | jd1< |D9 | jd2< |D: | jd3< |D; | jd4< |D< | jd5< |D= | jd6< |D> | jd7< |D? | jd8< |D@ | jd9< |DA | jd:< |DB | jd;< |DC | jd<< |DD | jd=< |DE | jd>< |DF | jd?< |DG | jd@< |DH | jdA< |DI | jdB< |DJ | jdC< |DK | jdD< |DL | jdE< |DM | jdF< |DN | jdG< |DO | jdH< |
dd}E|dk	r|n|E| d< |
d	d}E|dk	r6|n|E| d	< |
d
d}E|dk	rX|n|E| d
< |
dd}E|dk	rz|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|	dk	r|	n|E| d< |
dd}E|
dk	r$|
n|E| d< |
dd}E|dk	rF|n|E| d< |
dd}E|dk	rh|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r4|n|E| d< |
dd}E|dk	rV|n|E| d< |
dd}E|dk	rx|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r|n|E| d< |
dd}E|dk	r |n|E| d< |
dd}E|dk	r"|n|E| d< |
d d}E|dk	rD|n|E| d < |
d!d}E|dk	rf|n|E| d!< |
d"d}E|dk	r|n|E| d"< |
d#d}E|dk	r|n|E| d#< |
d$d}E|dk	r|n|E| d$< |
d%d}E|dk	r|n|E| d%< |
d&d}E| dk	r| n|E| d&< |
d'd}E|!dk	r2|!n|E| d'< |
d(d}E|"dk	rT|"n|E| d(< |
d)d}E|#dk	rv|#n|E| d)< |
d*d}E|$dk	r|$n|E| d*< |
d+d}E|%dk	r|%n|E| d+< |
d,d}E|&dk	r|&n|E| d,< |
d-d}E|'dk	r|'n|E| d-< |
d.d}E|(dk		r |(n|E| d.< |
d/d}E|)dk		rB|)n|E| d/< |
d0d}E|*dk		rd|*n|E| d0< |
d1d}E|+dk		r|+n|E| d1< |
d2d}E|,dk		r|,n|E| d2< |
d3d}E|-dk		r|-n|E| d3< |
d4d}E|.dk		r|.n|E| d4< |
d5d}E|/dk	
r|/n|E| d5< |
d6d}E|0dk	
r0|0n|E| d6< |
d7d}E|1dk	
rR|1n|E| d7< |
d8d}E|2dk	
rt|2n|E| d8< |
d9d}E|3dk	
r|3n|E| d9< |
d:d}E|4dk	
r|4n|E| d:< |
d;d}E|5dk	
r|5n|E| d;< |
d<d}E|6dk	
r|6n|E| d<< |
d=d}E|7dk	r|7n|E| d=< |
d>d}E|8dk	r@|8n|E| d>< |
d?d}E|9dk	rb|9n|E| d?< |
d@d}E|:dk	r|:n|E| d@< |
dAd}E|;dk	r|;n|E| dA< |
dBd}E|<dk	r|<n|E| dB< |
dCd}E|=dk	r|=n|E| dC< |
dDd}E|>dk	r|>n|E| dD< |
dEd}E|?dk	r.|?n|E| dE< |
dFd}E|@dk	rP|@n|E| dF< |
dGd}E|Adk	rr|An|E| dG< |
dHd}E|Bdk	r|Bn|E| dH< ddIlPmQ}F d| jRdJ< |FdJdddK| jdJ< |
dJd | jSf t|f|C d| _dS )La7  
        Construct a new Bar object
        
        The data visualized by the span of the bars is set in `y` if
        `orientation` is set th "v" (the default) and the labels are
        set in `x`. By setting `orientation` to "h", the roles are
        interchanged.

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Bar`
        alignmentgroup
            Set several traces linked to the same position axis or
            matching axes to the same alignmentgroup. This controls
            whether bars compute their positional range dependently
            or independently.
        base
            Sets where the bar base is drawn (in position axis
            units). In "stack" or "relative" barmode, traces that
            set "base" will be excluded and drawn in "overlay" mode
            instead.
        basesrc
            Sets the source reference on plot.ly for  base .
        cliponaxis
            Determines whether the text nodes are clipped about the
            subplot axes. To show the text nodes above axis lines
            and tick labels, make sure to set `xaxis.layer` and
            `yaxis.layer` to *below traces*.
        constraintext
            Constrain the size of text inside or outside a bar to
            be no larger than the bar itself.
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        dx
            Sets the x coordinate step. See `x0` for more info.
        dy
            Sets the y coordinate step. See `y0` for more info.
        error_x
            :class:`plotly.graph_objects.bar.ErrorX` instance or
            dict with compatible properties
        error_y
            :class:`plotly.graph_objects.bar.ErrorY` instance or
            dict with compatible properties
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.bar.Hoverlabel` instance
            or dict with compatible properties
        hovertemplate
            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}". Numbers are formatted using
            d3-format's syntax %{variable:d3-format}, for example
            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#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://plot.ly/javascript/plotlyjs-events/#event-data.
            Additionally, every attributes that can be specified
            per-point (the ones that are `arrayOk: true`) are
            available. variables `value` and `label`. Anything
            contained in tag `<extra>` is displayed in the
            secondary box, for example
            "<extra>{fullData.name}</extra>". To hide the secondary
            box completely, use an empty tag `<extra></extra>`.
        hovertemplatesrc
            Sets the source reference on plot.ly for  hovertemplate
            .
        hovertext
            Sets hover text elements associated with each (x,y)
            pair. If a single string, the same string appears over
            all the data points. If an array of string, the items
            are mapped in order to the this trace's (x,y)
            coordinates. To be seen, trace `hoverinfo` must contain
            a "text" flag.
        hovertextsrc
            Sets the source reference on plot.ly for  hovertext .
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        insidetextanchor
            Determines if texts are kept at center or start/end
            points in `textposition` "inside" mode.
        insidetextfont
            Sets the font used for `text` lying inside the bar.
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.bar.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        offset
            Shifts the position where the bar is drawn (in position
            axis units). In "group" barmode, traces that set
            "offset" will be excluded and drawn in "overlay" mode
            instead.
        offsetgroup
            Set several traces linked to the same position axis or
            matching axes to the same offsetgroup where bars of the
            same position coordinate will line up.
        offsetsrc
            Sets the source reference on plot.ly for  offset .
        opacity
            Sets the opacity of the trace.
        orientation
            Sets the orientation of the bars. With "v" ("h"), the
            value of the each bar spans along the vertical
            (horizontal).
        outsidetextfont
            Sets the font used for `text` lying outside the bar.
        r
            r coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the radial
            coordinatesfor legacy polar chart only.
        rsrc
            Sets the source reference on plot.ly for  r .
        selected
            :class:`plotly.graph_objects.bar.Selected` instance or
            dict with compatible properties
        selectedpoints
            Array containing integer indices of selected points.
            Has an effect only for traces that support selections.
            Note that an empty array means an empty selection where
            the `unselected` are turned on for all points, whereas,
            any other non-array values means no selection all where
            the `selected` and `unselected` styles have no effect.
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.bar.Stream` instance or
            dict with compatible properties
        t
            t coordinates in scatter traces are deprecated!Please
            switch to the "scatterpolar" trace type.Sets the
            angular coordinatesfor legacy polar chart only.
        text
            Sets text elements associated with each (x,y) pair. If
            a single string, the same string appears over all the
            data points. If an array of string, the items are
            mapped in order to the this trace's (x,y) coordinates.
            If trace `hoverinfo` contains a "text" flag and
            "hovertext" is not set, these elements will be seen in
            the hover labels.
        textangle
            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.
        textfont
            Sets the font used for `text`.
        textposition
            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.
        textpositionsrc
            Sets the source reference on plot.ly for  textposition
            .
        textsrc
            Sets the source reference on plot.ly for  text .
        texttemplate
            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-3.x-api-
            reference/blob/master/Formatting.md#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-3.x-api-
            reference/blob/master/Time-Formatting.md#format for
            details on the date formatting syntax. Every attributes
            that can be specified per-point (the ones that are
            `arrayOk: true`) are available. variables `value` and
            `label`.
        texttemplatesrc
            Sets the source reference on plot.ly for  texttemplate
            .
        tsrc
            Sets the source reference on plot.ly for  t .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        unselected
            :class:`plotly.graph_objects.bar.Unselected` instance
            or dict with compatible properties
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        width
            Sets the bar width (in position axis units).
        widthsrc
            Sets the source reference on plot.ly for  width .
        x
            Sets the x coordinates.
        x0
            Alternate to `x`. Builds a linear space of x
            coordinates. Use with `dx` where `x0` is the starting
            coordinate and `dx` the step.
        xaxis
            Sets a reference between this trace's x coordinates and
            a 2D cartesian x axis. If "x" (the default value), the
            x coordinates refer to `layout.xaxis`. If "x2", the x
            coordinates refer to `layout.xaxis2`, and so on.
        xcalendar
            Sets the calendar system to use with `x` date data.
        xsrc
            Sets the source reference on plot.ly for  x .
        y
            Sets the y coordinates.
        y0
            Alternate to `y`. Builds a linear space of y
            coordinates. Use with `dy` where `y0` is the starting
            coordinate and `dy` the step.
        yaxis
            Sets a reference between this trace's y coordinates and
            a 2D cartesian y axis. If "y" (the default value), the
            y coordinates refer to `layout.yaxis`. If "y2", the y
            coordinates refer to `layout.yaxis2`, and so on.
        ycalendar
            Sets the calendar system to use with `y` date data.
        ysrc
            Sets the source reference on plot.ly for  y .

        Returns
        -------
        Bar
        barNz}The first argument to the plotly.graph_objs.Bar 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Bar`rJ   Fr   )r  r   r	   r  r
   r   r   r   r   r   ry  rz  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r'   r(   r)   rY  r[  r   r*   r+   r,   r  r-   r.   r/   r1   r2   r3   r4   r5   r  r7   r8   r   r9   r:   r;   r<   r=   r>   r  r?   r@   rA   rB   r  rC   )rK   rD   )rL   rM   r   )TrN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  rZ   r[   r\   r  r]   r_   r`   ra   rc   rd   r|  r}  re   rf   rg   rh   ri   rj   rk   rl   rm   ro   rp   rq   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   rc  re  r   r{   r|   r}   r  r~   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   rK   rE   r   )Gr   r   r   r	   r  r
   r   r   r   r   r   ry  rz  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r'   r(   r)   rY  r[  r   r*   r+   r,   r  r-   r.   r/   r1   r2   r3   r4   r5   r  r7   r8   r   r9   r:   r;   r<   r=   r>   r  r?   r@   rA   rB   r  rC   r   Zv_barr   rK   )rQ   r   r   rO   i s     r


zBar.__init__)BNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Kr   r   r   r   r   r   r	   r  r
   r   r   r   r   r   ry  rz  r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r'   r(   r)   rY  r[  r   r*   r+   r,   r  r-   r.   r/   r1   r2   r3   r4   r5   r  r7   r8   r   r9   r:   r;   r<   r=   r>   r  r?   r@   rA   rB   r  rC   rD   rG   rH   rO   r   r   r   )rQ   r   r  2a s  KI5#1p11  !                                                                 r  c                   s~  e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Zejd9d8 Zed:d; Zejd<d; Zed=d> Zejd?d> Zed@dA ZejdBdA ZedCdD ZedEdF ZedGdH ZdL fdJdK	Z  ZS )MAreac             C   s   | d S )a  
        Assigns extra data each datum. This may be useful when
        listening to hover, click and selection events. Note that,
        "scatter" traces also appends customdata items in the markers
        DOM elements
    
        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   l s    zArea.customdatac             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  customdata .
    
        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   #l s    zArea.customdatasrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   1l s    c             C   s   | d S )a`  
        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.
    
        The 'hoverinfo' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
            (e.g. 'x+y')
            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
          - A list or array of the above

        Returns
        -------
        Any|numpy.ndarray
        r   r   )r   r   r   r   r   7l s    zArea.hoverinfoc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   Kl s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hoverinfo .
    
        The 'hoverinfosrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   Ql s    zArea.hoverinfosrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   _l s    c             C   s   | d S )a  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.area.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                alignsrc
                    Sets the source reference on plot.ly for  align
                    .
                bgcolor
                    Sets the background color of the hover labels
                    for this trace
                bgcolorsrc
                    Sets the source reference on plot.ly for
                    bgcolor .
                bordercolor
                    Sets the border color of the hover labels for
                    this trace.
                bordercolorsrc
                    Sets the source reference on plot.ly for
                    bordercolor .
                font
                    Sets the font used in hover labels.
                namelength
                    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.
                namelengthsrc
                    Sets the source reference on plot.ly for
                    namelength .

        Returns
        -------
        plotly.graph_objs.area.Hoverlabel
        r   r   )r   r   r   r   r   el s    3zArea.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l s    c             C   s   | d S )aq  
        Assigns id labels to each datum. These ids for object constancy
        of data points during animation. Should be an array of strings,
        not numbers or any other type.
    
        The 'ids' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   )r   r   r   r   r   l s    zArea.idsc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  ids .
    
        The 'idssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   )r   r   r   r   r   l s    zArea.idssrcc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l s    c             C   s   | d S )ak  
        Sets the legend group for this trace. Traces part of the same
        legend group hide/show at the same time when toggling legend
        items.
    
        The 'legendgroup' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r   r   )r   r   r   r   r   l s    zArea.legendgroupc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   l s    c             C   s   | d S )ae  
        The 'marker' property is an instance of Marker
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.area.Marker`
          - A dict of string/value properties that will be passed
            to the Marker constructor
    
            Supported dict properties:
                
                color
                    Area traces are deprecated! Please switch to
                    the "barpolar" trace type. Sets themarkercolor.
                    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.
                colorsrc
                    Sets the source reference on plot.ly for  color
                    .
                opacity
                    Area traces are deprecated! Please switch to
                    the "barpolar" trace type. Sets the marker
                    opacity.
                opacitysrc
                    Sets the source reference on plot.ly for
                    opacity .
                size
                    Area traces are deprecated! Please switch to
                    the "barpolar" trace type. Sets the marker size
                    (in px).
                sizesrc
                    Sets the source reference on plot.ly for  size
                    .
                symbol
                    Area traces are deprecated! Please switch to
                    the "barpolar" trace type. Sets the marker
                    symbol type. Adding 100 is equivalent to
                    appending "-open" to a symbol name. Adding 200
                    is equivalent to appending "-dot" to a symbol
                    name. Adding 300 is equivalent to appending
                    "-open-dot" or "dot-open" to a symbol name.
                symbolsrc
                    Sets the source reference on plot.ly for
                    symbol .

        Returns
        -------
        plotly.graph_objs.area.Marker
        r   r   )r   r   r   r   r   l s    4zArea.markerc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   m s    c             C   s   | d S )a	  
        Assigns extra meta information associated with this trace that
        can be used in various text attributes. Attributes such as
        trace `name`, graph, axis and colorbar `title.text`, annotation
        `text` `rangeselector`, `updatemenues` and `sliders` `label`
        text all support `meta`. To access the trace `meta` values in
        an attribute in the same trace, simply use `%{meta[i]}` where
        `i` is the index or key of the `meta` item in question. To
        access trace `meta` in layout attributes, use
        `%{data[n[.meta[i]}` where `i` is the index or key of the
        `meta` and `n` is the trace index.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   m s    z	Area.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   3m s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   9m s    zArea.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   Gm s    c             C   s   | d S )a&  
        Sets the trace name. The trace name appear as the legend item
        and on hover.
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   Mm s    z	Area.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   ]m s    c             C   s   | d S )z
        Sets the opacity of the trace.
    
        The 'opacity' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r'   r   )r   r   r   r   r'   cm s    zArea.opacityc             C   s   || d< d S )Nr'   r   )r   r   r   r   r   r'   qm s    c             C   s   | d S )aQ  
        Area traces are deprecated! Please switch to the "barpolar"
        trace type. Sets the radial coordinates for legacy polar chart
        only.
    
        The 'r' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        rY  r   )r   r   r   r   rY  wm s    zArea.rc             C   s   || d< d S )NrY  r   )r   r   r   r   r   rY  m s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  r .
    
        The 'rsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r[  r   )r   r   r   r   r[  m s    z	Area.rsrcc             C   s   || d< d S )Nr[  r   )r   r   r   r   r   r[  m s    c             C   s   | d S )a   
        Determines whether or not an item corresponding to this trace
        is shown in the legend.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   m s    zArea.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   m s    c             C   s   | d S )ab  
        The 'stream' property is an instance of Stream
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.area.Stream`
          - A dict of string/value properties that will be passed
            to the Stream constructor
    
            Supported dict properties:
                
                maxpoints
                    Sets the maximum number of points to keep on
                    the plots from an incoming stream. If
                    `maxpoints` is set to 50, only the newest 50
                    points will be displayed on the plot.
                token
                    The stream id number links a data trace on a
                    plot with a stream. See
                    https://plot.ly/settings for more details.

        Returns
        -------
        plotly.graph_objs.area.Stream
        r,   r   )r   r   r   r   r,   m s    zArea.streamc             C   s   || d< d S )Nr,   r   )r   r   r   r   r   r,   m s    c             C   s   | d S )aR  
        Area traces are deprecated! Please switch to the "barpolar"
        trace type. Sets the angular coordinates for legacy polar chart
        only.
    
        The 't' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r  r   )r   r   r   r   r  m s    zArea.tc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  m s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  t .
    
        The 'tsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r  r   )r   r   r   r   r  m s    z	Area.tsrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  m s    c             C   s   | d S )aL  
        Assign an id to this trace, Use this to provide object
        constancy between traces during animations and transitions.
    
        The 'uid' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r7   r   )r   r   r   r   r7   n s    zArea.uidc             C   s   || d< d S )Nr7   r   )r   r   r   r   r   r7   n s    c             C   s   | d S )aR  
        Controls persistence of some user-driven changes to the trace:
        `constraintrange` in `parcoords` traces, as well as some
        `editable: true` modifications such as `name` and
        `colorbar.title`. Defaults to `layout.uirevision`. Note that
        other user-driven trace attribute changes are controlled by
        `layout` attributes: `trace.visible` is controlled by
        `layout.legend.uirevision`, `selectedpoints` is controlled by
        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
        with `config: {editable: true}`) is controlled by
        `layout.editrevision`. Trace changes are tracked by `uid`,
        which only falls back on trace index if no `uid` is provided.
        So if your app can add/remove traces before the end of the
        `data` array, such that the same trace has a different index,
        you can still preserve user-driven changes if you give each
        trace a `uid` that stays with it as it moves.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   n s    zArea.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   2n s    c             C   s   | d S )a  
        Determines whether or not this trace is visible. If
        "legendonly", the trace is not drawn, but can appear as a
        legend item (provided that the legend itself is visible).
    
        The 'visible' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                [True, False, 'legendonly']

        Returns
        -------
        Any
        r9   r   )r   r   r   r   r9   8n s    zArea.visiblec             C   s   || d< d S )Nr9   r   )r   r   r   r   r   r9   In s    c             C   s
   | j d S )NrD   )rE   )r   r   r   r   rD   On s    z	Area.typec             C   s   dS )NrF   r   )r   r   r   r   rG   Un s    zArea._parent_path_strc             C   s   dS )Na          customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.area.Hoverlabel` instance
            or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.area.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        r
            Area traces are deprecated! Please switch to the
            "barpolar" trace type. Sets the radial coordinates for
            legacy polar chart only.
        rsrc
            Sets the source reference on plot.ly for  r .
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.area.Stream` instance or
            dict with compatible properties
        t
            Area traces are deprecated! Please switch to the
            "barpolar" trace type. Sets the angular coordinates for
            legacy polar chart only.
        tsrc
            Sets the source reference on plot.ly for  t .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).
        r   )r   r   r   r   rH   [n s    bzArea._prop_descriptionsNc                s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm} | | jd< | | jd	< | | jd
< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< | | jd< |  | jd< |! | jd< |" | jd< |# | jd< |$ | jd< |
dd}|dk	r|n|| d< |
d	d}|dk	r|n|| d	< |
d
d}|dk	r|n|| d
< |
dd}|dk	r |n|| d< |
dd}|dk	rB|n|| d< |
dd}|dk	rd|n|| d< |
dd}|dk	r|n|| d< |
dd}|	dk	r|	n|| d< |
dd}|
dk	r|
n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r0|n|| d< |
dd}|dk	rR|n|| d< |
dd}|dk	rt|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r|n|| d< |
dd}|dk	r@|n|| d< |
dd}|dk	rb|n|| d< |
dd}|dk	r|n|| d< ddl%m&} d| j'd< |dddd | jd< |
dd | j(f t|f| d| _dS )!a  
        Construct a new Area object
        
        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Area`
        customdata
            Assigns extra data each datum. This may be useful when
            listening to hover, click and selection events. Note
            that, "scatter" traces also appends customdata items in
            the markers DOM elements
        customdatasrc
            Sets the source reference on plot.ly for  customdata .
        hoverinfo
            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.
        hoverinfosrc
            Sets the source reference on plot.ly for  hoverinfo .
        hoverlabel
            :class:`plotly.graph_objects.area.Hoverlabel` instance
            or dict with compatible properties
        ids
            Assigns id labels to each datum. These ids for object
            constancy of data points during animation. Should be an
            array of strings, not numbers or any other type.
        idssrc
            Sets the source reference on plot.ly for  ids .
        legendgroup
            Sets the legend group for this trace. Traces part of
            the same legend group hide/show at the same time when
            toggling legend items.
        marker
            :class:`plotly.graph_objects.area.Marker` instance or
            dict with compatible properties
        meta
            Assigns extra meta information associated with this
            trace that can be used in various text attributes.
            Attributes such as trace `name`, graph, axis and
            colorbar `title.text`, annotation `text`
            `rangeselector`, `updatemenues` and `sliders` `label`
            text all support `meta`. To access the trace `meta`
            values in an attribute in the same trace, simply use
            `%{meta[i]}` where `i` is the index or key of the
            `meta` item in question. To access trace `meta` in
            layout attributes, use `%{data[n[.meta[i]}` where `i`
            is the index or key of the `meta` and `n` is the trace
            index.
        metasrc
            Sets the source reference on plot.ly for  meta .
        name
            Sets the trace name. The trace name appear as the
            legend item and on hover.
        opacity
            Sets the opacity of the trace.
        r
            Area traces are deprecated! Please switch to the
            "barpolar" trace type. Sets the radial coordinates for
            legacy polar chart only.
        rsrc
            Sets the source reference on plot.ly for  r .
        showlegend
            Determines whether or not an item corresponding to this
            trace is shown in the legend.
        stream
            :class:`plotly.graph_objects.area.Stream` instance or
            dict with compatible properties
        t
            Area traces are deprecated! Please switch to the
            "barpolar" trace type. Sets the angular coordinates for
            legacy polar chart only.
        tsrc
            Sets the source reference on plot.ly for  t .
        uid
            Assign an id to this trace, Use this to provide object
            constancy between traces during animations and
            transitions.
        uirevision
            Controls persistence of some user-driven changes to the
            trace: `constraintrange` in `parcoords` traces, as well
            as some `editable: true` modifications such as `name`
            and `colorbar.title`. Defaults to `layout.uirevision`.
            Note that other user-driven trace attribute changes are
            controlled by `layout` attributes: `trace.visible` is
            controlled by `layout.legend.uirevision`,
            `selectedpoints` is controlled by
            `layout.selectionrevision`, and `colorbar.(x|y)`
            (accessible with `config: {editable: true}`) is
            controlled by `layout.editrevision`. Trace changes are
            tracked by `uid`, which only falls back on trace index
            if no `uid` is provided. So if your app can add/remove
            traces before the end of the `data` array, such that
            the same trace has a different index, you can still
            preserve user-driven changes if you give each trace a
            `uid` that stays with it as it moves.
        visible
            Determines whether or not this trace is visible. If
            "legendonly", the trace is not drawn, but can appear as
            a legend item (provided that the legend itself is
            visible).

        Returns
        -------
        Area
        areaNzThe first argument to the plotly.graph_objs.Area 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Area`rJ   Fr   )r  r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   rY  r[  r+   r,   r  r  r7   r8   r9   )rK   rD   )rL   rM   r   ))rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  r`   r[   ra   re   rf   rg   rl   rm   rq   r   rr   rs   rt   rx   rc  re  r|   r}   r  r  r   r   r   r   rK   rE   r   )r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   rY  r[  r+   r,   r  r  r7   r8   r9   r   Zv_arear   rK   )rQ   r   r   rO   n s     


zArea.__init__)NNNNNNNNNNNNNNNNNNNNNNN) r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r#   r'   rY  r[  r+   r,   r  r  r7   r8   r9   rD   rG   rH   rO   r   r   r   )rQ   r   r  l s   56f                      r  )BaseLayoutTypec            S       s	  e Zd ZddddddddgZd	d
lZedde d Zedd Z	dd Z
edd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejd d Zed!d" Zejd#d" Zed$d% Zejd&d% Zed'd( Zejd)d( Zed*d+ Zejd,d+ Zed-d. Zejd/d. Zed0d1 Zejd2d1 Zed3d4 Zejd5d4 Zed6d7 Zejd8d7 Zed9d: Zejd;d: Zed<d= Zejd>d= Zed?d@ ZejdAd@ ZedBdC ZejdDdC ZedEdF ZejdGdF ZedHdI ZejdJdI ZedKdL ZejdMdL ZedNdO Z e jdPdO Z edQdR Z!e!jdSdR Z!edTdU Z"e"jdVdU Z"edWdX Z#e#jdYdX Z#edZd[ Z$e$jd\d[ Z$ed]d^ Z%e%jd_d^ Z%ed`da Z&e&jdbda Z&edcdd Z'e'jdedd Z'edfdg Z(e(jdhdg Z(edidj Z)e)jdkdj Z)edldm Z*e*jdndm Z*edodp Z+e+jdqdp Z+edrds Z,e,jdtds Z,edudv Z-e-jdwdv Z-edxdy Z.e.jdzdy Z.ed{d| Z/e/jd}d| Z/ed~d Z0e0jdd Z0edd Z1e1jdd Z1edd Z2e2jdd Z2edd Z3e3jdd Z3edd Z4e4jdd Z4edd Z5e5jdd Z5edd Z6e6jdd Z6edd Z7e7jdd Z7edd Z8e8jdd Z8edd Z9e9jdd Z9edd Z:e:jdd Z:edd Z;e;jdd Z;edd Z<e<jdd Z<edd Z=e=jdd Z=edd Z>e>jdd Z>edd Z?e?jdd Z?edd Z@e@jdd Z@edd ZAeAjdd ZAedd ZBeBjdd ZBedd ZCeCjdd ZCedd ZDeDjdd ZDedd ZEeEjdd ZEedd ZFeFjdd ZFeddĄ ZGeGjddĄ ZGeddǄ ZHeHjddǄ ZHeddʄ ZIeIjddʄ ZIedd̈́ ZJeJjdd̈́ ZJeddЄ ZKeKjddЄ ZKeddӄ ZLeLjddӄ ZLeddք ZMeMjddք ZMeddل ZNeNjddل ZNedd܄ ZOeOjdd܄ ZOedd߄ ZPePjdd߄ ZPedd ZQeQjdd ZQedd ZReRjdd ZRedd ZSeSjdd ZSedd ZTeTjdd ZTedd ZUeUjdd ZUedd ZVeVjdd ZVedd ZWeWjdd ZWedd ZXeXjdd ZXedd ZYeYjdd ZYedd ZZeZjdd ZZedd  Z[e[jdd  Z[edd Z\e\jdd Z\edd Z]e]jdd Z]edd	 Z^ed
d Z_ddiZ`d fdd	Za  ZbS (  Layoutr   r  mapboxpolarr   ternaryr>   rB   r   Nz^(|z)(\d+)$c       	   	   C   s>   ddl m}m}m}m}m}m}m}m} ||||||||dS )zo
        dict of validator classes for each subplot type

        Returns
        -------
        dict
        r   )r   r  MapboxValidatorPolarValidatorr   TernaryValidatorr   r   )r   r  r  r  r   r  r>   rB   )	Zplotly.validators.layoutr   r  r  r  r   r  r   r   )	r   r   r  r  r  r   r  r   r   r   r   r   _subplotid_validatorso s    	(zLayout._subplotid_validatorsc             C   s   | j |S )N)_subplotid_prop_rematch)r   propr   r   r   _subplot_re_matcho s    zLayout._subplot_re_matchc             C   s   | d S )a	  
        The 'angularaxis' property is an instance of AngularAxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.AngularAxis`
          - A dict of string/value properties that will be passed
            to the AngularAxis constructor
    
            Supported dict properties:
                
                domain
                    Polar chart subplots are not supported yet.
                    This key has currently no effect.
                endpadding
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots.
                range
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Defines the start
                    and end point of this angular axis.
                showline
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Determines whether
                    or not the line bounding this angular axis will
                    be shown on the figure.
                showticklabels
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Determines whether
                    or not the angular axis ticks will feature tick
                    labels.
                tickcolor
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the color of
                    the tick lines on this angular axis.
                ticklen
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the length of
                    the tick lines on this angular axis.
                tickorientation
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the
                    orientation (from the paper perspective) of the
                    angular axis tick labels.
                ticksuffix
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the length of
                    the tick lines on this angular axis.
                visible
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Determines whether
                    or not this axis will be visible.

        Returns
        -------
        plotly.graph_objs.layout.AngularAxis
        angularaxisr   )r   r   r   r   r  o s    9zLayout.angularaxisc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  /p s    c             C   s   | d S )a9  
        The 'annotations' property is a tuple of instances of
        Annotation that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Annotation
          - A list or tuple of dicts of string/value properties that
            will be passed to the Annotation constructor
    
            Supported dict properties:
                
                align
                    Sets the horizontal alignment of the `text`
                    within the box. Has an effect only if `text`
                    spans two or more lines (i.e. `text` contains
                    one or more <br> HTML tags) or if an explicit
                    width is set to override the text width.
                arrowcolor
                    Sets the color of the annotation arrow.
                arrowhead
                    Sets the end annotation arrow head style.
                arrowside
                    Sets the annotation arrow head position.
                arrowsize
                    Sets the size of the end annotation arrow head,
                    relative to `arrowwidth`. A value of 1
                    (default) gives a head about 3x as wide as the
                    line.
                arrowwidth
                    Sets the width (in px) of annotation arrow
                    line.
                ax
                    Sets the x component of the arrow tail about
                    the arrow head. If `axref` is `pixel`, a
                    positive (negative)  component corresponds to
                    an arrow pointing from right to left (left to
                    right). If `axref` is an axis, this is an
                    absolute value on that axis, like `x`, NOT a
                    relative value.
                axref
                    Indicates in what terms the tail of the
                    annotation (ax,ay)  is specified. If `pixel`,
                    `ax` is a relative offset in pixels  from `x`.
                    If set to an x axis id (e.g. "x" or "x2"), `ax`
                    is  specified in the same terms as that axis.
                    This is useful  for trendline annotations which
                    should continue to indicate  the correct trend
                    when zoomed.
                ay
                    Sets the y component of the arrow tail about
                    the arrow head. If `ayref` is `pixel`, a
                    positive (negative)  component corresponds to
                    an arrow pointing from bottom to top (top to
                    bottom). If `ayref` is an axis, this is an
                    absolute value on that axis, like `y`, NOT a
                    relative value.
                ayref
                    Indicates in what terms the tail of the
                    annotation (ax,ay)  is specified. If `pixel`,
                    `ay` is a relative offset in pixels  from `y`.
                    If set to a y axis id (e.g. "y" or "y2"), `ay`
                    is  specified in the same terms as that axis.
                    This is useful  for trendline annotations which
                    should continue to indicate  the correct trend
                    when zoomed.
                bgcolor
                    Sets the background color of the annotation.
                bordercolor
                    Sets the color of the border enclosing the
                    annotation `text`.
                borderpad
                    Sets the padding (in px) between the `text` and
                    the enclosing border.
                borderwidth
                    Sets the width (in px) of the border enclosing
                    the annotation `text`.
                captureevents
                    Determines whether the annotation text box
                    captures mouse move and click events, or allows
                    those events to pass through to data points in
                    the plot that may be behind the annotation. By
                    default `captureevents` is False unless
                    `hovertext` is provided. If you use the event
                    `plotly_clickannotation` without `hovertext`
                    you must explicitly enable `captureevents`.
                clicktoshow
                    Makes this annotation respond to clicks on the
                    plot. If you click a data point that exactly
                    matches the `x` and `y` values of this
                    annotation, and it is hidden (visible: false),
                    it will appear. In "onoff" mode, you must click
                    the same point again to make it disappear, so
                    if you click multiple points, you can show
                    multiple annotations. In "onout" mode, a click
                    anywhere else in the plot (on another data
                    point or not) will hide this annotation. If you
                    need to show/hide this annotation in response
                    to different `x` or `y` values, you can set
                    `xclick` and/or `yclick`. This is useful for
                    example to label the side of a bar. To label
                    markers though, `standoff` is preferred over
                    `xclick` and `yclick`.
                font
                    Sets the annotation text font.
                height
                    Sets an explicit height for the text box. null
                    (default) lets the text set the box height.
                    Taller text will be clipped.
                hoverlabel
                    :class:`plotly.graph_objects.layout.annotation.
                    Hoverlabel` instance or dict with compatible
                    properties
                hovertext
                    Sets text to appear when hovering over this
                    annotation. If omitted or blank, no hover label
                    will appear.
                name
                    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
                    Sets the opacity of the annotation (text +
                    arrow).
                showarrow
                    Determines whether or not the annotation is
                    drawn with an arrow. If True, `text` is placed
                    near the arrow's tail. If False, `text` lines
                    up with the `x` and `y` provided.
                standoff
                    Sets a distance, in pixels, to move the end
                    arrowhead away from the position it is pointing
                    at, for example to point at the edge of a
                    marker independent of zoom. Note that this
                    shortens the arrow from the `ax` / `ay` vector,
                    in contrast to `xshift` / `yshift` which moves
                    everything by this amount.
                startarrowhead
                    Sets the start annotation arrow head style.
                startarrowsize
                    Sets the size of the start annotation arrow
                    head, relative to `arrowwidth`. A value of 1
                    (default) gives a head about 3x as wide as the
                    line.
                startstandoff
                    Sets a distance, in pixels, to move the start
                    arrowhead away from the position it is pointing
                    at, for example to point at the edge of a
                    marker independent of zoom. Note that this
                    shortens the arrow from the `ax` / `ay` vector,
                    in contrast to `xshift` / `yshift` which moves
                    everything by this amount.
                templateitemname
                    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`.
                text
                    Sets the text associated with this annotation.
                    Plotly uses a subset of HTML tags to do things
                    like newline (<br>), bold (<b></b>), italics
                    (<i></i>), hyperlinks (<a href='...'></a>).
                    Tags <em>, <sup>, <sub> <span> are also
                    supported.
                textangle
                    Sets the angle at which the `text` is drawn
                    with respect to the horizontal.
                valign
                    Sets the vertical alignment of the `text`
                    within the box. Has an effect only if an
                    explicit height is set to override the text
                    height.
                visible
                    Determines whether or not this annotation is
                    visible.
                width
                    Sets an explicit width for the text box. null
                    (default) lets the text set the box width.
                    Wider text will be clipped. There is no
                    automatic wrapping; use <br> to start a new
                    line.
                x
                    Sets the annotation's x position. If the axis
                    `type` is "log", then you must take the log of
                    your desired range. If the axis `type` is
                    "date", it should be date strings, like date
                    data, though Date objects and unix milliseconds
                    will be accepted and converted to strings. If
                    the axis `type` is "category", it should be
                    numbers, using the scale where each category is
                    assigned a serial number from zero in the order
                    it appears.
                xanchor
                    Sets the text box's horizontal position anchor
                    This anchor binds the `x` position to the
                    "left", "center" or "right" of the annotation.
                    For example, if `x` is set to 1, `xref` to
                    "paper" and `xanchor` to "right" then the
                    right-most portion of the annotation lines up
                    with the right-most edge of the plotting area.
                    If "auto", the anchor is equivalent to "center"
                    for data-referenced annotations or if there is
                    an arrow, whereas for paper-referenced with no
                    arrow, the anchor picked corresponds to the
                    closest side.
                xclick
                    Toggle this annotation when clicking a data
                    point whose `x` value is `xclick` rather than
                    the annotation's `x` value.
                xref
                    Sets the annotation's x coordinate axis. If set
                    to an x axis id (e.g. "x" or "x2"), the `x`
                    position refers to an x coordinate If set to
                    "paper", the `x` position refers to the
                    distance from the left side of the plotting
                    area in normalized coordinates where 0 (1)
                    corresponds to the left (right) side.
                xshift
                    Shifts the position of the whole annotation and
                    arrow to the right (positive) or left
                    (negative) by this many pixels.
                y
                    Sets the annotation's y position. If the axis
                    `type` is "log", then you must take the log of
                    your desired range. If the axis `type` is
                    "date", it should be date strings, like date
                    data, though Date objects and unix milliseconds
                    will be accepted and converted to strings. If
                    the axis `type` is "category", it should be
                    numbers, using the scale where each category is
                    assigned a serial number from zero in the order
                    it appears.
                yanchor
                    Sets the text box's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the annotation.
                    For example, if `y` is set to 1, `yref` to
                    "paper" and `yanchor` to "top" then the top-
                    most portion of the annotation lines up with
                    the top-most edge of the plotting area. If
                    "auto", the anchor is equivalent to "middle"
                    for data-referenced annotations or if there is
                    an arrow, whereas for paper-referenced with no
                    arrow, the anchor picked corresponds to the
                    closest side.
                yclick
                    Toggle this annotation when clicking a data
                    point whose `y` value is `yclick` rather than
                    the annotation's `y` value.
                yref
                    Sets the annotation's y coordinate axis. If set
                    to an y axis id (e.g. "y" or "y2"), the `y`
                    position refers to an 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).
                yshift
                    Shifts the position of the whole annotation and
                    arrow up (positive) or down (negative) by this
                    many pixels.

        Returns
        -------
        tuple[plotly.graph_objs.layout.Annotation]
        annotationsr   )r   r   r   r   r  5p s      zLayout.annotationsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Lq s    c             C   s   | d S )aO  
        When used in a template (as
        layout.template.layout.annotationdefaults), sets the default
        property values to use for elements of layout.annotations
    
        The 'annotationdefaults' property is an instance of Annotation
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Annotation`
          - A dict of string/value properties that will be passed
            to the Annotation constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.layout.Annotation
        annotationdefaultsr   )r   r   r   r   r  Rq s    zLayout.annotationdefaultsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  gq s    c             C   s   | d S )a  
        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.
    
        The 'autosize' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        autosizer   )r   r   r   r   r  mq s    zLayout.autosizec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q s    c             C   s   | d S )a  
        Sets the gap (in plot fraction) between bars of adjacent
        location coordinates.
    
        The 'bargap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        bargapr   )r   r   r   r   r  q s    zLayout.bargapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q s    c             C   s   | d S )a  
        Sets the gap (in plot fraction) between bars of the same
        location coordinate.
    
        The 'bargroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        bargroupgapr   )r   r   r   r   r  q s    zLayout.bargroupgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q s    c             C   s   | d S )a  
        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 an
        "opacity" to see multiple bars.
    
        The 'barmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['stack', 'group', 'overlay', 'relative']

        Returns
        -------
        Any
        barmoder   )r   r   r   r   r  q s    zLayout.barmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q s    c             C   s   | d S )a  
        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.
    
        The 'barnorm' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['', 'fraction', 'percent']

        Returns
        -------
        Any
        barnormr   )r   r   r   r   r  q s    zLayout.barnormc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q s    c             C   s   | d S )aN  
        Sets the gap (in plot fraction) between boxes of adjacent
        location coordinates. Has no effect on traces that have "width"
        set.
    
        The 'boxgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        boxgapr   )r   r   r   r   r  q s    zLayout.boxgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  q s    c             C   s   | d S )aR  
        Sets the gap (in plot fraction) between boxes of the same
        location coordinate. Has no effect on traces that have "width"
        set.
    
        The 'boxgroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        boxgroupgapr   )r   r   r   r   r  q s    zLayout.boxgroupgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  	r s    c             C   s   | d S )a]  
        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.
    
        The 'boxmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        boxmoder   )r   r   r   r   r  r s    zLayout.boxmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #r s    c             C   s   | d S )a   
        Sets the default calendar system to use for interpreting and
        displaying dates throughout the plot.
    
        The 'calendar' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['gregorian', 'chinese', 'coptic', 'discworld',
                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
                'thai', 'ummalqura']

        Returns
        -------
        Any
        calendarr   )r   r   r   r   r  )r s    zLayout.calendarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  <r s    c             C   s   | d S )a  
        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.
    
        The 'clickmode' property is a flaglist and may be specified
        as a string containing:
          - Any combination of ['event', 'select'] joined with '+' characters
            (e.g. 'event+select')
            OR exactly one of ['none'] (e.g. 'none')

        Returns
        -------
        Any
        	clickmoder   )r   r   r   r   r  Br s    zLayout.clickmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  _r s    c             C   s   | d S )a  
        The 'coloraxis' property is an instance of Coloraxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Coloraxis`
          - A dict of string/value properties that will be passed
            to the Coloraxis constructor
    
            Supported dict properties:
                
                autocolorscale
                    Determines whether the colorscale is a default
                    palette (`autocolorscale: true`) or the palette
                    determined by `colorscale`. 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.
                cauto
                    Determines whether or not the color domain is
                    computed with respect to the input data (here
                    corresponding trace color array(s)) or the
                    bounds set in `cmin` and `cmax`  Defaults to
                    `false` when `cmin` and `cmax` are set by the
                    user.
                cmax
                    Sets the upper bound of the color domain. Value
                    should have the same units as corresponding
                    trace color array(s) and if set, `cmin` must be
                    set as well.
                cmid
                    Sets the mid-point of the color domain by
                    scaling `cmin` and/or `cmax` to be equidistant
                    to this point. Value should have the same units
                    as corresponding trace color array(s). Has no
                    effect when `cauto` is `false`.
                cmin
                    Sets the lower bound of the color domain. Value
                    should have the same units as corresponding
                    trace color array(s) and if set, `cmax` must be
                    set as well.
                colorbar
                    :class:`plotly.graph_objects.layout.coloraxis.C
                    olorBar` instance or dict with compatible
                    properties
                colorscale
                    Sets the colorscale. 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`cmin` and
                    `cmax`. Alternatively, `colorscale` may be a
                    palette name string of the following list: Grey
                    s,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,
                    Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth
                    ,Electric,Viridis,Cividis.
                reversescale
                    Reverses the color mapping if true. If true,
                    `cmin` will correspond to the last color in the
                    array and `cmax` will correspond to the first
                    color.
                showscale
                    Determines whether or not a colorbar is
                    displayed for this trace.

        Returns
        -------
        plotly.graph_objs.layout.Coloraxis
        r   r   )r   r   r   r   r   er s    IzLayout.coloraxisc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   r s    c             C   s   | d S )a  
        The 'colorscale' property is an instance of Colorscale
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Colorscale`
          - A dict of string/value properties that will be passed
            to the Colorscale constructor
    
            Supported dict properties:
                
                diverging
                    Sets the default diverging colorscale. Note
                    that `autocolorscale` must be true for this
                    attribute to work.
                sequential
                    Sets the default sequential colorscale for
                    positive values. Note that `autocolorscale`
                    must be true for this attribute to work.
                sequentialminus
                    Sets the default sequential colorscale for
                    negative values. Note that `autocolorscale`
                    must be true for this attribute to work.

        Returns
        -------
        plotly.graph_objs.layout.Colorscale
        r   r   )r   r   r   r   r   r s    zLayout.colorscalec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   r s    c             C   s   | d S )a  
        Sets the default trace colors.
    
        The 'colorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        colorwayr   )r   r   r   r   r  r s    zLayout.colorwayc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  r s    c             C   s   | d S )a'  
        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.
    
        The 'datarevision' property accepts values of any type

        Returns
        -------
        Any
        datarevisionr   )r   r   r   r   r  r s    zLayout.datarevisionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  s s    c             C   s   | d S )a  
        Legacy polar charts are deprecated! Please switch to "polar"
        subplots. Sets the direction corresponding to positive angles
        in legacy polar charts.
    
        The 'direction' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['clockwise', 'counterclockwise']

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  s s    zLayout.directionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  s s    c             C   s   | d S )a  
        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.
    
        The 'dragmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['zoom', 'pan', 'select', 'lasso', 'orbit', 'turntable',
                False]

        Returns
        -------
        Any
        dragmoder   )r   r   r   r   r  s s    zLayout.dragmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  1s s    c             C   s   | d S )a*  
        Controls persistence of user-driven changes in `editable: true`
        configuration, other than trace names and axis titles. Defaults
        to `layout.uirevision`.
    
        The 'editrevision' property accepts values of any type

        Returns
        -------
        Any
        editrevisionr   )r   r   r   r   r  7s s    zLayout.editrevisionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Fs s    c             C   s   | d S )a  
        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.
    
        The 'extendfunnelareacolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        extendfunnelareacolorsr   )r   r   r   r   r  Ls s    zLayout.extendfunnelareacolorsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  as s    c             C   s   | d S )a|  
        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.
    
        The 'extendpiecolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        extendpiecolorsr   )r   r   r   r   r  gs s    zLayout.extendpiecolorsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  {s s    c             C   s   | d S )a  
        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.
    
        The 'extendsunburstcolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        extendsunburstcolorsr   )r   r   r   r   r  s s    zLayout.extendsunburstcolorsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  s s    c             C   s   | d S )a  
        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.
    
        The 'extendtreemapcolors' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        extendtreemapcolorsr   )r   r   r   r   r  s s    zLayout.extendtreemapcolorsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  s s    c             C   s   | d S )a!  
        Sets the global font. Note that fonts used in traces and other
        layout components inherit from the global font.
    
        The 'font' property is an instance of Font
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Font`
          - A dict of string/value properties that will be passed
            to the Font constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        plotly.graph_objs.layout.Font
        r  r   )r   r   r   r   r  s s    &zLayout.fontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  s s    c             C   s   | d S )a  
        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`.
    
        The 'funnelareacolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        funnelareacolorwayr   )r   r   r   r   r  s s    zLayout.funnelareacolorwayc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  s s    c             C   s   | d S )a  
        Sets the gap (in plot fraction) between bars of adjacent
        location coordinates.
    
        The 'funnelgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        	funnelgapr   )r   r   r   r   r  s s    zLayout.funnelgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  t s    c             C   s   | d S )a  
        Sets the gap (in plot fraction) between bars of the same
        location coordinate.
    
        The 'funnelgroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        funnelgroupgapr   )r   r   r   r   r  t s    zLayout.funnelgroupgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  !t s    c             C   s   | d S )am  
        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 an "opacity" to see multiple bars.
    
        The 'funnelmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['stack', 'group', 'overlay']

        Returns
        -------
        Any
        
funnelmoder   )r   r   r   r   r  't s    zLayout.funnelmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ;t s    c             C   s   | d S )a  
        The 'geo' property is an instance of Geo
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Geo`
          - A dict of string/value properties that will be passed
            to the Geo constructor
    
            Supported dict properties:
                
                bgcolor
                    Set the background color of the map
                center
                    :class:`plotly.graph_objects.layout.geo.Center`
                    instance or dict with compatible properties
                coastlinecolor
                    Sets the coastline color.
                coastlinewidth
                    Sets the coastline stroke width (in px).
                countrycolor
                    Sets line color of the country boundaries.
                countrywidth
                    Sets line width (in px) of the country
                    boundaries.
                domain
                    :class:`plotly.graph_objects.layout.geo.Domain`
                    instance or dict with compatible properties
                fitbounds
                    Determines if this subplot's view settings are
                    auto-computed to fit trace data. On scoped
                    maps, setting `fitbounds` leads to `center.lon`
                    and `center.lat` getting auto-filled. On maps
                    with a non-clipped projection, setting
                    `fitbounds` leads to `center.lon`,
                    `center.lat`, and `projection.rotation.lon`
                    getting auto-filled. On maps with a clipped
                    projection, setting `fitbounds` leads to
                    `center.lon`, `center.lat`,
                    `projection.rotation.lon`,
                    `projection.rotation.lat`, `lonaxis.range` and
                    `lonaxis.range` getting auto-filled. If
                    "locations", only the trace's visible locations
                    are considered in the `fitbounds` computations.
                    If "geojson", the entire trace input `geojson`
                    (if provided) is considered in the `fitbounds`
                    computations, Defaults to False.
                framecolor
                    Sets the color the frame.
                framewidth
                    Sets the stroke width (in px) of the frame.
                lakecolor
                    Sets the color of the lakes.
                landcolor
                    Sets the land mass color.
                lataxis
                    :class:`plotly.graph_objects.layout.geo.Lataxis
                    ` instance or dict with compatible properties
                lonaxis
                    :class:`plotly.graph_objects.layout.geo.Lonaxis
                    ` instance or dict with compatible properties
                oceancolor
                    Sets the ocean color
                projection
                    :class:`plotly.graph_objects.layout.geo.Project
                    ion` instance or dict with compatible
                    properties
                resolution
                    Sets the resolution of the base layers. The
                    values have units of km/mm e.g. 110 corresponds
                    to a scale ratio of 1:110,000,000.
                rivercolor
                    Sets color of the rivers.
                riverwidth
                    Sets the stroke width (in px) of the rivers.
                scope
                    Set the scope of the map.
                showcoastlines
                    Sets whether or not the coastlines are drawn.
                showcountries
                    Sets whether or not country boundaries are
                    drawn.
                showframe
                    Sets whether or not a frame is drawn around the
                    map.
                showlakes
                    Sets whether or not lakes are drawn.
                showland
                    Sets whether or not land masses are filled in
                    color.
                showocean
                    Sets whether or not oceans are filled in color.
                showrivers
                    Sets whether or not rivers are drawn.
                showsubunits
                    Sets whether or not boundaries of subunits
                    within countries (e.g. states, provinces) are
                    drawn.
                subunitcolor
                    Sets the color of the subunits boundaries.
                subunitwidth
                    Sets the stroke width (in px) of the subunits
                    boundaries.
                uirevision
                    Controls persistence of user-driven changes in
                    the view (projection and center). Defaults to
                    `layout.uirevision`.
                visible
                    Sets the default visibility of the base layers.

        Returns
        -------
        plotly.graph_objs.layout.Geo
        r  r   )r   r   r   r   r  At s    rz
Layout.geoc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  t s    c             C   s   | d S )a  
        The 'grid' property is an instance of Grid
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Grid`
          - A dict of string/value properties that will be passed
            to the Grid constructor
    
            Supported dict properties:
                
                columns
                    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
                    :class:`plotly.graph_objects.layout.grid.Domain
                    ` instance or dict with compatible properties
                pattern
                    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
                    Is the first row the top or the bottom? Note
                    that columns are always enumerated from left to
                    right.
                rows
                    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
                    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
                    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
                    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
                    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
                    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
                    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
                    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.

        Returns
        -------
        plotly.graph_objs.layout.Grid
        gridr   )r   r   r   r   r  t s    _zLayout.gridc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  u s    c             C   s   | d S )z
        Sets the plot's height (in px).
    
        The 'height' property is a number and may be specified as:
          - An int or float in the interval [10, inf]

        Returns
        -------
        int|float
        heightr   )r   r   r   r   r  "u s    zLayout.heightc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  0u s    c             C   s   | d S )a  
        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
    
        The 'hiddenlabels' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        hiddenlabelsr   )r   r   r   r   r  6u s    zLayout.hiddenlabelsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Fu s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  hiddenlabels .
    
        The 'hiddenlabelssrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        hiddenlabelssrcr   )r   r   r   r   r  Lu s    zLayout.hiddenlabelssrcc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Zu s    c             C   s   | d S )a  
        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 plotly service (at https://plot.ly or on-
        premise).
    
        The 'hidesources' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        hidesourcesr   )r   r   r   r   r  `u s    zLayout.hidesourcesc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ru s    c             C   s   | d S )a  
        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.
    
        The 'hoverdistance' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [-1, 9223372036854775807]

        Returns
        -------
        int
        hoverdistancer   )r   r   r   r   r  xu s    zLayout.hoverdistancec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  u s    c             C   s   | d S )aC  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor
    
            Supported dict properties:
                
                align
                    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
                    Sets the background color of all hover labels
                    on graph
                bordercolor
                    Sets the border color of all hover labels on
                    graph.
                font
                    Sets the default hover label font used by all
                    traces on the graph.
                namelength
                    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.

        Returns
        -------
        plotly.graph_objs.layout.Hoverlabel
        r   r   )r   r   r   r   r   u s    (zLayout.hoverlabelc             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   u s    c             C   s   | d S )a`  
        Determines the mode of hover interactions. If `clickmode`
        includes the "select" flag, `hovermode` defaults to "closest".
        If `clickmode` lacks the "select" flag, it defaults to "x" or
        "y" (depending on the trace's `orientation` value) for plots
        based on cartesian coordinates. For anything else the default
        value is "closest".
    
        The 'hovermode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['x', 'y', 'closest', False]

        Returns
        -------
        Any
        	hovermoder   )r   r   r   r   r  u s    zLayout.hovermodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  u s    c             C   s   | d S )a  
        The 'images' property is a tuple of instances of
        Image that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Image
          - A list or tuple of dicts of string/value properties that
            will be passed to the Image constructor
    
            Supported dict properties:
                
                layer
                    Specifies whether images are drawn below or
                    above traces. When `xref` and `yref` are both
                    set to `paper`, image is drawn below the entire
                    plot area.
                name
                    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
                    Sets the opacity of the image.
                sizex
                    Sets the image container size horizontally. The
                    image will be sized based on the `position`
                    value. When `xref` is set to `paper`, units are
                    sized relative to the plot width.
                sizey
                    Sets the image container size vertically. The
                    image will be sized based on the `position`
                    value. When `yref` is set to `paper`, units are
                    sized relative to the plot height.
                sizing
                    Specifies which dimension of the image to
                    constrain.
                source
                    Specifies the URL of the image to be used. The
                    URL must be accessible from the domain where
                    the plot code is run, and can be either
                    relative or absolute.
                templateitemname
                    Used to refer to a named item in this array in
                    the template. Named items from the template
                    will be created even without a matching item in
                    the input figure, but you can modify one by
                    making an item with `templateitemname` matching
                    its `name`, alongside your modifications
                    (including `visible: false` or `enabled: false`
                    to hide it). If there is no template or no
                    matching item, this item will be hidden unless
                    you explicitly show it with `visible: true`.
                visible
                    Determines whether or not this image is
                    visible.
                x
                    Sets the image's x position. When `xref` is set
                    to `paper`, units are sized relative to the
                    plot height. See `xref` for more info
                xanchor
                    Sets the anchor for the x position
                xref
                    Sets the images's x coordinate axis. If set to
                    a x axis id (e.g. "x" or "x2"), the `x`
                    position refers to an x data coordinate If set
                    to "paper", the `x` position refers to the
                    distance from the left of plot in normalized
                    coordinates where 0 (1) corresponds to the left
                    (right).
                y
                    Sets the image's y position. When `yref` is set
                    to `paper`, units are sized relative to the
                    plot height. See `yref` for more info
                yanchor
                    Sets the anchor for the y position.
                yref
                    Sets the images's y coordinate axis. If set to
                    a y axis id (e.g. "y" or "y2"), the `y`
                    position refers to a y data coordinate. If set
                    to "paper", the `y` position refers to the
                    distance from the bottom of the plot in
                    normalized coordinates where 0 (1) corresponds
                    to the bottom (top).

        Returns
        -------
        tuple[plotly.graph_objs.layout.Image]
        imagesr   )r   r   r   r   r  u s    ]zLayout.imagesc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  <v s    c             C   s   | d S )a,  
        When used in a template (as
        layout.template.layout.imagedefaults), sets the default
        property values to use for elements of layout.images
    
        The 'imagedefaults' property is an instance of Image
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Image`
          - A dict of string/value properties that will be passed
            to the Image constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.layout.Image
        imagedefaultsr   )r   r   r   r   r  Bv s    zLayout.imagedefaultsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Wv s    c             C   s   | d S )aI  
        The 'legend' property is an instance of Legend
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Legend`
          - A dict of string/value properties that will be passed
            to the Legend constructor
    
            Supported dict properties:
                
                bgcolor
                    Sets the legend background color. Defaults to
                    `layout.paper_bgcolor`.
                bordercolor
                    Sets the color of the border enclosing the
                    legend.
                borderwidth
                    Sets the width (in px) of the border enclosing
                    the legend.
                font
                    Sets the font used to text the legend items.
                itemclick
                    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 disable legend item click
                    interactions.
                itemdoubleclick
                    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 disable legend item double-click
                    interactions.
                itemsizing
                    Determines if the legend items symbols scale
                    with their corresponding "trace" attributes or
                    remain "constant" independent of the symbol
                    size on the graph.
                orientation
                    Sets the orientation of the legend.
                title
                    :class:`plotly.graph_objects.layout.legend.Titl
                    e` instance or dict with compatible properties
                tracegroupgap
                    Sets the amount of vertical space (in px)
                    between legend groups.
                traceorder
                    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
                    Controls persistence of legend-driven changes
                    in trace and pie label visibility. Defaults to
                    `layout.uirevision`.
                valign
                    Sets the vertical alignment of the symbols with
                    respect to their associated text.
                x
                    Sets the x position (in normalized coordinates)
                    of the legend. Defaults to 1.02 for vertical
                    legends and defaults to 0 for horizontal
                    legends.
                xanchor
                    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.
                y
                    Sets the y position (in normalized coordinates)
                    of the legend. 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.
                yanchor
                    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.

        Returns
        -------
        plotly.graph_objs.layout.Legend
        legendr   )r   r   r   r   r  ]v s    ezLayout.legendc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  v s    c             C   s   | d S )aL  
        The 'mapbox' property is an instance of Mapbox
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Mapbox`
          - A dict of string/value properties that will be passed
            to the Mapbox constructor
    
            Supported dict properties:
                
                accesstoken
                    Sets the mapbox access token to be used for
                    this mapbox map. Alternatively, the mapbox
                    access token can be set in the configuration
                    options under `mapboxAccessToken`. Note that
                    accessToken are only required when `style` (e.g
                    with values : basic, streets, outdoors, light,
                    dark, satellite, satellite-streets ) and/or a
                    layout layer references the Mapbox server.
                bearing
                    Sets the bearing angle of the map in degrees
                    counter-clockwise from North (mapbox.bearing).
                center
                    :class:`plotly.graph_objects.layout.mapbox.Cent
                    er` instance or dict with compatible properties
                domain
                    :class:`plotly.graph_objects.layout.mapbox.Doma
                    in` instance or dict with compatible properties
                layers
                    A tuple of :class:`plotly.graph_objects.layout.
                    mapbox.Layer` instances or dicts with
                    compatible properties
                layerdefaults
                    When used in a template (as
                    layout.template.layout.mapbox.layerdefaults),
                    sets the default property values to use for
                    elements of layout.mapbox.layers
                pitch
                    Sets the pitch angle of the map (in degrees,
                    where 0 means perpendicular to the surface of
                    the map) (mapbox.pitch).
                style
                    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.mapbox.layers`.  These layers can be
                    defined either explicitly as a Mapbox 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
                    which do not require any access tokens, or by
                    using a default Mapbox style or custom Mapbox
                    style URL, both of which require a Mapbox
                    access token  Note that Mapbox access token can
                    be set in the `accesstoken` attribute or in the
                    `mapboxAccessToken` config option.  Mapbox
                    Style objects are of the form described in the
                    Mapbox GL JS documentation available at
                    https://docs.mapbox.com/mapbox-gl-js/style-spec
                    The built-in plotly.js styles objects are:
                    open-street-map, white-bg, carto-positron,
                    carto-darkmatter, stamen-terrain, stamen-toner,
                    stamen-watercolor  The built-in Mapbox styles
                    are: basic, streets, outdoors, light, dark,
                    satellite, satellite-streets  Mapbox style URLs
                    are of the form:
                    mapbox://mapbox.mapbox-<name>-<version>
                uirevision
                    Controls persistence of user-driven changes in
                    the view: `center`, `zoom`, `bearing`, `pitch`.
                    Defaults to `layout.uirevision`.
                zoom
                    Sets the zoom level of the map (mapbox.zoom).

        Returns
        -------
        plotly.graph_objs.layout.Mapbox
        r  r   )r   r   r   r   r  v s    RzLayout.mapboxc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  w s    c             C   s   | d S )aC  
        The 'margin' property is an instance of Margin
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Margin`
          - A dict of string/value properties that will be passed
            to the Margin constructor
    
            Supported dict properties:
                
                autoexpand
                    Turns on/off margin expansion computations.
                    Legends, colorbars, updatemenus, sliders, axis
                    rangeselector and rangeslider are allowed to
                    push the margins by defaults.
                b
                    Sets the bottom margin (in px).
                l
                    Sets the left margin (in px).
                pad
                    Sets the amount of padding (in px) between the
                    plotting area and the axis lines
                r
                    Sets the right margin (in px).
                t
                    Sets the top margin (in px).

        Returns
        -------
        plotly.graph_objs.layout.Margin
        marginr   )r   r   r   r   r  $w s     zLayout.marginc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Fw s    c             C   s   | d S )a  
        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]}.
    
        The 'meta' property accepts values of any type

        Returns
        -------
        Any|numpy.ndarray
        r!   r   )r   r   r   r   r!   Lw s    zLayout.metac             C   s   || d< d S )Nr!   r   )r   r   r   r   r   r!   `w s    c             C   s   | d S )z
        Sets the source reference on plot.ly for  meta .
    
        The 'metasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r"   r   )r   r   r   r   r"   fw s    zLayout.metasrcc             C   s   || d< d S )Nr"   r   )r   r   r   r   r   r"   tw s    c             C   s   | d S )ac  
        The 'modebar' property is an instance of Modebar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Modebar`
          - A dict of string/value properties that will be passed
            to the Modebar constructor
    
            Supported dict properties:
                
                activecolor
                    Sets the color of the active or hovered on
                    icons in the modebar.
                bgcolor
                    Sets the background color of the modebar.
                color
                    Sets the color of the icons in the modebar.
                orientation
                    Sets the orientation of the modebar.
                uirevision
                    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`.

        Returns
        -------
        plotly.graph_objs.layout.Modebar
        modebarr   )r   r   r   r   r  zw s    zLayout.modebarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  w s    c             C   s   | d S )a  
        Legacy polar charts are deprecated! Please switch to "polar"
        subplots. Rotates the entire polar by the given angle in legacy
        polar charts.
    
        The 'orientation' property is a angle (in degrees) that may be
        specified as a number between -180 and 180. Numeric values outside this
        range are converted to the equivalent value
        (e.g. 270 is converted to -90).

        Returns
        -------
        int|float
        r(   r   )r   r   r   r   r(   w s    zLayout.orientationc             C   s   || d< d S )Nr(   r   )r   r   r   r   r   r(   w s    c             C   s   | d S )aE
  
        Sets the background color of the paper where the graph is
        drawn.
    
        The 'paper_bgcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        paper_bgcolorr   )r   r   r   r   r  w s    4zLayout.paper_bgcolorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  w s    c             C   s   | d S )a  
        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`.
    
        The 'piecolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        piecolorwayr   )r   r   r   r   r  w s    zLayout.piecolorwayc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  x s    c             C   s   | d S )aK
  
        Sets the background color of the plotting area in-between x and
        y axes.
    
        The 'plot_bgcolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color:
                aliceblue, antiquewhite, aqua, aquamarine, azure,
                beige, bisque, black, blanchedalmond, blue,
                blueviolet, brown, burlywood, cadetblue,
                chartreuse, chocolate, coral, cornflowerblue,
                cornsilk, crimson, cyan, darkblue, darkcyan,
                darkgoldenrod, darkgray, darkgrey, darkgreen,
                darkkhaki, darkmagenta, darkolivegreen, darkorange,
                darkorchid, darkred, darksalmon, darkseagreen,
                darkslateblue, darkslategray, darkslategrey,
                darkturquoise, darkviolet, deeppink, deepskyblue,
                dimgray, dimgrey, dodgerblue, firebrick,
                floralwhite, forestgreen, fuchsia, gainsboro,
                ghostwhite, gold, goldenrod, gray, grey, green,
                greenyellow, honeydew, hotpink, indianred, indigo,
                ivory, khaki, lavender, lavenderblush, lawngreen,
                lemonchiffon, lightblue, lightcoral, lightcyan,
                lightgoldenrodyellow, lightgray, lightgrey,
                lightgreen, lightpink, lightsalmon, lightseagreen,
                lightskyblue, lightslategray, lightslategrey,
                lightsteelblue, lightyellow, lime, limegreen,
                linen, magenta, maroon, mediumaquamarine,
                mediumblue, mediumorchid, mediumpurple,
                mediumseagreen, mediumslateblue, mediumspringgreen,
                mediumturquoise, mediumvioletred, midnightblue,
                mintcream, mistyrose, moccasin, navajowhite, navy,
                oldlace, olive, olivedrab, orange, orangered,
                orchid, palegoldenrod, palegreen, paleturquoise,
                palevioletred, papayawhip, peachpuff, peru, pink,
                plum, powderblue, purple, red, rosybrown,
                royalblue, rebeccapurple, saddlebrown, salmon,
                sandybrown, seagreen, seashell, sienna, silver,
                skyblue, slateblue, slategray, slategrey, snow,
                springgreen, steelblue, tan, teal, thistle, tomato,
                turquoise, violet, wheat, white, whitesmoke,
                yellow, yellowgreen

        Returns
        -------
        str
        plot_bgcolorr   )r   r   r   r   r  x s    4zLayout.plot_bgcolorc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Cx s    c             C   s   | d S )a[  
        The 'polar' property is an instance of Polar
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Polar`
          - A dict of string/value properties that will be passed
            to the Polar constructor
    
            Supported dict properties:
                
                angularaxis
                    :class:`plotly.graph_objects.layout.polar.Angul
                    arAxis` instance or dict with compatible
                    properties
                bargap
                    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
                    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 an
                    "opacity" to see multiple bars.
                bgcolor
                    Set the background color of the subplot
                domain
                    :class:`plotly.graph_objects.layout.polar.Domai
                    n` instance or dict with compatible properties
                gridshape
                    Determines if the radial axis grid lines and
                    angular axis line are drawn as "circular"
                    sectors or as "linear" (polygon) sectors. Has
                    an effect only when the angular axis has `type`
                    "category". Note that `radialaxis.angle` is
                    snapped to the angle of the closest vertex when
                    `gridshape` is "circular" (so that radial axis
                    scale is the same as the data scale).
                hole
                    Sets the fraction of the radius to cut out of
                    the polar subplot.
                radialaxis
                    :class:`plotly.graph_objects.layout.polar.Radia
                    lAxis` instance or dict with compatible
                    properties
                sector
                    Sets angular span of this polar subplot with
                    two angles (in degrees). Sector are assumed to
                    be spanned in the counterclockwise direction
                    with 0 corresponding to rightmost limit of the
                    polar subplot.
                uirevision
                    Controls persistence of user-driven changes in
                    axis attributes, if not overridden in the
                    individual axes. Defaults to
                    `layout.uirevision`.

        Returns
        -------
        plotly.graph_objs.layout.Polar
        r  r   )r   r   r   r   r  Ix s    @zLayout.polarc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  x s    c             C   s   | d S )a
  
        The 'radialaxis' property is an instance of RadialAxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.RadialAxis`
          - A dict of string/value properties that will be passed
            to the RadialAxis constructor
    
            Supported dict properties:
                
                domain
                    Polar chart subplots are not supported yet.
                    This key has currently no effect.
                endpadding
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots.
                orientation
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the
                    orientation (an angle with respect to the
                    origin) of the radial axis.
                range
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Defines the start
                    and end point of this radial axis.
                showline
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Determines whether
                    or not the line bounding this radial axis will
                    be shown on the figure.
                showticklabels
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Determines whether
                    or not the radial axis ticks will feature tick
                    labels.
                tickcolor
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the color of
                    the tick lines on this radial axis.
                ticklen
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the length of
                    the tick lines on this radial axis.
                tickorientation
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the
                    orientation (from the paper perspective) of the
                    radial axis tick labels.
                ticksuffix
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Sets the length of
                    the tick lines on this radial axis.
                visible
                    Legacy polar charts are deprecated! Please
                    switch to "polar" subplots. Determines whether
                    or not this axis will be visible.

        Returns
        -------
        plotly.graph_objs.layout.RadialAxis
        
radialaxisr   )r   r   r   r   r  x s    >zLayout.radialaxisc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  x s    c             C   s   | d S )a  
        The 'scene' property is an instance of Scene
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Scene`
          - A dict of string/value properties that will be passed
            to the Scene constructor
    
            Supported dict properties:
                
                annotations
                    A tuple of :class:`plotly.graph_objects.layout.
                    scene.Annotation` instances or dicts with
                    compatible properties
                annotationdefaults
                    When used in a template (as layout.template.lay
                    out.scene.annotationdefaults), sets the default
                    property values to use for elements of
                    layout.scene.annotations
                aspectmode
                    If "cube", this scene's axes are drawn as a
                    cube, regardless of the axes' ranges. If
                    "data", this scene's axes are drawn in
                    proportion with the axes' ranges. If "manual",
                    this scene's axes are drawn in proportion with
                    the input of "aspectratio" (the default
                    behavior if "aspectratio" is provided). If
                    "auto", this scene's axes are drawn using the
                    results of "data" except when one axis is more
                    than four times the size of the two others,
                    where in that case the results of "cube" are
                    used.
                aspectratio
                    Sets this scene's axis aspectratio.
                bgcolor
    
                camera
                    :class:`plotly.graph_objects.layout.scene.Camer
                    a` instance or dict with compatible properties
                domain
                    :class:`plotly.graph_objects.layout.scene.Domai
                    n` instance or dict with compatible properties
                dragmode
                    Determines the mode of drag interactions for
                    this scene.
                hovermode
                    Determines the mode of hover interactions for
                    this scene.
                uirevision
                    Controls persistence of user-driven changes in
                    camera attributes. Defaults to
                    `layout.uirevision`.
                xaxis
                    :class:`plotly.graph_objects.layout.scene.XAxis
                    ` instance or dict with compatible properties
                yaxis
                    :class:`plotly.graph_objects.layout.scene.YAxis
                    ` instance or dict with compatible properties
                zaxis
                    :class:`plotly.graph_objects.layout.scene.ZAxis
                    ` instance or dict with compatible properties

        Returns
        -------
        plotly.graph_objs.layout.Scene
        r   r   )r   r   r   r   r   x s    CzLayout.scenec             C   s   || d< d S )Nr   r   )r   r   r   r   r   r   y s    c             C   s   | d S )a  
        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.
    
        The 'selectdirection' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['h', 'v', 'd', 'any']

        Returns
        -------
        Any
        selectdirectionr   )r   r   r   r   r  "y s    zLayout.selectdirectionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  4y s    c             C   s   | d S )z
        Controls persistence of user-driven changes in selected points
        from all traces.
    
        The 'selectionrevision' property accepts values of any type

        Returns
        -------
        Any
        selectionrevisionr   )r   r   r   r   r  :y s    zLayout.selectionrevisionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  Hy s    c             C   s   | d S )a  
        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.
    
        The 'separators' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        
separatorsr   )r   r   r   r   r  Ny s    zLayout.separatorsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  `y s    c             C   s   | d S )aY"  
        The 'shapes' property is a tuple of instances of
        Shape that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Shape
          - A list or tuple of dicts of string/value properties that
            will be passed to the Shape constructor
    
            Supported dict properties:
                
                fillcolor
                    Sets the color filling the shape's interior.
                layer
                    Specifies whether shapes are drawn below or
                    above traces.
                line
                    :class:`plotly.graph_objects.layout.shape.Line`
                    instance or dict with compatible properties
                name
                    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
                    Sets the opacity of the shape.
                path
                    For `type` "path" - a valid SVG path with the
                    pixel values replaced by data values in
                    `xsizemode`/`ysizemode` being "scaled" and
                    taken unmodified as pixels relative to
                    `xanchor` and `yanchor` in case of "pixel" size
                    mode. There are a few restrictions / quirks
                    only absolute instructions, not relative. So
                    the allowed segments are: M, L, H, V, Q, C, T,
                    S, and Z arcs (A) are not allowed because
                    radius rx and ry are relative. In the future we
                    could consider supporting relative commands,
                    but we would have to decide on how to handle
                    date and log axes. Note that even as is, Q and
                    C Bezier paths that are smooth on linear axes
                    may not be smooth on log, and vice versa. no
                    chained "polybezier" commands - specify the
                    segment type for each one. On category axes,
                    values are numbers scaled to the serial numbers
                    of categories because using the categories
                    themselves there would be no way to describe
                    fractional positions On data axes: because
                    space and T are both normal components of path
                    strings, we can't use either to separate date
                    from time parts. Therefore we'll use underscore
                    for this purpose: 2015-02-21_13:45:56.789
                templateitemname
                    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
                    Specifies the shape type to be drawn. If
                    "line", a line is drawn from (`x0`,`y0`) to
                    (`x1`,`y1`) with respect to the axes' sizing
                    mode. If "circle", a circle is drawn from
                    ((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius
                    (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2
                    -`y0`)|) with respect to the axes' sizing mode.
                    If "rect", a rectangle is drawn linking
                    (`x0`,`y0`), (`x1`,`y0`), (`x1`,`y1`),
                    (`x0`,`y1`), (`x0`,`y0`) with respect to the
                    axes' sizing mode. If "path", draw a custom SVG
                    path using `path`. with respect to the axes'
                    sizing mode.
                visible
                    Determines whether or not this shape is
                    visible.
                x0
                    Sets the shape's starting x position. See
                    `type` and `xsizemode` for more info.
                x1
                    Sets the shape's end x position. See `type` and
                    `xsizemode` for more info.
                xanchor
                    Only relevant in conjunction with `xsizemode`
                    set to "pixel". Specifies the anchor point on
                    the x axis to which `x0`, `x1` and x
                    coordinates within `path` are relative to. E.g.
                    useful to attach a pixel sized shape to a
                    certain data value. No effect when `xsizemode`
                    not set to "pixel".
                xref
                    Sets the shape's x coordinate axis. If set to
                    an x axis id (e.g. "x" or "x2"), the `x`
                    position refers to an x coordinate. If set to
                    "paper", the `x` position refers to the
                    distance from the left side of the plotting
                    area in normalized coordinates where 0 (1)
                    corresponds to the left (right) side. If the
                    axis `type` is "log", then you must take the
                    log of your desired range. If the axis `type`
                    is "date", then you must convert the date to
                    unix time in milliseconds.
                xsizemode
                    Sets the shapes's sizing mode along the x axis.
                    If set to "scaled", `x0`, `x1` and x
                    coordinates within `path` refer to data values
                    on the x axis or a fraction of the plot area's
                    width (`xref` set to "paper"). If set to
                    "pixel", `xanchor` specifies the x position in
                    terms of data or plot fraction but `x0`, `x1`
                    and x coordinates within `path` are pixels
                    relative to `xanchor`. This way, the shape can
                    have a fixed width while maintaining a position
                    relative to data or plot fraction.
                y0
                    Sets the shape's starting y position. See
                    `type` and `ysizemode` for more info.
                y1
                    Sets the shape's end y position. See `type` and
                    `ysizemode` for more info.
                yanchor
                    Only relevant in conjunction with `ysizemode`
                    set to "pixel". Specifies the anchor point on
                    the y axis to which `y0`, `y1` and y
                    coordinates within `path` are relative to. E.g.
                    useful to attach a pixel sized shape to a
                    certain data value. No effect when `ysizemode`
                    not set to "pixel".
                yref
                    Sets the annotation's y coordinate axis. If set
                    to an y axis id (e.g. "y" or "y2"), the `y`
                    position refers to an 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).
                ysizemode
                    Sets the shapes's sizing mode along the y axis.
                    If set to "scaled", `y0`, `y1` and y
                    coordinates within `path` refer to data values
                    on the y axis or a fraction of the plot area's
                    height (`yref` set to "paper"). If set to
                    "pixel", `yanchor` specifies the y position in
                    terms of data or plot fraction but `y0`, `y1`
                    and y coordinates within `path` are pixels
                    relative to `yanchor`. This way, the shape can
                    have a fixed height while maintaining a
                    position relative to data or plot fraction.

        Returns
        -------
        tuple[plotly.graph_objs.layout.Shape]
        shapesr   )r   r   r   r   r  fy s     #zLayout.shapesc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  
z s    c             C   s   | d S )a,  
        When used in a template (as
        layout.template.layout.shapedefaults), sets the default
        property values to use for elements of layout.shapes
    
        The 'shapedefaults' property is an instance of Shape
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Shape`
          - A dict of string/value properties that will be passed
            to the Shape constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.layout.Shape
        shapedefaultsr   )r   r   r   r   r  z s    zLayout.shapedefaultsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  %z s    c             C   s   | d S )a  
        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`.
    
        The 'showlegend' property must be specified as a bool
        (either True, or False)

        Returns
        -------
        bool
        r+   r   )r   r   r   r   r+   +z s    zLayout.showlegendc             C   s   || d< d S )Nr+   r   )r   r   r   r   r   r+   =z s    c             C   s   | d S )a  
        The 'sliders' property is a tuple of instances of
        Slider that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Slider
          - A list or tuple of dicts of string/value properties that
            will be passed to the Slider constructor
    
            Supported dict properties:
                
                active
                    Determines which button (by index starting from
                    0) is considered active.
                activebgcolor
                    Sets the background color of the slider grip
                    while dragging.
                bgcolor
                    Sets the background color of the slider.
                bordercolor
                    Sets the color of the border enclosing the
                    slider.
                borderwidth
                    Sets the width (in px) of the border enclosing
                    the slider.
                currentvalue
                    :class:`plotly.graph_objects.layout.slider.Curr
                    entvalue` instance or dict with compatible
                    properties
                font
                    Sets the font of the slider step labels.
                len
                    Sets the length of the slider This measure
                    excludes the padding of both ends. That is, the
                    slider's length is this length minus the
                    padding on both ends.
                lenmode
                    Determines whether this slider length is set in
                    units of plot "fraction" or in *pixels. Use
                    `len` to set the value.
                minorticklen
                    Sets the length in pixels of minor step tick
                    marks
                name
                    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.
                pad
                    Set the padding of the slider component along
                    each side.
                steps
                    A tuple of :class:`plotly.graph_objects.layout.
                    slider.Step` instances or dicts with compatible
                    properties
                stepdefaults
                    When used in a template (as
                    layout.template.layout.slider.stepdefaults),
                    sets the default property values to use for
                    elements of layout.slider.steps
                templateitemname
                    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`.
                tickcolor
                    Sets the color of the border enclosing the
                    slider.
                ticklen
                    Sets the length in pixels of step tick marks
                tickwidth
                    Sets the tick width (in px).
                transition
                    :class:`plotly.graph_objects.layout.slider.Tran
                    sition` instance or dict with compatible
                    properties
                visible
                    Determines whether or not the slider is
                    visible.
                x
                    Sets the x position (in normalized coordinates)
                    of the slider.
                xanchor
                    Sets the slider's horizontal position anchor.
                    This anchor binds the `x` position to the
                    "left", "center" or "right" of the range
                    selector.
                y
                    Sets the y position (in normalized coordinates)
                    of the slider.
                yanchor
                    Sets the slider's vertical position anchor This
                    anchor binds the `y` position to the "top",
                    "middle" or "bottom" of the range selector.

        Returns
        -------
        tuple[plotly.graph_objs.layout.Slider]
        slidersr   )r   r   r   r   r  Cz s    nzLayout.slidersc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  z s    c             C   s   | d S )a3  
        When used in a template (as
        layout.template.layout.sliderdefaults), sets the default
        property values to use for elements of layout.sliders
    
        The 'sliderdefaults' property is an instance of Slider
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Slider`
          - A dict of string/value properties that will be passed
            to the Slider constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.layout.Slider
        sliderdefaultsr   )r   r   r   r   r  z s    zLayout.sliderdefaultsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  z s    c             C   s   | d S )aI  
        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.
    
        The 'spikedistance' property is a integer and may be specified as:
          - An int (or float that will be cast to an int)
            in the interval [-1, 9223372036854775807]

        Returns
        -------
        int
        spikedistancer   )r   r   r   r   r  z s    zLayout.spikedistancec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  z s    c             C   s   | d S )a  
        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`.
    
        The 'sunburstcolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        sunburstcolorwayr   )r   r   r   r   r  z s    zLayout.sunburstcolorwayc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  z s    c             C   s   | d S )ag
  
        Default attributes to be applied to the plot. This should be a
        dict with format: `{'layout': layoutTemplate, 'data':
        {trace_type: [traceTemplate, ...], ...}}` where
        `layoutTemplate` is a dict matching the structure of
        `figure.layout` and `traceTemplate` is a dict matching the
        structure of the trace with type `trace_type` (e.g. 'scatter').
        Alternatively, this may be specified as an instance of
        plotly.graph_objs.layout.Template.  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 this can be used to add 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`.
    
        The 'template' property is an instance of Template
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Template`
          - A dict of string/value properties that will be passed
            to the Template constructor
    
            Supported dict properties:
                
                data
                    :class:`plotly.graph_objects.layout.template.Da
                    ta` instance or dict with compatible properties
                layout
                    :class:`plotly.graph_objects.Layout` instance
                    or dict with compatible properties
    
          - The name of a registered template where current registered templates
            are stored in the plotly.io.templates configuration object. The names
            of all registered templates can be retrieved with:
                >>> import plotly.io as pio
                >>> list(pio.templates)  # doctest: +ELLIPSIS
                ['ggplot2', 'seaborn', 'simple_white', 'plotly', 'plotly_white', ...]
    
          - A string containing multiple registered template names, joined on '+'
            characters (e.g. 'template1+template2'). In this case the resulting
            template is computed by merging together the collection of registered 
            templates

        Returns
        -------
        plotly.graph_objs.layout.Template
        templater   )r   r   r   r   r  { s    6zLayout.templatec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ={ s    c             C   s   | d S )a  
        The 'ternary' property is an instance of Ternary
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Ternary`
          - A dict of string/value properties that will be passed
            to the Ternary constructor
    
            Supported dict properties:
                
                aaxis
                    :class:`plotly.graph_objects.layout.ternary.Aax
                    is` instance or dict with compatible properties
                baxis
                    :class:`plotly.graph_objects.layout.ternary.Bax
                    is` instance or dict with compatible properties
                bgcolor
                    Set the background color of the subplot
                caxis
                    :class:`plotly.graph_objects.layout.ternary.Cax
                    is` instance or dict with compatible properties
                domain
                    :class:`plotly.graph_objects.layout.ternary.Dom
                    ain` instance or dict with compatible
                    properties
                sum
                    The number each triplet should sum to, and the
                    maximum range of each axis
                uirevision
                    Controls persistence of user-driven changes in
                    axis `min` and `title`, if not overridden in
                    the individual axes. Defaults to
                    `layout.uirevision`.

        Returns
        -------
        plotly.graph_objs.layout.Ternary
        r  r   )r   r   r   r   r  C{ s    'zLayout.ternaryc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  l{ s    c             C   s   | d S )a  
        The 'title' property is an instance of Title
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Title`
          - A dict of string/value properties that will be passed
            to the Title constructor
    
            Supported dict properties:
                
                font
                    Sets the title font. Note that the title's font
                    used to be customized by the now deprecated
                    `titlefont` attribute.
                pad
                    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".
                text
                    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
                    Sets the x position with respect to `xref` in
                    normalized coordinates from 0 (left) to 1
                    (right).
                xanchor
                    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
                    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
                    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
                    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
                    Sets the container `y` refers to. "container"
                    spans the entire `height` of the plot. "paper"
                    refers to the height of the plotting area only.

        Returns
        -------
        plotly.graph_objs.layout.Title
        r  r   )r   r   r   r   r  r{ s    DzLayout.titlec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  { s    c             C   s   | d S )aH  
        Deprecated: Please use layout.title.font instead. Sets the
        title font. Note that the title's font used to be customized by
        the now deprecated `titlefont` attribute.
    
        The 'font' property is an instance of Font
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.title.Font`
          - A dict of string/value properties that will be passed
            to the Font constructor
    
            Supported dict properties:
                
                color
    
                family
                    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 plotly service (at https://plot.ly
                    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

        Returns
        -------
        
        r  r   )r   r   r   r   r  { s    'zLayout.titlefontc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  { s    c             C   s   | d S )a  
        Sets transition options used during Plotly.react updates.
    
        The 'transition' property is an instance of Transition
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Transition`
          - A dict of string/value properties that will be passed
            to the Transition constructor
    
            Supported dict properties:
                
                duration
                    The duration of the transition, in
                    milliseconds. If equal to zero, updates are
                    synchronous.
                easing
                    The easing function used for the transition
                ordering
                    Determines whether the figure's layout or
                    traces smoothly transitions during updates that
                    make both traces and layout change.

        Returns
        -------
        plotly.graph_objs.layout.Transition
        
transitionr   )r   r   r   r   r  { s    zLayout.transitionc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  | s    c             C   s   | d S )a  
        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`.
    
        The 'treemapcolorway' property is a colorlist that may be specified
        as a tuple, list, one-dimensional numpy array, or pandas Series of valid
        color strings

        Returns
        -------
        list
        treemapcolorwayr   )r   r   r   r   r  | s    zLayout.treemapcolorwayc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  #| s    c             C   s   | d S )a  
        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.
    
        The 'uirevision' property accepts values of any type

        Returns
        -------
        Any
        r8   r   )r   r   r   r   r8   )| s    zLayout.uirevisionc             C   s   || d< d S )Nr8   r   )r   r   r   r   r   r8   E| s    c             C   s   | d S )a  
        The 'uniformtext' property is an instance of Uniformtext
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Uniformtext`
          - A dict of string/value properties that will be passed
            to the Uniformtext constructor
    
            Supported dict properties:
                
                minsize
                    Sets the minimum text size between traces of
                    the same type.
                mode
                    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.

        Returns
        -------
        plotly.graph_objs.layout.Uniformtext
        uniformtextr   )r   r   r   r   r  K| s    zLayout.uniformtextc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  k| s    c             C   s   | d S )ai  
        The 'updatemenus' property is a tuple of instances of
        Updatemenu that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.layout.Updatemenu
          - A list or tuple of dicts of string/value properties that
            will be passed to the Updatemenu constructor
    
            Supported dict properties:
                
                active
                    Determines which button (by index starting from
                    0) is considered active.
                bgcolor
                    Sets the background color of the update menu
                    buttons.
                bordercolor
                    Sets the color of the border enclosing the
                    update menu.
                borderwidth
                    Sets the width (in px) of the border enclosing
                    the update menu.
                buttons
                    A tuple of :class:`plotly.graph_objects.layout.
                    updatemenu.Button` instances or dicts with
                    compatible properties
                buttondefaults
                    When used in a template (as layout.template.lay
                    out.updatemenu.buttondefaults), sets the
                    default property values to use for elements of
                    layout.updatemenu.buttons
                direction
                    Determines the direction in which the buttons
                    are laid out, whether in a dropdown menu or a
                    row/column of buttons. For `left` and `up`, the
                    buttons will still appear in left-to-right or
                    top-to-bottom order respectively.
                font
                    Sets the font of the update menu button text.
                name
                    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.
                pad
                    Sets the padding around the buttons or dropdown
                    menu.
                showactive
                    Highlights active dropdown item or active
                    button if true.
                templateitemname
                    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
                    Determines whether the buttons are accessible
                    via a dropdown menu or whether the buttons are
                    stacked horizontally or vertically
                visible
                    Determines whether or not the update menu is
                    visible.
                x
                    Sets the x position (in normalized coordinates)
                    of the update menu.
                xanchor
                    Sets the update menu's horizontal position
                    anchor. This anchor binds the `x` position to
                    the "left", "center" or "right" of the range
                    selector.
                y
                    Sets the y position (in normalized coordinates)
                    of the update menu.
                yanchor
                    Sets the update menu's vertical position anchor
                    This anchor binds the `y` position to the
                    "top", "middle" or "bottom" of the range
                    selector.

        Returns
        -------
        tuple[plotly.graph_objs.layout.Updatemenu]
        updatemenusr   )r   r   r   r   r  q| s    _zLayout.updatemenusc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  | s    c             C   s   | d S )aO  
        When used in a template (as
        layout.template.layout.updatemenudefaults), sets the default
        property values to use for elements of layout.updatemenus
    
        The 'updatemenudefaults' property is an instance of Updatemenu
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.Updatemenu`
          - A dict of string/value properties that will be passed
            to the Updatemenu constructor
    
            Supported dict properties:

        Returns
        -------
        plotly.graph_objs.layout.Updatemenu
        updatemenudefaultsr   )r   r   r   r   r  | s    zLayout.updatemenudefaultsc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  | s    c             C   s   | d S )aS  
        Sets the gap (in plot fraction) between violins of adjacent
        location coordinates. Has no effect on traces that have "width"
        set.
    
        The 'violingap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        	violingapr   )r   r   r   r   r  | s    zLayout.violingapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  } s    c             C   s   | d S )aW  
        Sets the gap (in plot fraction) between violins of the same
        location coordinate. Has no effect on traces that have "width"
        set.
    
        The 'violingroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        violingroupgapr   )r   r   r   r   r  	} s    zLayout.violingroupgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  } s    c             C   s   | d S )ah  
        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.
    
        The 'violinmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        
violinmoder   )r   r   r   r   r  } s    zLayout.violinmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  3} s    c             C   s   | d S )a  
        Sets the gap (in plot fraction) between bars of adjacent
        location coordinates.
    
        The 'waterfallgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        waterfallgapr   )r   r   r   r   r  9} s    zLayout.waterfallgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  H} s    c             C   s   | d S )a   
        Sets the gap (in plot fraction) between bars of the same
        location coordinate.
    
        The 'waterfallgroupgap' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        waterfallgroupgapr   )r   r   r   r   r  N} s    zLayout.waterfallgroupgapc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  ]} s    c             C   s   | d S )a&  
        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 an "opacity" to see multiple bars.
    
        The 'waterfallmode' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['group', 'overlay']

        Returns
        -------
        Any
        waterfallmoder   )r   r   r   r   r  c} s    zLayout.waterfallmodec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  v} s    c             C   s   | d S )z
        Sets the plot's width (in px).
    
        The 'width' property is a number and may be specified as:
          - An int or float in the interval [10, inf]

        Returns
        -------
        int|float
        r:   r   )r   r   r   r   r:   |} s    zLayout.widthc             C   s   || d< d S )Nr:   r   )r   r   r   r   r   r:   } s    c             C   s   | d S )aB\  
        The 'xaxis' property is an instance of XAxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.XAxis`
          - A dict of string/value properties that will be passed
            to the XAxis constructor
    
            Supported dict properties:
                
                anchor
                    If set to an opposite-letter axis id (e.g.
                    `x2`, `y`), this axis is bound to the
                    corresponding opposite-letter axis. If set to
                    "free", this axis' position is determined by
                    `position`.
                automargin
                    Determines whether long tick labels
                    automatically grow the figure margins.
                autorange
                    Determines whether or not the range of this
                    axis is computed in relation to the input data.
                    See `rangemode` for more info. If `range` is
                    provided, then `autorange` is set to False.
                calendar
                    Sets the calendar system to use for `range` and
                    `tick0` if this is a date axis. This does not
                    set the calendar for interpreting data on this
                    axis, that's specified in the trace or via the
                    global `layout.calendar`
                categoryarray
                    Sets the order in which categories on this axis
                    appear. Only has an effect if `categoryorder`
                    is set to "array". Used with `categoryorder`.
                categoryarraysrc
                    Sets the source reference on plot.ly for
                    categoryarray .
                categoryorder
                    Specifies the ordering logic for the case of
                    categorical variables. By default, plotly uses
                    "trace", which specifies the order that is
                    present in the data supplied. Set
                    `categoryorder` to *category ascending* or
                    *category descending* if order should be
                    determined by the alphanumerical order of the
                    category names. Set `categoryorder` to "array"
                    to derive the ordering from the attribute
                    `categoryarray`. If a category is not found in
                    the `categoryarray` array, the sorting behavior
                    for that attribute will be identical to the
                    "trace" mode. The unspecified categories will
                    follow the categories in `categoryarray`. Set
                    `categoryorder` to *total ascending* or *total
                    descending* if order should be determined by
                    the numerical order of the values. Similarly,
                    the order can be determined by the min, max,
                    sum, mean or median of all the values.
                color
                    Sets default for all colors associated with
                    this axis all at once: line, font, tick, and
                    grid colors. Grid color is lightened by
                    blending this with the plot background
                    Individual pieces can override this.
                constrain
                    If this axis needs to be compressed (either due
                    to its own `scaleanchor` and `scaleratio` or
                    those of the other axis), determines how that
                    happens: by increasing the "range" (default),
                    or by decreasing the "domain".
                constraintoward
                    If this axis needs to be compressed (either due
                    to its own `scaleanchor` and `scaleratio` or
                    those of the other axis), determines which
                    direction we push the originally specified plot
                    area. Options are "left", "center" (default),
                    and "right" for x axes, and "top", "middle"
                    (default), and "bottom" for y axes.
                dividercolor
                    Sets the color of the dividers Only has an
                    effect on "multicategory" axes.
                dividerwidth
                    Sets the width (in px) of the dividers Only has
                    an effect on "multicategory" axes.
                domain
                    Sets the domain of this axis (in plot
                    fraction).
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                fixedrange
                    Determines whether or not this axis is zoom-
                    able. If true, then zoom is disabled.
                gridcolor
                    Sets the color of the grid lines.
                gridwidth
                    Sets the width (in px) of the grid lines.
                hoverformat
                    Sets the hover text formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                layer
                    Sets the layer on which this axis is displayed.
                    If *above traces*, this axis is displayed above
                    all the subplot's traces If *below traces*,
                    this axis is displayed below all the subplot's
                    traces, but above the grid lines. Useful when
                    used together with scatter-like traces with
                    `cliponaxis` set to False to show markers
                    and/or text nodes above this axis.
                linecolor
                    Sets the axis line color.
                linewidth
                    Sets the width (in px) of the axis line.
                matches
                    If set to another axis id (e.g. `x2`, `y`), the
                    range of this axis will match the range of the
                    corresponding axis in data-coordinates space.
                    Moreover, matching axes share auto-range
                    values, category lists and histogram auto-bins.
                    Note that setting axes simultaneously in both a
                    `scaleanchor` and a `matches` constraint is
                    currently forbidden. Moreover, note that
                    matching axes must have the same `type`.
                mirror
                    Determines if the axis lines or/and ticks are
                    mirrored to the opposite side of the plotting
                    area. If True, the axis lines are mirrored. If
                    "ticks", the axis lines and ticks are mirrored.
                    If False, mirroring is disable. If "all", axis
                    lines are mirrored on all shared-axes subplots.
                    If "allticks", axis lines and ticks are
                    mirrored on all shared-axes subplots.
                nticks
                    Specifies the maximum number of ticks for the
                    particular axis. The actual number of ticks
                    will be chosen automatically to be less than or
                    equal to `nticks`. Has an effect only if
                    `tickmode` is set to "auto".
                overlaying
                    If set a same-letter axis id, this axis is
                    overlaid on top of the corresponding same-
                    letter axis, with traces and axes visible for
                    both axes. If False, this axis does not overlay
                    any same-letter axes. In this case, for axes
                    with overlapping domains only the highest-
                    numbered axis will be visible.
                position
                    Sets the position of this axis in the plotting
                    space (in normalized coordinates). Only has an
                    effect if `anchor` is set to "free".
                range
                    Sets the range of this axis. If the axis `type`
                    is "log", then you must take the log of your
                    desired range (e.g. to set the range from 1 to
                    100, set the range from 0 to 2). If the axis
                    `type` is "date", it should be date strings,
                    like date data, though Date objects and unix
                    milliseconds will be accepted and converted to
                    strings. If the axis `type` is "category", it
                    should be numbers, using the scale where each
                    category is assigned a serial number from zero
                    in the order it appears.
                rangemode
                    If "normal", the range is computed in relation
                    to the extrema of the input data. If *tozero*`,
                    the range extends to 0, regardless of the input
                    data If "nonnegative", the range is non-
                    negative, regardless of the input data. Applies
                    only to linear axes.
                rangeselector
                    :class:`plotly.graph_objects.layout.xaxis.Range
                    selector` instance or dict with compatible
                    properties
                rangeslider
                    :class:`plotly.graph_objects.layout.xaxis.Range
                    slider` instance or dict with compatible
                    properties
                scaleanchor
                    If set to another axis id (e.g. `x2`, `y`), the
                    range of this axis changes together with the
                    range of the corresponding axis such that the
                    scale of pixels per unit is in a constant
                    ratio. Both axes are still zoomable, but when
                    you zoom one, the other will zoom the same
                    amount, keeping a fixed midpoint. `constrain`
                    and `constraintoward` determine how we enforce
                    the constraint. You can chain these, ie `yaxis:
                    {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}`
                    but you can only link axes of the same `type`.
                    The linked axis can have the opposite letter
                    (to constrain the aspect ratio) or the same
                    letter (to match scales across subplots). Loops
                    (`yaxis: {scaleanchor: *x*}, xaxis:
                    {scaleanchor: *y*}` or longer) are redundant
                    and the last constraint encountered will be
                    ignored to avoid possible inconsistent
                    constraints via `scaleratio`. Note that setting
                    axes simultaneously in both a `scaleanchor` and
                    a `matches` constraint is currently forbidden.
                scaleratio
                    If this axis is linked to another by
                    `scaleanchor`, this determines the pixel to
                    unit scale ratio. For example, if this value is
                    10, then every unit on this axis spans 10 times
                    the number of pixels as a unit on the linked
                    axis. Use this for example to create an
                    elevation profile where the vertical scale is
                    exaggerated a fixed amount with respect to the
                    horizontal.
                separatethousands
                    If "true", even 4-digit integers are separated
                showdividers
                    Determines whether or not a dividers are drawn
                    between the category levels of this axis. Only
                    has an effect on "multicategory" axes.
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showgrid
                    Determines whether or not grid lines are drawn.
                    If True, the grid lines are drawn at every tick
                    mark.
                showline
                    Determines whether or not a line bounding this
                    axis is drawn.
                showspikes
                    Determines whether or not spikes (aka
                    droplines) are drawn for this axis. Note: This
                    only takes affect when hovermode = closest
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                side
                    Determines whether a x (y) axis is positioned
                    at the "bottom" ("left") or "top" ("right") of
                    the plotting area.
                spikecolor
                    Sets the spike color. If undefined, will use
                    the series color
                spikedash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                spikemode
                    Determines the drawing mode for the spike line
                    If "toaxis", the line is drawn from the data
                    point to the axis the  series is plotted on. If
                    "across", the line is drawn across the entire
                    plot area, and supercedes "toaxis". If
                    "marker", then a marker dot is drawn on the
                    axis the series is plotted on
                spikesnap
                    Determines whether spikelines are stuck to the
                    cursor or to the closest datapoints.
                spikethickness
                    Sets the width (in px) of the zero line.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the tick font.
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.layout.
                    xaxis.Tickformatstop` instances or dicts with
                    compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.lay
                    out.xaxis.tickformatstopdefaults), sets the
                    default property values to use for elements of
                    layout.xaxis.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    Determines whether ticks are drawn or not. If
                    "", this axis' ticks are not drawn. If
                    "outside" ("inside"), this axis' are drawn
                    outside (inside) the axis lines.
                tickson
                    Determines where ticks and grid lines are drawn
                    with respect to their corresponding tick
                    labels. Only has an effect for axes of `type`
                    "category" or "multicategory". When set to
                    "boundaries", ticks and grid lines are drawn
                    half a category to the left/bottom of labels.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.layout.xaxis.Title
                    ` instance or dict with compatible properties
                titlefont
                    Deprecated: Please use layout.xaxis.title.font
                    instead. Sets this axis' title font. Note that
                    the title's font used to be customized by the
                    now deprecated `titlefont` attribute.
                type
                    Sets the axis type. By default, plotly attempts
                    to determined the axis type by looking into the
                    data of the traces that referenced the axis in
                    question.
                uirevision
                    Controls persistence of user-driven changes in
                    axis `range`, `autorange`, and `title` if in
                    `editable: true` configuration. Defaults to
                    `layout.uirevision`.
                visible
                    A single toggle to hide the axis while
                    preserving interaction like dragging. Default
                    is true when a cheater plot is present on the
                    axis, otherwise false
                zeroline
                    Determines whether or not a line is drawn at
                    along the 0 value of this axis. If True, the
                    zero line is drawn on top of the grid lines.
                zerolinecolor
                    Sets the line color of the zero line.
                zerolinewidth
                    Sets the width (in px) of the zero line.

        Returns
        -------
        plotly.graph_objs.layout.XAxis
        r>   r   )r   r   r   r   r>   } s       7zLayout.xaxisc             C   s   || d< d S )Nr>   r   )r   r   r   r   r   r>   F s    c             C   s   | d S )aZ  
        The 'yaxis' property is an instance of YAxis
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.layout.YAxis`
          - A dict of string/value properties that will be passed
            to the YAxis constructor
    
            Supported dict properties:
                
                anchor
                    If set to an opposite-letter axis id (e.g.
                    `x2`, `y`), this axis is bound to the
                    corresponding opposite-letter axis. If set to
                    "free", this axis' position is determined by
                    `position`.
                automargin
                    Determines whether long tick labels
                    automatically grow the figure margins.
                autorange
                    Determines whether or not the range of this
                    axis is computed in relation to the input data.
                    See `rangemode` for more info. If `range` is
                    provided, then `autorange` is set to False.
                calendar
                    Sets the calendar system to use for `range` and
                    `tick0` if this is a date axis. This does not
                    set the calendar for interpreting data on this
                    axis, that's specified in the trace or via the
                    global `layout.calendar`
                categoryarray
                    Sets the order in which categories on this axis
                    appear. Only has an effect if `categoryorder`
                    is set to "array". Used with `categoryorder`.
                categoryarraysrc
                    Sets the source reference on plot.ly for
                    categoryarray .
                categoryorder
                    Specifies the ordering logic for the case of
                    categorical variables. By default, plotly uses
                    "trace", which specifies the order that is
                    present in the data supplied. Set
                    `categoryorder` to *category ascending* or
                    *category descending* if order should be
                    determined by the alphanumerical order of the
                    category names. Set `categoryorder` to "array"
                    to derive the ordering from the attribute
                    `categoryarray`. If a category is not found in
                    the `categoryarray` array, the sorting behavior
                    for that attribute will be identical to the
                    "trace" mode. The unspecified categories will
                    follow the categories in `categoryarray`. Set
                    `categoryorder` to *total ascending* or *total
                    descending* if order should be determined by
                    the numerical order of the values. Similarly,
                    the order can be determined by the min, max,
                    sum, mean or median of all the values.
                color
                    Sets default for all colors associated with
                    this axis all at once: line, font, tick, and
                    grid colors. Grid color is lightened by
                    blending this with the plot background
                    Individual pieces can override this.
                constrain
                    If this axis needs to be compressed (either due
                    to its own `scaleanchor` and `scaleratio` or
                    those of the other axis), determines how that
                    happens: by increasing the "range" (default),
                    or by decreasing the "domain".
                constraintoward
                    If this axis needs to be compressed (either due
                    to its own `scaleanchor` and `scaleratio` or
                    those of the other axis), determines which
                    direction we push the originally specified plot
                    area. Options are "left", "center" (default),
                    and "right" for x axes, and "top", "middle"
                    (default), and "bottom" for y axes.
                dividercolor
                    Sets the color of the dividers Only has an
                    effect on "multicategory" axes.
                dividerwidth
                    Sets the width (in px) of the dividers Only has
                    an effect on "multicategory" axes.
                domain
                    Sets the domain of this axis (in plot
                    fraction).
                dtick
                    Sets the step in-between ticks on this axis.
                    Use with `tick0`. Must be a positive number, or
                    special strings available to "log" and "date"
                    axes. If the axis `type` is "log", then ticks
                    are set every 10^(n*dtick) where n is the tick
                    number. For example, to set a tick mark at 1,
                    10, 100, 1000, ... set dtick to 1. To set tick
                    marks at 1, 100, 10000, ... set dtick to 2. To
                    set tick marks at 1, 5, 25, 125, 625, 3125, ...
                    set dtick to log_10(5), or 0.69897000433. "log"
                    has several special values; "L<f>", where `f`
                    is a positive number, gives ticks linearly
                    spaced in value (but not position). For example
                    `tick0` = 0.1, `dtick` = "L0.5" will put ticks
                    at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10
                    plus small digits between, use "D1" (all
                    digits) or "D2" (only 2 and 5). `tick0` is
                    ignored for "D1" and "D2". If the axis `type`
                    is "date", then you must convert the time to
                    milliseconds. For example, to set the interval
                    between ticks to one day, set `dtick` to
                    86400000.0. "date" also has special values
                    "M<n>" gives ticks spaced by a number of
                    months. `n` must be a positive integer. To set
                    ticks on the 15th of every third month, set
                    `tick0` to "2000-01-15" and `dtick` to "M3". To
                    set ticks every 4 years, set `dtick` to "M48"
                exponentformat
                    Determines a formatting rule for the tick
                    exponents. For example, consider the number
                    1,000,000,000. If "none", it appears as
                    1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
                    "power", 1x10^9 (with 9 in a super script). If
                    "SI", 1G. If "B", 1B.
                fixedrange
                    Determines whether or not this axis is zoom-
                    able. If true, then zoom is disabled.
                gridcolor
                    Sets the color of the grid lines.
                gridwidth
                    Sets the width (in px) of the grid lines.
                hoverformat
                    Sets the hover text formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                layer
                    Sets the layer on which this axis is displayed.
                    If *above traces*, this axis is displayed above
                    all the subplot's traces If *below traces*,
                    this axis is displayed below all the subplot's
                    traces, but above the grid lines. Useful when
                    used together with scatter-like traces with
                    `cliponaxis` set to False to show markers
                    and/or text nodes above this axis.
                linecolor
                    Sets the axis line color.
                linewidth
                    Sets the width (in px) of the axis line.
                matches
                    If set to another axis id (e.g. `x2`, `y`), the
                    range of this axis will match the range of the
                    corresponding axis in data-coordinates space.
                    Moreover, matching axes share auto-range
                    values, category lists and histogram auto-bins.
                    Note that setting axes simultaneously in both a
                    `scaleanchor` and a `matches` constraint is
                    currently forbidden. Moreover, note that
                    matching axes must have the same `type`.
                mirror
                    Determines if the axis lines or/and ticks are
                    mirrored to the opposite side of the plotting
                    area. If True, the axis lines are mirrored. If
                    "ticks", the axis lines and ticks are mirrored.
                    If False, mirroring is disable. If "all", axis
                    lines are mirrored on all shared-axes subplots.
                    If "allticks", axis lines and ticks are
                    mirrored on all shared-axes subplots.
                nticks
                    Specifies the maximum number of ticks for the
                    particular axis. The actual number of ticks
                    will be chosen automatically to be less than or
                    equal to `nticks`. Has an effect only if
                    `tickmode` is set to "auto".
                overlaying
                    If set a same-letter axis id, this axis is
                    overlaid on top of the corresponding same-
                    letter axis, with traces and axes visible for
                    both axes. If False, this axis does not overlay
                    any same-letter axes. In this case, for axes
                    with overlapping domains only the highest-
                    numbered axis will be visible.
                position
                    Sets the position of this axis in the plotting
                    space (in normalized coordinates). Only has an
                    effect if `anchor` is set to "free".
                range
                    Sets the range of this axis. If the axis `type`
                    is "log", then you must take the log of your
                    desired range (e.g. to set the range from 1 to
                    100, set the range from 0 to 2). If the axis
                    `type` is "date", it should be date strings,
                    like date data, though Date objects and unix
                    milliseconds will be accepted and converted to
                    strings. If the axis `type` is "category", it
                    should be numbers, using the scale where each
                    category is assigned a serial number from zero
                    in the order it appears.
                rangemode
                    If "normal", the range is computed in relation
                    to the extrema of the input data. If *tozero*`,
                    the range extends to 0, regardless of the input
                    data If "nonnegative", the range is non-
                    negative, regardless of the input data. Applies
                    only to linear axes.
                scaleanchor
                    If set to another axis id (e.g. `x2`, `y`), the
                    range of this axis changes together with the
                    range of the corresponding axis such that the
                    scale of pixels per unit is in a constant
                    ratio. Both axes are still zoomable, but when
                    you zoom one, the other will zoom the same
                    amount, keeping a fixed midpoint. `constrain`
                    and `constraintoward` determine how we enforce
                    the constraint. You can chain these, ie `yaxis:
                    {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}`
                    but you can only link axes of the same `type`.
                    The linked axis can have the opposite letter
                    (to constrain the aspect ratio) or the same
                    letter (to match scales across subplots). Loops
                    (`yaxis: {scaleanchor: *x*}, xaxis:
                    {scaleanchor: *y*}` or longer) are redundant
                    and the last constraint encountered will be
                    ignored to avoid possible inconsistent
                    constraints via `scaleratio`. Note that setting
                    axes simultaneously in both a `scaleanchor` and
                    a `matches` constraint is currently forbidden.
                scaleratio
                    If this axis is linked to another by
                    `scaleanchor`, this determines the pixel to
                    unit scale ratio. For example, if this value is
                    10, then every unit on this axis spans 10 times
                    the number of pixels as a unit on the linked
                    axis. Use this for example to create an
                    elevation profile where the vertical scale is
                    exaggerated a fixed amount with respect to the
                    horizontal.
                separatethousands
                    If "true", even 4-digit integers are separated
                showdividers
                    Determines whether or not a dividers are drawn
                    between the category levels of this axis. Only
                    has an effect on "multicategory" axes.
                showexponent
                    If "all", all exponents are shown besides their
                    significands. If "first", only the exponent of
                    the first tick is shown. If "last", only the
                    exponent of the last tick is shown. If "none",
                    no exponents appear.
                showgrid
                    Determines whether or not grid lines are drawn.
                    If True, the grid lines are drawn at every tick
                    mark.
                showline
                    Determines whether or not a line bounding this
                    axis is drawn.
                showspikes
                    Determines whether or not spikes (aka
                    droplines) are drawn for this axis. Note: This
                    only takes affect when hovermode = closest
                showticklabels
                    Determines whether or not the tick labels are
                    drawn.
                showtickprefix
                    If "all", all tick labels are displayed with a
                    prefix. If "first", only the first tick is
                    displayed with a prefix. If "last", only the
                    last tick is displayed with a suffix. If
                    "none", tick prefixes are hidden.
                showticksuffix
                    Same as `showtickprefix` but for tick suffixes.
                side
                    Determines whether a x (y) axis is positioned
                    at the "bottom" ("left") or "top" ("right") of
                    the plotting area.
                spikecolor
                    Sets the spike color. If undefined, will use
                    the series color
                spikedash
                    Sets the dash style of lines. Set to a dash
                    type string ("solid", "dot", "dash",
                    "longdash", "dashdot", or "longdashdot") or a
                    dash length list in px (eg "5px,10px,2px,2px").
                spikemode
                    Determines the drawing mode for the spike line
                    If "toaxis", the line is drawn from the data
                    point to the axis the  series is plotted on. If
                    "across", the line is drawn across the entire
                    plot area, and supercedes "toaxis". If
                    "marker", then a marker dot is drawn on the
                    axis the series is plotted on
                spikesnap
                    Determines whether spikelines are stuck to the
                    cursor or to the closest datapoints.
                spikethickness
                    Sets the width (in px) of the zero line.
                tick0
                    Sets the placement of the first tick on this
                    axis. Use with `dtick`. If the axis `type` is
                    "log", then you must take the log of your
                    starting tick (e.g. to set the starting tick to
                    100, set the `tick0` to 2) except when
                    `dtick`=*L<f>* (see `dtick` for more info). If
                    the axis `type` is "date", it should be a date
                    string, like date data. If the axis `type` is
                    "category", it should be a number, using the
                    scale where each category is assigned a serial
                    number from zero in the order it appears.
                tickangle
                    Sets the angle of the tick labels with respect
                    to the horizontal. For example, a `tickangle`
                    of -90 draws the tick labels vertically.
                tickcolor
                    Sets the tick color.
                tickfont
                    Sets the tick font.
                tickformat
                    Sets the tick label formatting rule using d3
                    formatting mini-languages which are very
                    similar to those in Python. For numbers, see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Formatting.md#d3_format
                    And for dates see:
                    https://github.com/d3/d3-3.x-api-
                    reference/blob/master/Time-Formatting.md#format
                    We add one item to d3's date formatter: "%{n}f"
                    for fractional seconds with n digits. For
                    example, *2016-10-13 09:15:23.456* with
                    tickformat "%H~%M~%S.%2f" would display
                    "09~15~23.46"
                tickformatstops
                    A tuple of :class:`plotly.graph_objects.layout.
                    yaxis.Tickformatstop` instances or dicts with
                    compatible properties
                tickformatstopdefaults
                    When used in a template (as layout.template.lay
                    out.yaxis.tickformatstopdefaults), sets the
                    default property values to use for elements of
                    layout.yaxis.tickformatstops
                ticklen
                    Sets the tick length (in px).
                tickmode
                    Sets the tick mode for this axis. If "auto",
                    the number of ticks is set via `nticks`. If
                    "linear", the placement of the ticks is
                    determined by a starting position `tick0` and a
                    tick step `dtick` ("linear" is the default
                    value if `tick0` and `dtick` are provided). If
                    "array", the placement of the ticks is set via
                    `tickvals` and the tick text is `ticktext`.
                    ("array" is the default value if `tickvals` is
                    provided).
                tickprefix
                    Sets a tick label prefix.
                ticks
                    Determines whether ticks are drawn or not. If
                    "", this axis' ticks are not drawn. If
                    "outside" ("inside"), this axis' are drawn
                    outside (inside) the axis lines.
                tickson
                    Determines where ticks and grid lines are drawn
                    with respect to their corresponding tick
                    labels. Only has an effect for axes of `type`
                    "category" or "multicategory". When set to
                    "boundaries", ticks and grid lines are drawn
                    half a category to the left/bottom of labels.
                ticksuffix
                    Sets a tick label suffix.
                ticktext
                    Sets the text displayed at the ticks position
                    via `tickvals`. Only has an effect if
                    `tickmode` is set to "array". Used with
                    `tickvals`.
                ticktextsrc
                    Sets the source reference on plot.ly for
                    ticktext .
                tickvals
                    Sets the values at which ticks on this axis
                    appear. Only has an effect if `tickmode` is set
                    to "array". Used with `ticktext`.
                tickvalssrc
                    Sets the source reference on plot.ly for
                    tickvals .
                tickwidth
                    Sets the tick width (in px).
                title
                    :class:`plotly.graph_objects.layout.yaxis.Title
                    ` instance or dict with compatible properties
                titlefont
                    Deprecated: Please use layout.yaxis.title.font
                    instead. Sets this axis' title font. Note that
                    the title's font used to be customized by the
                    now deprecated `titlefont` attribute.
                type
                    Sets the axis type. By default, plotly attempts
                    to determined the axis type by looking into the
                    data of the traces that referenced the axis in
                    question.
                uirevision
                    Controls persistence of user-driven changes in
                    axis `range`, `autorange`, and `title` if in
                    `editable: true` configuration. Defaults to
                    `layout.uirevision`.
                visible
                    A single toggle to hide the axis while
                    preserving interaction like dragging. Default
                    is true when a cheater plot is present on the
                    axis, otherwise false
                zeroline
                    Determines whether or not a line is drawn at
                    along the 0 value of this axis. If True, the
                    zero line is drawn on top of the grid lines.
                zerolinecolor
                    Sets the line color of the zero line.
                zerolinewidth
                    Sets the width (in px) of the zero line.

        Returns
        -------
        plotly.graph_objs.layout.YAxis
        rB   r   )r   r   r   r   rB   L s       /zLayout.yaxisc             C   s   || d< d S )NrB   r   )r   r   r   r   r   rB    s    c             C   s   dS )NrF   r   )r   r   r   r   rG     s    zLayout._parent_path_strc             C   s   dS )NaS          angularaxis
            :class:`plotly.graph_objects.layout.AngularAxis`
            instance or dict with compatible properties
        annotations
            A tuple of
            :class:`plotly.graph_objects.layout.Annotation`
            instances or dicts with compatible properties
        annotationdefaults
            When used in a template (as
            layout.template.layout.annotationdefaults), sets the
            default property values to use for elements of
            layout.annotations
        autosize
            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.
        bargap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        bargroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        barmode
            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 an
            "opacity" to see multiple bars.
        barnorm
            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
            Sets the gap (in plot fraction) between boxes of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        boxgroupgap
            Sets the gap (in plot fraction) between boxes of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        boxmode
            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.
        calendar
            Sets the default calendar system to use for
            interpreting and displaying dates throughout the plot.
        clickmode
            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.
        coloraxis
            :class:`plotly.graph_objects.layout.Coloraxis` instance
            or dict with compatible properties
        colorscale
            :class:`plotly.graph_objects.layout.Colorscale`
            instance or dict with compatible properties
        colorway
            Sets the default trace colors.
        datarevision
            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.
        direction
            Legacy polar charts are deprecated! Please switch to
            "polar" subplots. Sets the direction corresponding to
            positive angles in legacy polar charts.
        dragmode
            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.
        editrevision
            Controls persistence of user-driven changes in
            `editable: true` configuration, other than trace names
            and axis titles. Defaults to `layout.uirevision`.
        extendfunnelareacolors
            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.
        extendpiecolors
            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.
        extendsunburstcolors
            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.
        extendtreemapcolors
            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.
        font
            Sets the global font. Note that fonts used in traces
            and other layout components inherit from the global
            font.
        funnelareacolorway
            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`.
        funnelgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        funnelgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        funnelmode
            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 an "opacity" to see
            multiple bars.
        geo
            :class:`plotly.graph_objects.layout.Geo` instance or
            dict with compatible properties
        grid
            :class:`plotly.graph_objects.layout.Grid` instance or
            dict with compatible properties
        height
            Sets the plot's height (in px).
        hiddenlabels
            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
        hiddenlabelssrc
            Sets the source reference on plot.ly for  hiddenlabels
            .
        hidesources
            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 plotly
            service (at https://plot.ly or on-premise).
        hoverdistance
            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.
        hoverlabel
            :class:`plotly.graph_objects.layout.Hoverlabel`
            instance or dict with compatible properties
        hovermode
            Determines the mode of hover interactions. If
            `clickmode` includes the "select" flag, `hovermode`
            defaults to "closest". If `clickmode` lacks the
            "select" flag, it defaults to "x" or "y" (depending on
            the trace's `orientation` value) for plots based on
            cartesian coordinates. For anything else the default
            value is "closest".
        images
            A tuple of :class:`plotly.graph_objects.layout.Image`
            instances or dicts with compatible properties
        imagedefaults
            When used in a template (as
            layout.template.layout.imagedefaults), sets the default
            property values to use for elements of layout.images
        legend
            :class:`plotly.graph_objects.layout.Legend` instance or
            dict with compatible properties
        mapbox
            :class:`plotly.graph_objects.layout.Mapbox` instance or
            dict with compatible properties
        margin
            :class:`plotly.graph_objects.layout.Margin` instance or
            dict with compatible properties
        meta
            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]}.
        metasrc
            Sets the source reference on plot.ly for  meta .
        modebar
            :class:`plotly.graph_objects.layout.Modebar` instance
            or dict with compatible properties
        orientation
            Legacy polar charts are deprecated! Please switch to
            "polar" subplots. Rotates the entire polar by the given
            angle in legacy polar charts.
        paper_bgcolor
            Sets the background color of the paper where the graph
            is drawn.
        piecolorway
            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`.
        plot_bgcolor
            Sets the background color of the plotting area in-
            between x and y axes.
        polar
            :class:`plotly.graph_objects.layout.Polar` instance or
            dict with compatible properties
        radialaxis
            :class:`plotly.graph_objects.layout.RadialAxis`
            instance or dict with compatible properties
        scene
            :class:`plotly.graph_objects.layout.Scene` instance or
            dict with compatible properties
        selectdirection
            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.
        selectionrevision
            Controls persistence of user-driven changes in selected
            points from all traces.
        separators
            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.
        shapes
            A tuple of :class:`plotly.graph_objects.layout.Shape`
            instances or dicts with compatible properties
        shapedefaults
            When used in a template (as
            layout.template.layout.shapedefaults), sets the default
            property values to use for elements of layout.shapes
        showlegend
            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`.
        sliders
            A tuple of :class:`plotly.graph_objects.layout.Slider`
            instances or dicts with compatible properties
        sliderdefaults
            When used in a template (as
            layout.template.layout.sliderdefaults), sets the
            default property values to use for elements of
            layout.sliders
        spikedistance
            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.
        sunburstcolorway
            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`.
        template
            Default attributes to be applied to the plot. This
            should be a dict with format: `{'layout':
            layoutTemplate, 'data': {trace_type: [traceTemplate,
            ...], ...}}` where `layoutTemplate` is a dict matching
            the structure of `figure.layout` and `traceTemplate` is
            a dict matching the structure of the trace with type
            `trace_type` (e.g. 'scatter'). Alternatively, this may
            be specified as an instance of
            plotly.graph_objs.layout.Template.  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 this can be
            used to add 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`.
        ternary
            :class:`plotly.graph_objects.layout.Ternary` instance
            or dict with compatible properties
        title
            :class:`plotly.graph_objects.layout.Title` instance or
            dict with compatible properties
        titlefont
            Deprecated: Please use layout.title.font instead. Sets
            the title font. Note that the title's font used to be
            customized by the now deprecated `titlefont` attribute.
        transition
            Sets transition options used during Plotly.react
            updates.
        treemapcolorway
            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`.
        uirevision
            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.
        uniformtext
            :class:`plotly.graph_objects.layout.Uniformtext`
            instance or dict with compatible properties
        updatemenus
            A tuple of
            :class:`plotly.graph_objects.layout.Updatemenu`
            instances or dicts with compatible properties
        updatemenudefaults
            When used in a template (as
            layout.template.layout.updatemenudefaults), sets the
            default property values to use for elements of
            layout.updatemenus
        violingap
            Sets the gap (in plot fraction) between violins of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        violingroupgap
            Sets the gap (in plot fraction) between violins of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        violinmode
            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.
        waterfallgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        waterfallgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        waterfallmode
            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 an "opacity" to see multiple
            bars.
        width
            Sets the plot's width (in px).
        xaxis
            :class:`plotly.graph_objects.layout.XAxis` instance or
            dict with compatible properties
        yaxis
            :class:`plotly.graph_objects.layout.YAxis` instance or
            dict with compatible properties
        r   )r   r   r   r   rH    s       (zLayout._prop_descriptionsr  )r  r  cT       W         s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|T
dd| _ddlm}U |U | jd< |U | jd	< |U | jd
< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U | jd< |U  | jd< |U! | jd< |U" | jd< |U# | jd< |U$ | jd< |U% | jd< |U& | jd< |U' | jd < |U( | jd!< |U) | jd"< |U* | jd#< |U+ | jd$< |U, | jd%< |U- | jd&< |U. | jd'< |U/ | jd(< |U0 | jd)< |U1 | jd*< |U2 | jd+< |U3 | jd,< |U4 | jd-< |U5 | jd.< |U6 | jd/< |U7 | jd0< |U8 | jd1< |U9 | jd2< |U: | jd3< |U; | jd4< |U< | jd5< |U= | jd6< |U> | jd7< |U? | jd8< |U@ | jd9< |UA | jd:< |UB | jd;< |UC | jd<< |UD | jd=< |UE | jd>< |UF | jd?< |UG | jd@< |UH | jdA< |UI | jdB< |UJ | jdC< |UK | jdD< |UL | jdE< |UM | jdF< |UN | jdG< |UO | jdH< |UP | jdI< |UQ | jdJ< |UR | jdK< |US | jdL< |UT | jdM< |UU | jdN< |UV | jdO< |UW | jdP< |UX | jdQ< |UY | jdR< |UZ | jdS< |U[ | jdT< |U\ | jdU< |U] | jdV< |U^ | jdW< |U_ | jdX< |
dd}V|dk	r|n|V| d< |
d	d}V|dk	r|n|V| d	< |
d
d}V|dk	r8|n|V| d
< |
dd}V|dk	rZ|n|V| d< |
dd}V|dk	r||n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|	dk	r|	n|V| d< |
dd}V|
dk	r|
n|V| d< |
dd}V|dk	r&|n|V| d< |
dd}V|dk	rH|n|V| d< |
dd}V|dk	rj|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r6|n|V| d< |
dd}V|dk	rX|n|V| d< |
dd}V|dk	rz|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
dd}V|dk	r|n|V| d< |
d d}V|dk	r$|n|V| d < |
d!d}V|dk	rF|n|V| d!< |
d"d}V|dk	rh|n|V| d"< |
d#d}V|dk	r|n|V| d#< |
d$d}V|dk	r|n|V| d$< |
d%d}V|dk	r|n|V| d%< |
d&d}V| dk	r| n|V| d&< |
d'd}V|!dk		r|!n|V| d'< |
d(d}V|"dk		r4|"n|V| d(< |
d)d}V|#dk		rV|#n|V| d)< |
d*d}V|$dk		rx|$n|V| d*< |
d+d}V|%dk		r|%n|V| d+< |
d,d}V|&dk		r|&n|V| d,< |
d-d}V|'dk		r|'n|V| d-< |
d.d}V|(dk	
r |(n|V| d.< |
d/d}V|)dk	
r"|)n|V| d/< |
d0d}V|*dk	
rD|*n|V| d0< |
d1d}V|+dk	
rf|+n|V| d1< |
d2d}V|,dk	
r|,n|V| d2< |
d3d}V|-dk	
r|-n|V| d3< |
d4d}V|.dk	
r|.n|V| d4< |
d5d}V|/dk	
r|/n|V| d5< |
d6d}V|0dk	r|0n|V| d6< |
d7d}V|1dk	r2|1n|V| d7< |
d8d}V|2dk	rT|2n|V| d8< |
d9d}V|3dk	rv|3n|V| d9< |
d:d}V|4dk	r|4n|V| d:< |
d;d}V|5dk	r|5n|V| d;< |
d<d}V|6dk	r|6n|V| d<< |
d=d}V|7dk	r|7n|V| d=< |
d>d}V|8dk	r |8n|V| d>< |
d?d}V|9dk	rB|9n|V| d?< |
d@d}V|:dk	rd|:n|V| d@< |
dAd}V|;dk	r|;n|V| dA< |
dBd}V|<dk	r|<n|V| dB< |
dCd}V|=dk	r|=n|V| dC< |
dDd}V|>dk	r|>n|V| dD< |
dEd}V|?dk	r|?n|V| dE< |
dFd}V|@dk	r0|@n|V| dF< |
dGd}V|Adk	rR|An|V}V|Vdk	rh|V| dG< |
dHd}V|Bdk	r|Bn|V| dH< |
dId}V|Cdk	r|Cn|V| dI< |
dYd}V|Ddk	r|Dn|V}V|Vdk	r|V| dY< |
dJd}V|Edk	r|En|V| dJ< |
dKd}V|Fdk	r|Fn|V| dK< |
dLd}V|Gdk	r:|Gn|V| dL< |
dMd}V|Hdk	r\|Hn|V| dM< |
dNd}V|Idk	r~|In|V| dN< |
dOd}V|Jdk	r|Jn|V| dO< |
dPd}V|Kdk	r|Kn|V| dP< |
dQd}V|Ldk	r|Ln|V| dQ< |
dRd}V|Mdk	r|Mn|V| dR< |
dSd}V|Ndk	r(|Nn|V| dS< |
dTd}V|Odk	rJ|On|V| dT< |
dUd}V|Pdk	rl|Pn|V| dU< |
dVd}V|Qdk	r|Qn|V| dV< |
dWd}V|Rdk	r|Rn|V| dW< |
dXd}V|Sdk	r|Sn|V| dX< | j`f t|f|T d| _dS )ZaT  
        Construct a new Layout object
        
        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Layout`
        angularaxis
            :class:`plotly.graph_objects.layout.AngularAxis`
            instance or dict with compatible properties
        annotations
            A tuple of
            :class:`plotly.graph_objects.layout.Annotation`
            instances or dicts with compatible properties
        annotationdefaults
            When used in a template (as
            layout.template.layout.annotationdefaults), sets the
            default property values to use for elements of
            layout.annotations
        autosize
            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.
        bargap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        bargroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        barmode
            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 an
            "opacity" to see multiple bars.
        barnorm
            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
            Sets the gap (in plot fraction) between boxes of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        boxgroupgap
            Sets the gap (in plot fraction) between boxes of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        boxmode
            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.
        calendar
            Sets the default calendar system to use for
            interpreting and displaying dates throughout the plot.
        clickmode
            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.
        coloraxis
            :class:`plotly.graph_objects.layout.Coloraxis` instance
            or dict with compatible properties
        colorscale
            :class:`plotly.graph_objects.layout.Colorscale`
            instance or dict with compatible properties
        colorway
            Sets the default trace colors.
        datarevision
            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.
        direction
            Legacy polar charts are deprecated! Please switch to
            "polar" subplots. Sets the direction corresponding to
            positive angles in legacy polar charts.
        dragmode
            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.
        editrevision
            Controls persistence of user-driven changes in
            `editable: true` configuration, other than trace names
            and axis titles. Defaults to `layout.uirevision`.
        extendfunnelareacolors
            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.
        extendpiecolors
            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.
        extendsunburstcolors
            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.
        extendtreemapcolors
            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.
        font
            Sets the global font. Note that fonts used in traces
            and other layout components inherit from the global
            font.
        funnelareacolorway
            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`.
        funnelgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        funnelgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        funnelmode
            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 an "opacity" to see
            multiple bars.
        geo
            :class:`plotly.graph_objects.layout.Geo` instance or
            dict with compatible properties
        grid
            :class:`plotly.graph_objects.layout.Grid` instance or
            dict with compatible properties
        height
            Sets the plot's height (in px).
        hiddenlabels
            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
        hiddenlabelssrc
            Sets the source reference on plot.ly for  hiddenlabels
            .
        hidesources
            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 plotly
            service (at https://plot.ly or on-premise).
        hoverdistance
            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.
        hoverlabel
            :class:`plotly.graph_objects.layout.Hoverlabel`
            instance or dict with compatible properties
        hovermode
            Determines the mode of hover interactions. If
            `clickmode` includes the "select" flag, `hovermode`
            defaults to "closest". If `clickmode` lacks the
            "select" flag, it defaults to "x" or "y" (depending on
            the trace's `orientation` value) for plots based on
            cartesian coordinates. For anything else the default
            value is "closest".
        images
            A tuple of :class:`plotly.graph_objects.layout.Image`
            instances or dicts with compatible properties
        imagedefaults
            When used in a template (as
            layout.template.layout.imagedefaults), sets the default
            property values to use for elements of layout.images
        legend
            :class:`plotly.graph_objects.layout.Legend` instance or
            dict with compatible properties
        mapbox
            :class:`plotly.graph_objects.layout.Mapbox` instance or
            dict with compatible properties
        margin
            :class:`plotly.graph_objects.layout.Margin` instance or
            dict with compatible properties
        meta
            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]}.
        metasrc
            Sets the source reference on plot.ly for  meta .
        modebar
            :class:`plotly.graph_objects.layout.Modebar` instance
            or dict with compatible properties
        orientation
            Legacy polar charts are deprecated! Please switch to
            "polar" subplots. Rotates the entire polar by the given
            angle in legacy polar charts.
        paper_bgcolor
            Sets the background color of the paper where the graph
            is drawn.
        piecolorway
            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`.
        plot_bgcolor
            Sets the background color of the plotting area in-
            between x and y axes.
        polar
            :class:`plotly.graph_objects.layout.Polar` instance or
            dict with compatible properties
        radialaxis
            :class:`plotly.graph_objects.layout.RadialAxis`
            instance or dict with compatible properties
        scene
            :class:`plotly.graph_objects.layout.Scene` instance or
            dict with compatible properties
        selectdirection
            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.
        selectionrevision
            Controls persistence of user-driven changes in selected
            points from all traces.
        separators
            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.
        shapes
            A tuple of :class:`plotly.graph_objects.layout.Shape`
            instances or dicts with compatible properties
        shapedefaults
            When used in a template (as
            layout.template.layout.shapedefaults), sets the default
            property values to use for elements of layout.shapes
        showlegend
            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`.
        sliders
            A tuple of :class:`plotly.graph_objects.layout.Slider`
            instances or dicts with compatible properties
        sliderdefaults
            When used in a template (as
            layout.template.layout.sliderdefaults), sets the
            default property values to use for elements of
            layout.sliders
        spikedistance
            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.
        sunburstcolorway
            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`.
        template
            Default attributes to be applied to the plot. This
            should be a dict with format: `{'layout':
            layoutTemplate, 'data': {trace_type: [traceTemplate,
            ...], ...}}` where `layoutTemplate` is a dict matching
            the structure of `figure.layout` and `traceTemplate` is
            a dict matching the structure of the trace with type
            `trace_type` (e.g. 'scatter'). Alternatively, this may
            be specified as an instance of
            plotly.graph_objs.layout.Template.  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 this can be
            used to add 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`.
        ternary
            :class:`plotly.graph_objects.layout.Ternary` instance
            or dict with compatible properties
        title
            :class:`plotly.graph_objects.layout.Title` instance or
            dict with compatible properties
        titlefont
            Deprecated: Please use layout.title.font instead. Sets
            the title font. Note that the title's font used to be
            customized by the now deprecated `titlefont` attribute.
        transition
            Sets transition options used during Plotly.react
            updates.
        treemapcolorway
            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`.
        uirevision
            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.
        uniformtext
            :class:`plotly.graph_objects.layout.Uniformtext`
            instance or dict with compatible properties
        updatemenus
            A tuple of
            :class:`plotly.graph_objects.layout.Updatemenu`
            instances or dicts with compatible properties
        updatemenudefaults
            When used in a template (as
            layout.template.layout.updatemenudefaults), sets the
            default property values to use for elements of
            layout.updatemenus
        violingap
            Sets the gap (in plot fraction) between violins of
            adjacent location coordinates. Has no effect on traces
            that have "width" set.
        violingroupgap
            Sets the gap (in plot fraction) between violins of the
            same location coordinate. Has no effect on traces that
            have "width" set.
        violinmode
            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.
        waterfallgap
            Sets the gap (in plot fraction) between bars of
            adjacent location coordinates.
        waterfallgroupgap
            Sets the gap (in plot fraction) between bars of the
            same location coordinate.
        waterfallmode
            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 an "opacity" to see multiple
            bars.
        width
            Sets the plot's width (in px).
        xaxis
            :class:`plotly.graph_objects.layout.XAxis` instance or
            dict with compatible properties
        yaxis
            :class:`plotly.graph_objects.layout.YAxis` instance or
            dict with compatible properties

        Returns
        -------
        Layout
        layoutNzThe first argument to the plotly.graph_objs.Layout 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Layout`rJ   Fr   )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r!   r"   r  r(   r  r  r  r  r  r   r  r  r  r  r  r+   r  r  r  r  r  r  r  r  r  r8   r  r  r  r  r  r  r  r  r  r:   r>   rB   r  )arN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZAngularAxisValidatorr[   ZAnnotationsValidatorZAnnotationValidatorZAutosizeValidatorZBargapValidatorZBargroupgapValidatorZBarmodeValidatorZBarnormValidatorZBoxgapValidatorZBoxgroupgapValidatorZBoxmodeValidatorZCalendarValidatorZClickmodeValidatorr   r   ZColorwayValidatorZDatarevisionValidatorr  ZDragmodeValidatorZEditrevisionValidatorZExtendfunnelareacolorsValidatorZExtendpiecolorsValidatorZExtendsunburstcolorsValidatorZExtendtreemapcolorsValidatorre  ZFunnelareacolorwayValidatorZFunnelgapValidatorZFunnelgroupgapValidatorZFunnelmodeValidatorr  ZGridValidatorZHeightValidatorZHiddenlabelsValidatorZHiddenlabelssrcValidatorZHidesourcesValidatorZHoverdistanceValidatorrg   ZHovermodeValidatorZImagesValidatorZImageValidatorZLegendValidatorr  ZMarginValidatorrr   rs   ZModebarValidatorry   ZPaperBgcolorValidatorZPiecolorwayValidatorZPlotBgcolorValidatorr  ZRadialAxisValidatorr   ZSelectdirectionValidatorZSelectionrevisionValidatorZSeparatorsValidatorZShapesValidatorZShapeValidatorr|   ZSlidersValidatorZSliderValidatorZSpikedistanceValidatorZSunburstcolorwayValidatorZTemplateValidatorr  r  ZTransitionValidatorZTreemapcolorwayValidatorr   ZUniformtextValidatorZUpdatemenusValidatorZUpdatemenuValidatorZViolingapValidatorZViolingroupgapValidatorZViolinmodeValidatorZWaterfallgapValidatorZWaterfallgroupgapValidatorZWaterfallmodeValidatorr   r   r   r   )Wr   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r!   r"   r  r(   r  r  r  r  r  r   r  r  r  r  r  r+   r  r  r  r  r  r  r  r  r  r  r8   r  r  r  r  r  r  r  r  r  r:   r>   rB   r   Zv_layoutr   )rQ   r   r   rO    s       




zLayout.__init__)SNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)cr   r   r   Z_subplotid_prop_namesrecompilejoinr  r   r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r!   r"   r  r(   r  r  r  r  r  r   r  r  r  r  r  r+   r  r  r  r  r  r  r  r  r  r  r8   r  r  r  r  r  r  r  r  r  r:   r>   rB   rG   rH   r  rO   r   r   r   )rQ   r   r  o s$  ;  K(ta*_gT"!66B@E %p8)F) a   9   1   *                                                                                  r  )BaseFrameHierarchyTypec                   s   e Zd Zedd Zejdd Zedd Zejdd Zedd Zejd	d Zed
d Zejdd Zedd Z	e	jdd Z	edd Z
e
jdd Z
edd Zedd Zd fdd	Z  ZS )Framec             C   s   | d S )a  
        The name of the frame into which this frame's properties are
        merged before applying. This is used to unify properties and
        avoid needing to specify the same values for the same
        properties in multiple frames.
    
        The 'baseframe' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        	baseframer   )r   r   r   r   r   s    zFrame.baseframec             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  	 s    c             C   s   | d S )z
        A list of traces this frame modifies. The format is identical
        to the normal trace definition.

        Returns
        -------
        Any
        datar   )r   r   r   r   r   s    
z
Frame.datac             C   s   || d< d S )Nr  r   )r   r   r   r   r   r   s    c             C   s   | d S )aL  
        An identifier that specifies the group to which the frame
        belongs, used by animate to select a subset of frames.
    
        The 'group' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        groupr   )r   r   r   r   r  ! s    zFrame.groupc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  1 s    c             C   s   | d S )z
        Layout properties which this frame modifies. The format is
        identical to the normal layout definition.

        Returns
        -------
        Any
        r  r   )r   r   r   r   r  7 s    
zFrame.layoutc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  C s    c             C   s   | d S )z
        A label by which to identify the frame
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

        Returns
        -------
        str
        r#   r   )r   r   r   r   r#   I s    z
Frame.namec             C   s   || d< d S )Nr#   r   )r   r   r   r   r   r#   X s    c             C   s   | d S )z
        A list of trace indices that identify the respective traces in
        the data attribute
    
        The 'traces' property accepts values of any type

        Returns
        -------
        Any
        tracesr   )r   r   r   r   r  ^ s    zFrame.tracesc             C   s   || d< d S )Nr  r   )r   r   r   r   r   r  l s    c             C   s   dS )NrF   r   )r   r   r   r   rG   r s    zFrame._parent_path_strc             C   s   dS )Na          baseframe
            The name of the frame into which this frame's
            properties are merged before applying. This is used to
            unify properties and avoid needing to specify the same
            values for the same properties in multiple frames.
        data
            A list of traces this frame modifies. The format is
            identical to the normal trace definition.
        group
            An identifier that specifies the group to which the
            frame belongs, used by animate to select a subset of
            frames.
        layout
            Layout properties which this frame modifies. The format
            is identical to the normal layout definition.
        name
            A label by which to identify the frame
        traces
            A list of trace indices that identify the respective
            traces in the data attribute
        r   )r   r   r   r   rH   x s    zFrame._prop_descriptionsNc                s  t t| d |dkri }n4t|| jr4| }nt|trJt|}nt	d|
dd| _ddlm}	 |	 | jd< |	 | jd	< |	 | jd
< |	 | jd< |	 | jd< |	 | jd< |
dd}
|dk	r|n|
| d< |
d	d}
|dk	r|n|
| d	< |
d
d}
|dk	r|n|
| d
< |
dd}
|dk	r<|n|
| d< |
dd}
|dk	r^|n|
| d< |
dd}
|dk	r|n|
| d< | jf t|f| d| _dS )a  
        Construct a new Frame object
        
        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of :class:`plotly.graph_objs.Frame`
        baseframe
            The name of the frame into which this frame's
            properties are merged before applying. This is used to
            unify properties and avoid needing to specify the same
            values for the same properties in multiple frames.
        data
            A list of traces this frame modifies. The format is
            identical to the normal trace definition.
        group
            An identifier that specifies the group to which the
            frame belongs, used by animate to select a subset of
            frames.
        layout
            Layout properties which this frame modifies. The format
            is identical to the normal layout definition.
        name
            A label by which to identify the frame
        traces
            A list of trace indices that identify the respective
            traces in the data attribute

        Returns
        -------
        Frame
        framesNzThe first argument to the plotly.graph_objs.Frame 
constructor must be a dict or 
an instance of :class:`plotly.graph_objs.Frame`rJ   Fr   )framer  r  r  r  r#   r  )rN   r  rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  ZBaseframeValidatorr[   ZDataValidatorZGroupValidatorZLayoutValidatorrt   ZTracesValidatorr   )r   r   r  r  r  r  r#   r  r   Zv_framer   )rQ   r   r   rO    s>    ,

zFrame.__init__)NNNNNNN)r   r   r   r   r  r   r  r  r  r#   r  rG   rH   rO   r   r   r   )rQ   r   r   s*         r  )rI   )r   )r   )r   )r  )r   )r$  )r0  )r@  )rN  )r`  )rk  )rr  )r{  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r  )r/  )r5  )r:  )r@  )rE  )rG  )rK  )rS  )r   )r\  )r^  )r`  )r  )rh  )r   )r  )r  )r  )r     )Figure)DataAnnotationsFramesAngularAxis
AnnotationColorBarContoursErrorXErrorYErrorZFontLegendLineMarginMarker
RadialAxisSceneStreamXAxisYAxisZAxisXBinsYBinsTraceHistogram2dcontourr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rh  r  r`  r^  r\  r   rS  rK  rG  rE  r@  r:  r5  r/  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r{  rr  rk  r`  rN  r@  r0  r$  r   r  r   r   r   rI   )LooseVersionz7.0.0)FigureWidgetr  )Zplotly.basedatatypesr   Z_BaseTraceTyperU   rT   r   r   r   r   r
  r  r!  r&  r8  rC  rV  rj  rl  rx  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r+  r3  r6  r>  rB  rF  rH  rL  rX  rY  r]  r_  ra  rf  rj  r  r  r  r  Z_BaseLayoutTyper  r  Z_BaseFrameHierarchyTyper  Zplotly.graph_objsrI   r   r   r   r  r   r$  r0  r@  rN  r`  rk  rr  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r/  r5  r:  r@  rE  rG  rK  rS  r   r\  r^  r`  r  rh  r   r  r  r  r  Z_figurer  Z_deprecationsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __all__
ipywidgetsZdistutils.versionr  __version__Z_figurewidgetr  appendImportErrorr   r   r   r   <module>   s                                       `                 >               9       s                 ;              {                             K                                 r                 -                                 O                Y                (                  2                                         U                         K         )           P                     h                  -                 -                    v                   a                  <              <                  F             x                                 9                ~                                     c               v               w                        W                     f             a                     g       :                                            \  l
