def __init__(self, arg=None, autobinx=None, autobiny=None, autocolorscale=None, autocontour=None, bingroup=None, coloraxis=None, colorbar=None, colorscale=None, contours=None, customdata=None, customdatasrc=None, histfunc=None, histnorm=None, hoverinfo=None, hoverinfosrc=None, hoverlabel=None, hovertemplate=None, hovertemplatesrc=None, ids=None, idssrc=None, legendgroup=None, legendgrouptitle=None, legendrank=None, line=None, marker=None, meta=None, metasrc=None, name=None, nbinsx=None, nbinsy=None, ncontours=None, opacity=None, reversescale=None, showlegend=None, showscale=None, stream=None, textfont=None, texttemplate=None, uid=None, uirevision=None, visible=None, x=None, xaxis=None, xbingroup=None, xbins=None, xcalendar=None, xhoverformat=None, xsrc=None, y=None, yaxis=None, ybingroup=None, ybins=None, ycalendar=None, yhoverformat=None, ysrc=None, z=None, zauto=None, zhoverformat=None, zmax=None, zmid=None, zmin=None, zsrc=None, **kwargs):
    '\n        Construct a new Histogram2dContour object\n\n        The sample data from which statistics are computed is set in\n        `x` and `y` (where `x` and `y` represent marginal\n        distributions, binning is set in `xbins` and `ybins` in this\n        case) or `z` (where `z` represent the 2D distribution and\n        binning set, binning is set by `x` and `y` in this case). The\n        resulting distribution is visualized as a contour plot.\n\n        Parameters\n        ----------\n        arg\n            dict of properties compatible with this constructor or\n            an instance of\n            :class:`plotly.graph_objs.Histogram2dContour`\n        autobinx\n            Obsolete: since v1.42 each bin attribute is auto-\n            determined separately and `autobinx` is not needed.\n            However, we accept `autobinx: true` or `false` and will\n            update `xbins` accordingly before deleting `autobinx`\n            from the trace.\n        autobiny\n            Obsolete: since v1.42 each bin attribute is auto-\n            determined separately and `autobiny` is not needed.\n            However, we accept `autobiny: true` or `false` and will\n            update `ybins` accordingly before deleting `autobiny`\n            from the trace.\n        autocolorscale\n            Determines whether the colorscale is a default palette\n            (`autocolorscale: true`) or the palette determined by\n            `colorscale`. In case `colorscale` is unspecified or\n            `autocolorscale` is true, the default palette will be\n            chosen according to whether numbers in the `color`\n            array are all positive, all negative or mixed.\n        autocontour\n            Determines whether or not the contour level attributes\n            are picked by an algorithm. If True, the number of\n            contour levels can be set in `ncontours`. If False, set\n            the contour level attributes in `contours`.\n        bingroup\n            Set the `xbingroup` and `ybingroup` default prefix For\n            example, setting a `bingroup` of 1 on two histogram2d\n            traces will make them their x-bins and y-bins match\n            separately.\n        coloraxis\n            Sets a reference to a shared color axis. References to\n            these shared color axes are "coloraxis", "coloraxis2",\n            "coloraxis3", etc. Settings for these shared color axes\n            are set in the layout, under `layout.coloraxis`,\n            `layout.coloraxis2`, etc. Note that multiple color\n            scales can be linked to the same color axis.\n        colorbar\n            :class:`plotly.graph_objects.histogram2dcontour.ColorBa\n            r` instance or dict with compatible properties\n        colorscale\n            Sets the colorscale. The colorscale must be an array\n            containing arrays mapping a normalized value to an rgb,\n            rgba, hex, hsl, hsv, or named color string. At minimum,\n            a mapping for the lowest (0) and highest (1) values are\n            required. For example, `[[0, \'rgb(0,0,255)\'], [1,\n            \'rgb(255,0,0)\']]`. To control the bounds of the\n            colorscale in color space, use `zmin` and `zmax`.\n            Alternatively, `colorscale` may be a palette name\n            string of the following list: Blackbody,Bluered,Blues,C\n            ividis,Earth,Electric,Greens,Greys,Hot,Jet,Picnic,Portl\n            and,Rainbow,RdBu,Reds,Viridis,YlGnBu,YlOrRd.\n        contours\n            :class:`plotly.graph_objects.histogram2dcontour.Contour\n            s` instance or dict with compatible properties\n        customdata\n            Assigns extra data each datum. This may be useful when\n            listening to hover, click and selection events. Note\n            that, "scatter" traces also appends customdata items in\n            the markers DOM elements\n        customdatasrc\n            Sets the source reference on Chart Studio Cloud for\n            `customdata`.\n        histfunc\n            Specifies the binning function used for this histogram\n            trace. If "count", the histogram values are computed by\n            counting the number of values lying inside each bin. If\n            "sum", "avg", "min", "max", the histogram values are\n            computed using the sum, the average, the minimum or the\n            maximum of the values lying inside each bin\n            respectively.\n        histnorm\n            Specifies the type of normalization used for this\n            histogram trace. If "", the span of each bar\n            corresponds to the number of occurrences (i.e. the\n            number of data points lying inside the bins). If\n            "percent" / "probability", the span of each bar\n            corresponds to the percentage / fraction of occurrences\n            with respect to the total number of sample points\n            (here, the sum of all bin HEIGHTS equals 100% / 1). If\n            "density", the span of each bar corresponds to the\n            number of occurrences in a bin divided by the size of\n            the bin interval (here, the sum of all bin AREAS equals\n            the total number of sample points). If *probability\n            density*, the area of each bar corresponds to the\n            probability that an event will fall into the\n            corresponding bin (here, the sum of all bin AREAS\n            equals 1).\n        hoverinfo\n            Determines which trace information appear on hover. If\n            `none` or `skip` are set, no information is displayed\n            upon hovering. But, if `none` is set, click and hover\n            events are still fired.\n        hoverinfosrc\n            Sets the source reference on Chart Studio Cloud for\n            `hoverinfo`.\n        hoverlabel\n            :class:`plotly.graph_objects.histogram2dcontour.Hoverla\n            bel` instance or dict with compatible properties\n        hovertemplate\n            Template string used for rendering the information that\n            appear on hover box. Note that this will override\n            `hoverinfo`. Variables are inserted using %{variable},\n            for example "y: %{y}" as well as %{xother}, {%_xother},\n            {%_xother_}, {%xother_}. When showing info for several\n            points, "xother" will be added to those with different\n            x positions from the first point. An underscore before\n            or after "(x|y)other" will add a space on that side,\n            only when this field is shown. Numbers are formatted\n            using d3-format\'s syntax %{variable:d3-format}, for\n            example "Price: %{y:$.2f}".\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format\n            for details on the formatting syntax. Dates are\n            formatted using d3-time-format\'s syntax\n            %{variable|d3-time-format}, for example "Day:\n            %{2019-01-01|%A}". https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format for details on the\n            date formatting syntax. The variables available in\n            `hovertemplate` are the ones emitted as event data\n            described at this link\n            https://plotly.com/javascript/plotlyjs-events/#event-\n            data. Additionally, every attributes that can be\n            specified per-point (the ones that are `arrayOk: true`)\n            are available. variable `z` Anything contained in tag\n            `<extra>` is displayed in the secondary box, for\n            example "<extra>{fullData.name}</extra>". To hide the\n            secondary box completely, use an empty tag\n            `<extra></extra>`.\n        hovertemplatesrc\n            Sets the source reference on Chart Studio Cloud for\n            `hovertemplate`.\n        ids\n            Assigns id labels to each datum. These ids for object\n            constancy of data points during animation. Should be an\n            array of strings, not numbers or any other type.\n        idssrc\n            Sets the source reference on Chart Studio Cloud for\n            `ids`.\n        legendgroup\n            Sets the legend group for this trace. Traces part of\n            the same legend group hide/show at the same time when\n            toggling legend items.\n        legendgrouptitle\n            :class:`plotly.graph_objects.histogram2dcontour.Legendg\n            rouptitle` instance or dict with compatible properties\n        legendrank\n            Sets the legend rank for this trace. Items and groups\n            with smaller ranks are presented on top/left side while\n            with `*reversed* `legend.traceorder` they are on\n            bottom/right side. The default legendrank is 1000, so\n            that you can use ranks less than 1000 to place certain\n            items before all unranked items, and ranks greater than\n            1000 to go after all unranked items.\n        line\n            :class:`plotly.graph_objects.histogram2dcontour.Line`\n            instance or dict with compatible properties\n        marker\n            :class:`plotly.graph_objects.histogram2dcontour.Marker`\n            instance or dict with compatible properties\n        meta\n            Assigns extra meta information associated with this\n            trace that can be used in various text attributes.\n            Attributes such as trace `name`, graph, axis and\n            colorbar `title.text`, annotation `text`\n            `rangeselector`, `updatemenues` and `sliders` `label`\n            text all support `meta`. To access the trace `meta`\n            values in an attribute in the same trace, simply use\n            `%{meta[i]}` where `i` is the index or key of the\n            `meta` item in question. To access trace `meta` in\n            layout attributes, use `%{data[n[.meta[i]}` where `i`\n            is the index or key of the `meta` and `n` is the trace\n            index.\n        metasrc\n            Sets the source reference on Chart Studio Cloud for\n            `meta`.\n        name\n            Sets the trace name. The trace name appear as the\n            legend item and on hover.\n        nbinsx\n            Specifies the maximum number of desired bins. This\n            value will be used in an algorithm that will decide the\n            optimal bin size such that the histogram best\n            visualizes the distribution of the data. Ignored if\n            `xbins.size` is provided.\n        nbinsy\n            Specifies the maximum number of desired bins. This\n            value will be used in an algorithm that will decide the\n            optimal bin size such that the histogram best\n            visualizes the distribution of the data. Ignored if\n            `ybins.size` is provided.\n        ncontours\n            Sets the maximum number of contour levels. The actual\n            number of contours will be chosen automatically to be\n            less than or equal to the value of `ncontours`. Has an\n            effect only if `autocontour` is True or if\n            `contours.size` is missing.\n        opacity\n            Sets the opacity of the trace.\n        reversescale\n            Reverses the color mapping if true. If true, `zmin`\n            will correspond to the last color in the array and\n            `zmax` will correspond to the first color.\n        showlegend\n            Determines whether or not an item corresponding to this\n            trace is shown in the legend.\n        showscale\n            Determines whether or not a colorbar is displayed for\n            this trace.\n        stream\n            :class:`plotly.graph_objects.histogram2dcontour.Stream`\n            instance or dict with compatible properties\n        textfont\n            For this trace it only has an effect if `coloring` is\n            set to "heatmap". Sets the text font.\n        texttemplate\n            For this trace it only has an effect if `coloring` is\n            set to "heatmap". Template string used for rendering\n            the information text that appear on points. Note that\n            this will override `textinfo`. Variables are inserted\n            using %{variable}, for example "y: %{y}". Numbers are\n            formatted using d3-format\'s syntax\n            %{variable:d3-format}, for example "Price: %{y:$.2f}".\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format\n            for details on the formatting syntax. Dates are\n            formatted using d3-time-format\'s syntax\n            %{variable|d3-time-format}, for example "Day:\n            %{2019-01-01|%A}". https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format for details on the\n            date formatting syntax. Every attributes that can be\n            specified per-point (the ones that are `arrayOk: true`)\n            are available. variables `x`, `y`, `z` and `text`.\n        uid\n            Assign an id to this trace, Use this to provide object\n            constancy between traces during animations and\n            transitions.\n        uirevision\n            Controls persistence of some user-driven changes to the\n            trace: `constraintrange` in `parcoords` traces, as well\n            as some `editable: true` modifications such as `name`\n            and `colorbar.title`. Defaults to `layout.uirevision`.\n            Note that other user-driven trace attribute changes are\n            controlled by `layout` attributes: `trace.visible` is\n            controlled by `layout.legend.uirevision`,\n            `selectedpoints` is controlled by\n            `layout.selectionrevision`, and `colorbar.(x|y)`\n            (accessible with `config: {editable: true}`) is\n            controlled by `layout.editrevision`. Trace changes are\n            tracked by `uid`, which only falls back on trace index\n            if no `uid` is provided. So if your app can add/remove\n            traces before the end of the `data` array, such that\n            the same trace has a different index, you can still\n            preserve user-driven changes if you give each trace a\n            `uid` that stays with it as it moves.\n        visible\n            Determines whether or not this trace is visible. If\n            "legendonly", the trace is not drawn, but can appear as\n            a legend item (provided that the legend itself is\n            visible).\n        x\n            Sets the sample data to be binned on the x axis.\n        xaxis\n            Sets a reference between this trace\'s x coordinates and\n            a 2D cartesian x axis. If "x" (the default value), the\n            x coordinates refer to `layout.xaxis`. If "x2", the x\n            coordinates refer to `layout.xaxis2`, and so on.\n        xbingroup\n            Set a group of histogram traces which will have\n            compatible x-bin settings. Using `xbingroup`,\n            histogram2d and histogram2dcontour traces  (on axes of\n            the same axis type) can have compatible x-bin settings.\n            Note that the same `xbingroup` value can be used to set\n            (1D) histogram `bingroup`\n        xbins\n            :class:`plotly.graph_objects.histogram2dcontour.XBins`\n            instance or dict with compatible properties\n        xcalendar\n            Sets the calendar system to use with `x` date data.\n        xhoverformat\n            Sets the hover text formatting rulefor `x`  using d3\n            formatting mini-languages which are very similar to\n            those in Python. For numbers, see:\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format.\n            And for dates see: https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format. We add two items to\n            d3\'s date formatter: "%h" for half of the year as a\n            decimal number as well as "%{n}f" for fractional\n            seconds with n digits. For example, *2016-10-13\n            09:15:23.456* with tickformat "%H~%M~%S.%2f" would\n            display *09~15~23.46*By default the values are\n            formatted using `xaxis.hoverformat`.\n        xsrc\n            Sets the source reference on Chart Studio Cloud for\n            `x`.\n        y\n            Sets the sample data to be binned on the y axis.\n        yaxis\n            Sets a reference between this trace\'s y coordinates and\n            a 2D cartesian y axis. If "y" (the default value), the\n            y coordinates refer to `layout.yaxis`. If "y2", the y\n            coordinates refer to `layout.yaxis2`, and so on.\n        ybingroup\n            Set a group of histogram traces which will have\n            compatible y-bin settings. Using `ybingroup`,\n            histogram2d and histogram2dcontour traces  (on axes of\n            the same axis type) can have compatible y-bin settings.\n            Note that the same `ybingroup` value can be used to set\n            (1D) histogram `bingroup`\n        ybins\n            :class:`plotly.graph_objects.histogram2dcontour.YBins`\n            instance or dict with compatible properties\n        ycalendar\n            Sets the calendar system to use with `y` date data.\n        yhoverformat\n            Sets the hover text formatting rulefor `y`  using d3\n            formatting mini-languages which are very similar to\n            those in Python. For numbers, see:\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format.\n            And for dates see: https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format. We add two items to\n            d3\'s date formatter: "%h" for half of the year as a\n            decimal number as well as "%{n}f" for fractional\n            seconds with n digits. For example, *2016-10-13\n            09:15:23.456* with tickformat "%H~%M~%S.%2f" would\n            display *09~15~23.46*By default the values are\n            formatted using `yaxis.hoverformat`.\n        ysrc\n            Sets the source reference on Chart Studio Cloud for\n            `y`.\n        z\n            Sets the aggregation data.\n        zauto\n            Determines whether or not the color domain is computed\n            with respect to the input data (here in `z`) or the\n            bounds set in `zmin` and `zmax` Defaults to `false`\n            when `zmin` and `zmax` are set by the user.\n        zhoverformat\n            Sets the hover text formatting rulefor `z`  using d3\n            formatting mini-languages which are very similar to\n            those in Python. For numbers, see: https://github.com/d\n            3/d3-format/tree/v1.4.5#d3-format.By default the values\n            are formatted using generic number format.\n        zmax\n            Sets the upper bound of the color domain. Value should\n            have the same units as in `z` and if set, `zmin` must\n            be set as well.\n        zmid\n            Sets the mid-point of the color domain by scaling\n            `zmin` and/or `zmax` to be equidistant to this point.\n            Value should have the same units as in `z`. Has no\n            effect when `zauto` is `false`.\n        zmin\n            Sets the lower bound of the color domain. Value should\n            have the same units as in `z` and if set, `zmax` must\n            be set as well.\n        zsrc\n            Sets the source reference on Chart Studio Cloud for\n            `z`.\n\n        Returns\n        -------\n        Histogram2dContour\n        '
    super(Histogram2dContour, self).__init__('histogram2dcontour')
    if ('_parent' in kwargs):
        self._parent = kwargs['_parent']
        return
    if (arg is None):
        arg = {}
    elif isinstance(arg, self.__class__):
        arg = arg.to_plotly_json()
    elif isinstance(arg, dict):
        arg = _copy.copy(arg)
    else:
        raise ValueError('The first argument to the plotly.graph_objs.Histogram2dContour\nconstructor must be a dict or\nan instance of :class:`plotly.graph_objs.Histogram2dContour`')
    self._skip_invalid = kwargs.pop('skip_invalid', False)
    self._validate = kwargs.pop('_validate', True)
    _v = arg.pop('autobinx', None)
    _v = (autobinx if (autobinx is not None) else _v)
    if (_v is not None):
        self['autobinx'] = _v
    _v = arg.pop('autobiny', None)
    _v = (autobiny if (autobiny is not None) else _v)
    if (_v is not None):
        self['autobiny'] = _v
    _v = arg.pop('autocolorscale', None)
    _v = (autocolorscale if (autocolorscale is not None) else _v)
    if (_v is not None):
        self['autocolorscale'] = _v
    _v = arg.pop('autocontour', None)
    _v = (autocontour if (autocontour is not None) else _v)
    if (_v is not None):
        self['autocontour'] = _v
    _v = arg.pop('bingroup', None)
    _v = (bingroup if (bingroup is not None) else _v)
    if (_v is not None):
        self['bingroup'] = _v
    _v = arg.pop('coloraxis', None)
    _v = (coloraxis if (coloraxis is not None) else _v)
    if (_v is not None):
        self['coloraxis'] = _v
    _v = arg.pop('colorbar', None)
    _v = (colorbar if (colorbar is not None) else _v)
    if (_v is not None):
        self['colorbar'] = _v
    _v = arg.pop('colorscale', None)
    _v = (colorscale if (colorscale is not None) else _v)
    if (_v is not None):
        self['colorscale'] = _v
    _v = arg.pop('contours', None)
    _v = (contours if (contours is not None) else _v)
    if (_v is not None):
        self['contours'] = _v
    _v = arg.pop('customdata', None)
    _v = (customdata if (customdata is not None) else _v)
    if (_v is not None):
        self['customdata'] = _v
    _v = arg.pop('customdatasrc', None)
    _v = (customdatasrc if (customdatasrc is not None) else _v)
    if (_v is not None):
        self['customdatasrc'] = _v
    _v = arg.pop('histfunc', None)
    _v = (histfunc if (histfunc is not None) else _v)
    if (_v is not None):
        self['histfunc'] = _v
    _v = arg.pop('histnorm', None)
    _v = (histnorm if (histnorm is not None) else _v)
    if (_v is not None):
        self['histnorm'] = _v
    _v = arg.pop('hoverinfo', None)
    _v = (hoverinfo if (hoverinfo is not None) else _v)
    if (_v is not None):
        self['hoverinfo'] = _v
    _v = arg.pop('hoverinfosrc', None)
    _v = (hoverinfosrc if (hoverinfosrc is not None) else _v)
    if (_v is not None):
        self['hoverinfosrc'] = _v
    _v = arg.pop('hoverlabel', None)
    _v = (hoverlabel if (hoverlabel is not None) else _v)
    if (_v is not None):
        self['hoverlabel'] = _v
    _v = arg.pop('hovertemplate', None)
    _v = (hovertemplate if (hovertemplate is not None) else _v)
    if (_v is not None):
        self['hovertemplate'] = _v
    _v = arg.pop('hovertemplatesrc', None)
    _v = (hovertemplatesrc if (hovertemplatesrc is not None) else _v)
    if (_v is not None):
        self['hovertemplatesrc'] = _v
    _v = arg.pop('ids', None)
    _v = (ids if (ids is not None) else _v)
    if (_v is not None):
        self['ids'] = _v
    _v = arg.pop('idssrc', None)
    _v = (idssrc if (idssrc is not None) else _v)
    if (_v is not None):
        self['idssrc'] = _v
    _v = arg.pop('legendgroup', None)
    _v = (legendgroup if (legendgroup is not None) else _v)
    if (_v is not None):
        self['legendgroup'] = _v
    _v = arg.pop('legendgrouptitle', None)
    _v = (legendgrouptitle if (legendgrouptitle is not None) else _v)
    if (_v is not None):
        self['legendgrouptitle'] = _v
    _v = arg.pop('legendrank', None)
    _v = (legendrank if (legendrank is not None) else _v)
    if (_v is not None):
        self['legendrank'] = _v
    _v = arg.pop('line', None)
    _v = (line if (line is not None) else _v)
    if (_v is not None):
        self['line'] = _v
    _v = arg.pop('marker', None)
    _v = (marker if (marker is not None) else _v)
    if (_v is not None):
        self['marker'] = _v
    _v = arg.pop('meta', None)
    _v = (meta if (meta is not None) else _v)
    if (_v is not None):
        self['meta'] = _v
    _v = arg.pop('metasrc', None)
    _v = (metasrc if (metasrc is not None) else _v)
    if (_v is not None):
        self['metasrc'] = _v
    _v = arg.pop('name', None)
    _v = (name if (name is not None) else _v)
    if (_v is not None):
        self['name'] = _v
    _v = arg.pop('nbinsx', None)
    _v = (nbinsx if (nbinsx is not None) else _v)
    if (_v is not None):
        self['nbinsx'] = _v
    _v = arg.pop('nbinsy', None)
    _v = (nbinsy if (nbinsy is not None) else _v)
    if (_v is not None):
        self['nbinsy'] = _v
    _v = arg.pop('ncontours', None)
    _v = (ncontours if (ncontours is not None) else _v)
    if (_v is not None):
        self['ncontours'] = _v
    _v = arg.pop('opacity', None)
    _v = (opacity if (opacity is not None) else _v)
    if (_v is not None):
        self['opacity'] = _v
    _v = arg.pop('reversescale', None)
    _v = (reversescale if (reversescale is not None) else _v)
    if (_v is not None):
        self['reversescale'] = _v
    _v = arg.pop('showlegend', None)
    _v = (showlegend if (showlegend is not None) else _v)
    if (_v is not None):
        self['showlegend'] = _v
    _v = arg.pop('showscale', None)
    _v = (showscale if (showscale is not None) else _v)
    if (_v is not None):
        self['showscale'] = _v
    _v = arg.pop('stream', None)
    _v = (stream if (stream is not None) else _v)
    if (_v is not None):
        self['stream'] = _v
    _v = arg.pop('textfont', None)
    _v = (textfont if (textfont is not None) else _v)
    if (_v is not None):
        self['textfont'] = _v
    _v = arg.pop('texttemplate', None)
    _v = (texttemplate if (texttemplate is not None) else _v)
    if (_v is not None):
        self['texttemplate'] = _v
    _v = arg.pop('uid', None)
    _v = (uid if (uid is not None) else _v)
    if (_v is not None):
        self['uid'] = _v
    _v = arg.pop('uirevision', None)
    _v = (uirevision if (uirevision is not None) else _v)
    if (_v is not None):
        self['uirevision'] = _v
    _v = arg.pop('visible', None)
    _v = (visible if (visible is not None) else _v)
    if (_v is not None):
        self['visible'] = _v
    _v = arg.pop('x', None)
    _v = (x if (x is not None) else _v)
    if (_v is not None):
        self['x'] = _v
    _v = arg.pop('xaxis', None)
    _v = (xaxis if (xaxis is not None) else _v)
    if (_v is not None):
        self['xaxis'] = _v
    _v = arg.pop('xbingroup', None)
    _v = (xbingroup if (xbingroup is not None) else _v)
    if (_v is not None):
        self['xbingroup'] = _v
    _v = arg.pop('xbins', None)
    _v = (xbins if (xbins is not None) else _v)
    if (_v is not None):
        self['xbins'] = _v
    _v = arg.pop('xcalendar', None)
    _v = (xcalendar if (xcalendar is not None) else _v)
    if (_v is not None):
        self['xcalendar'] = _v
    _v = arg.pop('xhoverformat', None)
    _v = (xhoverformat if (xhoverformat is not None) else _v)
    if (_v is not None):
        self['xhoverformat'] = _v
    _v = arg.pop('xsrc', None)
    _v = (xsrc if (xsrc is not None) else _v)
    if (_v is not None):
        self['xsrc'] = _v
    _v = arg.pop('y', None)
    _v = (y if (y is not None) else _v)
    if (_v is not None):
        self['y'] = _v
    _v = arg.pop('yaxis', None)
    _v = (yaxis if (yaxis is not None) else _v)
    if (_v is not None):
        self['yaxis'] = _v
    _v = arg.pop('ybingroup', None)
    _v = (ybingroup if (ybingroup is not None) else _v)
    if (_v is not None):
        self['ybingroup'] = _v
    _v = arg.pop('ybins', None)
    _v = (ybins if (ybins is not None) else _v)
    if (_v is not None):
        self['ybins'] = _v
    _v = arg.pop('ycalendar', None)
    _v = (ycalendar if (ycalendar is not None) else _v)
    if (_v is not None):
        self['ycalendar'] = _v
    _v = arg.pop('yhoverformat', None)
    _v = (yhoverformat if (yhoverformat is not None) else _v)
    if (_v is not None):
        self['yhoverformat'] = _v
    _v = arg.pop('ysrc', None)
    _v = (ysrc if (ysrc is not None) else _v)
    if (_v is not None):
        self['ysrc'] = _v
    _v = arg.pop('z', None)
    _v = (z if (z is not None) else _v)
    if (_v is not None):
        self['z'] = _v
    _v = arg.pop('zauto', None)
    _v = (zauto if (zauto is not None) else _v)
    if (_v is not None):
        self['zauto'] = _v
    _v = arg.pop('zhoverformat', None)
    _v = (zhoverformat if (zhoverformat is not None) else _v)
    if (_v is not None):
        self['zhoverformat'] = _v
    _v = arg.pop('zmax', None)
    _v = (zmax if (zmax is not None) else _v)
    if (_v is not None):
        self['zmax'] = _v
    _v = arg.pop('zmid', None)
    _v = (zmid if (zmid is not None) else _v)
    if (_v is not None):
        self['zmid'] = _v
    _v = arg.pop('zmin', None)
    _v = (zmin if (zmin is not None) else _v)
    if (_v is not None):
        self['zmin'] = _v
    _v = arg.pop('zsrc', None)
    _v = (zsrc if (zsrc is not None) else _v)
    if (_v is not None):
        self['zsrc'] = _v
    self._props['type'] = 'histogram2dcontour'
    arg.pop('type', None)
    self._process_kwargs(**dict(arg, **kwargs))
    self._skip_invalid = False
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: Blackbody,Bluered,Blues,C
    ividis,Earth,Electric,Greens,Greys,Hot,Jet,Picnic,Portl
    and,Rainbow,RdBu,Reds,Viridis,YlGnBu,YlOrRd.
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 Chart Studio Cloud 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 Chart Studio Cloud 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}" as well as %{xother}, {%_xother},
    {%_xother_}, {%xother_}. When showing info for several
    points, "xother" will be added to those with different
    x positions from the first point. An underscore before
    or after "(x|y)other" will add a space on that side,
    only when this field is shown. Numbers are formatted
    using d3-format's syntax %{variable:d3-format}, for
    example "Price: %{y:$.2f}".
    https://github.com/d3/d3-format/tree/v1.4.5#d3-format
    for details on the formatting syntax. Dates are
    formatted using d3-time-format's syntax
    %{variable|d3-time-format}, for example "Day:
    %{2019-01-01|%A}". https://github.com/d3/d3-time-
    format/tree/v2.2.3#locale_format for details on the
    date formatting syntax. The variables available in
    `hovertemplate` are the ones emitted as event data
    described at this link
    https://plotly.com/javascript/plotlyjs-events/#event-
    data. Additionally, every attributes that can be
    specified per-point (the ones that are `arrayOk: true`)
    are available. 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 Chart Studio Cloud 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 Chart Studio Cloud 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.
legendgrouptitle
    :class:`plotly.graph_objects.histogram2dcontour.Legendg
    rouptitle` instance or dict with compatible properties
legendrank
    Sets the legend rank for this trace. Items and groups
    with smaller ranks are presented on top/left side while
    with `*reversed* `legend.traceorder` they are on
    bottom/right side. The default legendrank is 1000, so
    that you can use ranks less than 1000 to place certain
    items before all unranked items, and ranks greater than
    1000 to go after all unranked items.
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 Chart Studio Cloud 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
textfont
    For this trace it only has an effect if `coloring` is
    set to "heatmap". Sets the text font.
texttemplate
    For this trace it only has an effect if `coloring` is
    set to "heatmap". Template string used for rendering
    the information text that appear on points. Note that
    this will override `textinfo`. Variables are inserted
    using %{variable}, for example "y: %{y}". Numbers are
    formatted using d3-format's syntax
    %{variable:d3-format}, for example "Price: %{y:$.2f}".
    https://github.com/d3/d3-format/tree/v1.4.5#d3-format
    for details on the formatting syntax. Dates are
    formatted using d3-time-format's syntax
    %{variable|d3-time-format}, for example "Day:
    %{2019-01-01|%A}". https://github.com/d3/d3-time-
    format/tree/v2.2.3#locale_format for details on the
    date formatting syntax. Every attributes that can be
    specified per-point (the ones that are `arrayOk: true`)
    are available. variables `x`, `y`, `z` and `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 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.
xhoverformat
    Sets the hover text formatting rulefor `x`  using d3
    formatting mini-languages which are very similar to
    those in Python. For numbers, see:
    https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
    And for dates see: https://github.com/d3/d3-time-
    format/tree/v2.2.3#locale_format. We add two items to
    d3's date formatter: "%h" for half of the year as a
    decimal number as well as "%{n}f" for fractional
    seconds with n digits. For example, *2016-10-13
    09:15:23.456* with tickformat "%H~%M~%S.%2f" would
    display *09~15~23.46*By default the values are
    formatted using `xaxis.hoverformat`.
xsrc
    Sets the source reference on Chart Studio Cloud 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.
yhoverformat
    Sets the hover text formatting rulefor `y`  using d3
    formatting mini-languages which are very similar to
    those in Python. For numbers, see:
    https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
    And for dates see: https://github.com/d3/d3-time-
    format/tree/v2.2.3#locale_format. We add two items to
    d3's date formatter: "%h" for half of the year as a
    decimal number as well as "%{n}f" for fractional
    seconds with n digits. For example, *2016-10-13
    09:15:23.456* with tickformat "%H~%M~%S.%2f" would
    display *09~15~23.46*By default the values are
    formatted using `yaxis.hoverformat`.
ysrc
    Sets the source reference on Chart Studio Cloud 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 rulefor `z`  using d3
    formatting mini-languages which are very similar to
    those in Python. For numbers, see: https://github.com/d
    3/d3-format/tree/v1.4.5#d3-format.By default the values
    are formatted using generic number 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 Chart Studio Cloud for
    `z`.

Returns
-------
Histogram2dContour
def __init__(self, arg=None, autobinx=None, autobiny=None, autocolorscale=None, autocontour=None, bingroup=None, coloraxis=None, colorbar=None, colorscale=None, contours=None, customdata=None, customdatasrc=None, histfunc=None, histnorm=None, hoverinfo=None, hoverinfosrc=None, hoverlabel=None, hovertemplate=None, hovertemplatesrc=None, ids=None, idssrc=None, legendgroup=None, legendgrouptitle=None, legendrank=None, line=None, marker=None, meta=None, metasrc=None, name=None, nbinsx=None, nbinsy=None, ncontours=None, opacity=None, reversescale=None, showlegend=None, showscale=None, stream=None, textfont=None, texttemplate=None, uid=None, uirevision=None, visible=None, x=None, xaxis=None, xbingroup=None, xbins=None, xcalendar=None, xhoverformat=None, xsrc=None, y=None, yaxis=None, ybingroup=None, ybins=None, ycalendar=None, yhoverformat=None, ysrc=None, z=None, zauto=None, zhoverformat=None, zmax=None, zmid=None, zmin=None, zsrc=None, **kwargs):
    '\n        Construct a new Histogram2dContour object\n\n        The sample data from which statistics are computed is set in\n        `x` and `y` (where `x` and `y` represent marginal\n        distributions, binning is set in `xbins` and `ybins` in this\n        case) or `z` (where `z` represent the 2D distribution and\n        binning set, binning is set by `x` and `y` in this case). The\n        resulting distribution is visualized as a contour plot.\n\n        Parameters\n        ----------\n        arg\n            dict of properties compatible with this constructor or\n            an instance of\n            :class:`plotly.graph_objs.Histogram2dContour`\n        autobinx\n            Obsolete: since v1.42 each bin attribute is auto-\n            determined separately and `autobinx` is not needed.\n            However, we accept `autobinx: true` or `false` and will\n            update `xbins` accordingly before deleting `autobinx`\n            from the trace.\n        autobiny\n            Obsolete: since v1.42 each bin attribute is auto-\n            determined separately and `autobiny` is not needed.\n            However, we accept `autobiny: true` or `false` and will\n            update `ybins` accordingly before deleting `autobiny`\n            from the trace.\n        autocolorscale\n            Determines whether the colorscale is a default palette\n            (`autocolorscale: true`) or the palette determined by\n            `colorscale`. In case `colorscale` is unspecified or\n            `autocolorscale` is true, the default palette will be\n            chosen according to whether numbers in the `color`\n            array are all positive, all negative or mixed.\n        autocontour\n            Determines whether or not the contour level attributes\n            are picked by an algorithm. If True, the number of\n            contour levels can be set in `ncontours`. If False, set\n            the contour level attributes in `contours`.\n        bingroup\n            Set the `xbingroup` and `ybingroup` default prefix For\n            example, setting a `bingroup` of 1 on two histogram2d\n            traces will make them their x-bins and y-bins match\n            separately.\n        coloraxis\n            Sets a reference to a shared color axis. References to\n            these shared color axes are "coloraxis", "coloraxis2",\n            "coloraxis3", etc. Settings for these shared color axes\n            are set in the layout, under `layout.coloraxis`,\n            `layout.coloraxis2`, etc. Note that multiple color\n            scales can be linked to the same color axis.\n        colorbar\n            :class:`plotly.graph_objects.histogram2dcontour.ColorBa\n            r` instance or dict with compatible properties\n        colorscale\n            Sets the colorscale. The colorscale must be an array\n            containing arrays mapping a normalized value to an rgb,\n            rgba, hex, hsl, hsv, or named color string. At minimum,\n            a mapping for the lowest (0) and highest (1) values are\n            required. For example, `[[0, \'rgb(0,0,255)\'], [1,\n            \'rgb(255,0,0)\']]`. To control the bounds of the\n            colorscale in color space, use `zmin` and `zmax`.\n            Alternatively, `colorscale` may be a palette name\n            string of the following list: Blackbody,Bluered,Blues,C\n            ividis,Earth,Electric,Greens,Greys,Hot,Jet,Picnic,Portl\n            and,Rainbow,RdBu,Reds,Viridis,YlGnBu,YlOrRd.\n        contours\n            :class:`plotly.graph_objects.histogram2dcontour.Contour\n            s` instance or dict with compatible properties\n        customdata\n            Assigns extra data each datum. This may be useful when\n            listening to hover, click and selection events. Note\n            that, "scatter" traces also appends customdata items in\n            the markers DOM elements\n        customdatasrc\n            Sets the source reference on Chart Studio Cloud for\n            `customdata`.\n        histfunc\n            Specifies the binning function used for this histogram\n            trace. If "count", the histogram values are computed by\n            counting the number of values lying inside each bin. If\n            "sum", "avg", "min", "max", the histogram values are\n            computed using the sum, the average, the minimum or the\n            maximum of the values lying inside each bin\n            respectively.\n        histnorm\n            Specifies the type of normalization used for this\n            histogram trace. If , the span of each bar\n            corresponds to the number of occurrences (i.e. the\n            number of data points lying inside the bins). If\n            "percent" / "probability", the span of each bar\n            corresponds to the percentage / fraction of occurrences\n            with respect to the total number of sample points\n            (here, the sum of all bin HEIGHTS equals 100% / 1). If\n            "density", the span of each bar corresponds to the\n            number of occurrences in a bin divided by the size of\n            the bin interval (here, the sum of all bin AREAS equals\n            the total number of sample points). If *probability\n            density*, the area of each bar corresponds to the\n            probability that an event will fall into the\n            corresponding bin (here, the sum of all bin AREAS\n            equals 1).\n        hoverinfo\n            Determines which trace information appear on hover. If\n            `none` or `skip` are set, no information is displayed\n            upon hovering. But, if `none` is set, click and hover\n            events are still fired.\n        hoverinfosrc\n            Sets the source reference on Chart Studio Cloud for\n            `hoverinfo`.\n        hoverlabel\n            :class:`plotly.graph_objects.histogram2dcontour.Hoverla\n            bel` instance or dict with compatible properties\n        hovertemplate\n            Template string used for rendering the information that\n            appear on hover box. Note that this will override\n            `hoverinfo`. Variables are inserted using %{variable},\n            for example "y: %{y}" as well as %{xother}, {%_xother},\n            {%_xother_}, {%xother_}. When showing info for several\n            points, "xother" will be added to those with different\n            x positions from the first point. An underscore before\n            or after "(x|y)other" will add a space on that side,\n            only when this field is shown. Numbers are formatted\n            using d3-format\'s syntax %{variable:d3-format}, for\n            example "Price: %{y:$.2f}".\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format\n            for details on the formatting syntax. Dates are\n            formatted using d3-time-format\'s syntax\n            %{variable|d3-time-format}, for example "Day:\n            %{2019-01-01|%A}". https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format for details on the\n            date formatting syntax. The variables available in\n            `hovertemplate` are the ones emitted as event data\n            described at this link\n            https://plotly.com/javascript/plotlyjs-events/#event-\n            data. Additionally, every attributes that can be\n            specified per-point (the ones that are `arrayOk: true`)\n            are available. variable `z` Anything contained in tag\n            `<extra>` is displayed in the secondary box, for\n            example "<extra>{fullData.name}</extra>". To hide the\n            secondary box completely, use an empty tag\n            `<extra></extra>`.\n        hovertemplatesrc\n            Sets the source reference on Chart Studio Cloud for\n            `hovertemplate`.\n        ids\n            Assigns id labels to each datum. These ids for object\n            constancy of data points during animation. Should be an\n            array of strings, not numbers or any other type.\n        idssrc\n            Sets the source reference on Chart Studio Cloud for\n            `ids`.\n        legendgroup\n            Sets the legend group for this trace. Traces part of\n            the same legend group hide/show at the same time when\n            toggling legend items.\n        legendgrouptitle\n            :class:`plotly.graph_objects.histogram2dcontour.Legendg\n            rouptitle` instance or dict with compatible properties\n        legendrank\n            Sets the legend rank for this trace. Items and groups\n            with smaller ranks are presented on top/left side while\n            with `*reversed* `legend.traceorder` they are on\n            bottom/right side. The default legendrank is 1000, so\n            that you can use ranks less than 1000 to place certain\n            items before all unranked items, and ranks greater than\n            1000 to go after all unranked items.\n        line\n            :class:`plotly.graph_objects.histogram2dcontour.Line`\n            instance or dict with compatible properties\n        marker\n            :class:`plotly.graph_objects.histogram2dcontour.Marker`\n            instance or dict with compatible properties\n        meta\n            Assigns extra meta information associated with this\n            trace that can be used in various text attributes.\n            Attributes such as trace `name`, graph, axis and\n            colorbar `title.text`, annotation `text`\n            `rangeselector`, `updatemenues` and `sliders` `label`\n            text all support `meta`. To access the trace `meta`\n            values in an attribute in the same trace, simply use\n            `%{meta[i]}` where `i` is the index or key of the\n            `meta` item in question. To access trace `meta` in\n            layout attributes, use `%{data[n[.meta[i]}` where `i`\n            is the index or key of the `meta` and `n` is the trace\n            index.\n        metasrc\n            Sets the source reference on Chart Studio Cloud for\n            `meta`.\n        name\n            Sets the trace name. The trace name appear as the\n            legend item and on hover.\n        nbinsx\n            Specifies the maximum number of desired bins. This\n            value will be used in an algorithm that will decide the\n            optimal bin size such that the histogram best\n            visualizes the distribution of the data. Ignored if\n            `xbins.size` is provided.\n        nbinsy\n            Specifies the maximum number of desired bins. This\n            value will be used in an algorithm that will decide the\n            optimal bin size such that the histogram best\n            visualizes the distribution of the data. Ignored if\n            `ybins.size` is provided.\n        ncontours\n            Sets the maximum number of contour levels. The actual\n            number of contours will be chosen automatically to be\n            less than or equal to the value of `ncontours`. Has an\n            effect only if `autocontour` is True or if\n            `contours.size` is missing.\n        opacity\n            Sets the opacity of the trace.\n        reversescale\n            Reverses the color mapping if true. If true, `zmin`\n            will correspond to the last color in the array and\n            `zmax` will correspond to the first color.\n        showlegend\n            Determines whether or not an item corresponding to this\n            trace is shown in the legend.\n        showscale\n            Determines whether or not a colorbar is displayed for\n            this trace.\n        stream\n            :class:`plotly.graph_objects.histogram2dcontour.Stream`\n            instance or dict with compatible properties\n        textfont\n            For this trace it only has an effect if `coloring` is\n            set to "heatmap". Sets the text font.\n        texttemplate\n            For this trace it only has an effect if `coloring` is\n            set to "heatmap". Template string used for rendering\n            the information text that appear on points. Note that\n            this will override `textinfo`. Variables are inserted\n            using %{variable}, for example "y: %{y}". Numbers are\n            formatted using d3-format\'s syntax\n            %{variable:d3-format}, for example "Price: %{y:$.2f}".\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format\n            for details on the formatting syntax. Dates are\n            formatted using d3-time-format\'s syntax\n            %{variable|d3-time-format}, for example "Day:\n            %{2019-01-01|%A}". https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format for details on the\n            date formatting syntax. Every attributes that can be\n            specified per-point (the ones that are `arrayOk: true`)\n            are available. variables `x`, `y`, `z` and `text`.\n        uid\n            Assign an id to this trace, Use this to provide object\n            constancy between traces during animations and\n            transitions.\n        uirevision\n            Controls persistence of some user-driven changes to the\n            trace: `constraintrange` in `parcoords` traces, as well\n            as some `editable: true` modifications such as `name`\n            and `colorbar.title`. Defaults to `layout.uirevision`.\n            Note that other user-driven trace attribute changes are\n            controlled by `layout` attributes: `trace.visible` is\n            controlled by `layout.legend.uirevision`,\n            `selectedpoints` is controlled by\n            `layout.selectionrevision`, and `colorbar.(x|y)`\n            (accessible with `config: {editable: true}`) is\n            controlled by `layout.editrevision`. Trace changes are\n            tracked by `uid`, which only falls back on trace index\n            if no `uid` is provided. So if your app can add/remove\n            traces before the end of the `data` array, such that\n            the same trace has a different index, you can still\n            preserve user-driven changes if you give each trace a\n            `uid` that stays with it as it moves.\n        visible\n            Determines whether or not this trace is visible. If\n            "legendonly", the trace is not drawn, but can appear as\n            a legend item (provided that the legend itself is\n            visible).\n        x\n            Sets the sample data to be binned on the x axis.\n        xaxis\n            Sets a reference between this trace\'s x coordinates and\n            a 2D cartesian x axis. If "x" (the default value), the\n            x coordinates refer to `layout.xaxis`. If "x2", the x\n            coordinates refer to `layout.xaxis2`, and so on.\n        xbingroup\n            Set a group of histogram traces which will have\n            compatible x-bin settings. Using `xbingroup`,\n            histogram2d and histogram2dcontour traces  (on axes of\n            the same axis type) can have compatible x-bin settings.\n            Note that the same `xbingroup` value can be used to set\n            (1D) histogram `bingroup`\n        xbins\n            :class:`plotly.graph_objects.histogram2dcontour.XBins`\n            instance or dict with compatible properties\n        xcalendar\n            Sets the calendar system to use with `x` date data.\n        xhoverformat\n            Sets the hover text formatting rulefor `x`  using d3\n            formatting mini-languages which are very similar to\n            those in Python. For numbers, see:\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format.\n            And for dates see: https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format. We add two items to\n            d3\'s date formatter: "%h" for half of the year as a\n            decimal number as well as "%{n}f" for fractional\n            seconds with n digits. For example, *2016-10-13\n            09:15:23.456* with tickformat "%H~%M~%S.%2f" would\n            display *09~15~23.46*By default the values are\n            formatted using `xaxis.hoverformat`.\n        xsrc\n            Sets the source reference on Chart Studio Cloud for\n            `x`.\n        y\n            Sets the sample data to be binned on the y axis.\n        yaxis\n            Sets a reference between this trace\'s y coordinates and\n            a 2D cartesian y axis. If "y" (the default value), the\n            y coordinates refer to `layout.yaxis`. If "y2", the y\n            coordinates refer to `layout.yaxis2`, and so on.\n        ybingroup\n            Set a group of histogram traces which will have\n            compatible y-bin settings. Using `ybingroup`,\n            histogram2d and histogram2dcontour traces  (on axes of\n            the same axis type) can have compatible y-bin settings.\n            Note that the same `ybingroup` value can be used to set\n            (1D) histogram `bingroup`\n        ybins\n            :class:`plotly.graph_objects.histogram2dcontour.YBins`\n            instance or dict with compatible properties\n        ycalendar\n            Sets the calendar system to use with `y` date data.\n        yhoverformat\n            Sets the hover text formatting rulefor `y`  using d3\n            formatting mini-languages which are very similar to\n            those in Python. For numbers, see:\n            https://github.com/d3/d3-format/tree/v1.4.5#d3-format.\n            And for dates see: https://github.com/d3/d3-time-\n            format/tree/v2.2.3#locale_format. We add two items to\n            d3\'s date formatter: "%h" for half of the year as a\n            decimal number as well as "%{n}f" for fractional\n            seconds with n digits. For example, *2016-10-13\n            09:15:23.456* with tickformat "%H~%M~%S.%2f" would\n            display *09~15~23.46*By default the values are\n            formatted using `yaxis.hoverformat`.\n        ysrc\n            Sets the source reference on Chart Studio Cloud for\n            `y`.\n        z\n            Sets the aggregation data.\n        zauto\n            Determines whether or not the color domain is computed\n            with respect to the input data (here in `z`) or the\n            bounds set in `zmin` and `zmax` Defaults to `false`\n            when `zmin` and `zmax` are set by the user.\n        zhoverformat\n            Sets the hover text formatting rulefor `z`  using d3\n            formatting mini-languages which are very similar to\n            those in Python. For numbers, see: https://github.com/d\n            3/d3-format/tree/v1.4.5#d3-format.By default the values\n            are formatted using generic number format.\n        zmax\n            Sets the upper bound of the color domain. Value should\n            have the same units as in `z` and if set, `zmin` must\n            be set as well.\n        zmid\n            Sets the mid-point of the color domain by scaling\n            `zmin` and/or `zmax` to be equidistant to this point.\n            Value should have the same units as in `z`. Has no\n            effect when `zauto` is `false`.\n        zmin\n            Sets the lower bound of the color domain. Value should\n            have the same units as in `z` and if set, `zmax` must\n            be set as well.\n        zsrc\n            Sets the source reference on Chart Studio Cloud for\n            `z`.\n\n        Returns\n        -------\n        Histogram2dContour\n        '
    super(Histogram2dContour, self).__init__('histogram2dcontour')
    if ('_parent' in kwargs):
        self._parent = kwargs['_parent']
        return
    if (arg is None):
        arg = {}
    elif isinstance(arg, self.__class__):
        arg = arg.to_plotly_json()
    elif isinstance(arg, dict):
        arg = _copy.copy(arg)
    else:
        raise ValueError('The first argument to the plotly.graph_objs.Histogram2dContour\nconstructor must be a dict or\nan instance of :class:`plotly.graph_objs.Histogram2dContour`')
    self._skip_invalid = kwargs.pop('skip_invalid', False)
    self._validate = kwargs.pop('_validate', True)
    _v = arg.pop('autobinx', None)
    _v = (autobinx if (autobinx is not None) else _v)
    if (_v is not None):
        self['autobinx'] = _v
    _v = arg.pop('autobiny', None)
    _v = (autobiny if (autobiny is not None) else _v)
    if (_v is not None):
        self['autobiny'] = _v
    _v = arg.pop('autocolorscale', None)
    _v = (autocolorscale if (autocolorscale is not None) else _v)
    if (_v is not None):
        self['autocolorscale'] = _v
    _v = arg.pop('autocontour', None)
    _v = (autocontour if (autocontour is not None) else _v)
    if (_v is not None):
        self['autocontour'] = _v
    _v = arg.pop('bingroup', None)
    _v = (bingroup if (bingroup is not None) else _v)
    if (_v is not None):
        self['bingroup'] = _v
    _v = arg.pop('coloraxis', None)
    _v = (coloraxis if (coloraxis is not None) else _v)
    if (_v is not None):
        self['coloraxis'] = _v
    _v = arg.pop('colorbar', None)
    _v = (colorbar if (colorbar is not None) else _v)
    if (_v is not None):
        self['colorbar'] = _v
    _v = arg.pop('colorscale', None)
    _v = (colorscale if (colorscale is not None) else _v)
    if (_v is not None):
        self['colorscale'] = _v
    _v = arg.pop('contours', None)
    _v = (contours if (contours is not None) else _v)
    if (_v is not None):
        self['contours'] = _v
    _v = arg.pop('customdata', None)
    _v = (customdata if (customdata is not None) else _v)
    if (_v is not None):
        self['customdata'] = _v
    _v = arg.pop('customdatasrc', None)
    _v = (customdatasrc if (customdatasrc is not None) else _v)
    if (_v is not None):
        self['customdatasrc'] = _v
    _v = arg.pop('histfunc', None)
    _v = (histfunc if (histfunc is not None) else _v)
    if (_v is not None):
        self['histfunc'] = _v
    _v = arg.pop('histnorm', None)
    _v = (histnorm if (histnorm is not None) else _v)
    if (_v is not None):
        self['histnorm'] = _v
    _v = arg.pop('hoverinfo', None)
    _v = (hoverinfo if (hoverinfo is not None) else _v)
    if (_v is not None):
        self['hoverinfo'] = _v
    _v = arg.pop('hoverinfosrc', None)
    _v = (hoverinfosrc if (hoverinfosrc is not None) else _v)
    if (_v is not None):
        self['hoverinfosrc'] = _v
    _v = arg.pop('hoverlabel', None)
    _v = (hoverlabel if (hoverlabel is not None) else _v)
    if (_v is not None):
        self['hoverlabel'] = _v
    _v = arg.pop('hovertemplate', None)
    _v = (hovertemplate if (hovertemplate is not None) else _v)
    if (_v is not None):
        self['hovertemplate'] = _v
    _v = arg.pop('hovertemplatesrc', None)
    _v = (hovertemplatesrc if (hovertemplatesrc is not None) else _v)
    if (_v is not None):
        self['hovertemplatesrc'] = _v
    _v = arg.pop('ids', None)
    _v = (ids if (ids is not None) else _v)
    if (_v is not None):
        self['ids'] = _v
    _v = arg.pop('idssrc', None)
    _v = (idssrc if (idssrc is not None) else _v)
    if (_v is not None):
        self['idssrc'] = _v
    _v = arg.pop('legendgroup', None)
    _v = (legendgroup if (legendgroup is not None) else _v)
    if (_v is not None):
        self['legendgroup'] = _v
    _v = arg.pop('legendgrouptitle', None)
    _v = (legendgrouptitle if (legendgrouptitle is not None) else _v)
    if (_v is not None):
        self['legendgrouptitle'] = _v
    _v = arg.pop('legendrank', None)
    _v = (legendrank if (legendrank is not None) else _v)
    if (_v is not None):
        self['legendrank'] = _v
    _v = arg.pop('line', None)
    _v = (line if (line is not None) else _v)
    if (_v is not None):
        self['line'] = _v
    _v = arg.pop('marker', None)
    _v = (marker if (marker is not None) else _v)
    if (_v is not None):
        self['marker'] = _v
    _v = arg.pop('meta', None)
    _v = (meta if (meta is not None) else _v)
    if (_v is not None):
        self['meta'] = _v
    _v = arg.pop('metasrc', None)
    _v = (metasrc if (metasrc is not None) else _v)
    if (_v is not None):
        self['metasrc'] = _v
    _v = arg.pop('name', None)
    _v = (name if (name is not None) else _v)
    if (_v is not None):
        self['name'] = _v
    _v = arg.pop('nbinsx', None)
    _v = (nbinsx if (nbinsx is not None) else _v)
    if (_v is not None):
        self['nbinsx'] = _v
    _v = arg.pop('nbinsy', None)
    _v = (nbinsy if (nbinsy is not None) else _v)
    if (_v is not None):
        self['nbinsy'] = _v
    _v = arg.pop('ncontours', None)
    _v = (ncontours if (ncontours is not None) else _v)
    if (_v is not None):
        self['ncontours'] = _v
    _v = arg.pop('opacity', None)
    _v = (opacity if (opacity is not None) else _v)
    if (_v is not None):
        self['opacity'] = _v
    _v = arg.pop('reversescale', None)
    _v = (reversescale if (reversescale is not None) else _v)
    if (_v is not None):
        self['reversescale'] = _v
    _v = arg.pop('showlegend', None)
    _v = (showlegend if (showlegend is not None) else _v)
    if (_v is not None):
        self['showlegend'] = _v
    _v = arg.pop('showscale', None)
    _v = (showscale if (showscale is not None) else _v)
    if (_v is not None):
        self['showscale'] = _v
    _v = arg.pop('stream', None)
    _v = (stream if (stream is not None) else _v)
    if (_v is not None):
        self['stream'] = _v
    _v = arg.pop('textfont', None)
    _v = (textfont if (textfont is not None) else _v)
    if (_v is not None):
        self['textfont'] = _v
    _v = arg.pop('texttemplate', None)
    _v = (texttemplate if (texttemplate is not None) else _v)
    if (_v is not None):
        self['texttemplate'] = _v
    _v = arg.pop('uid', None)
    _v = (uid if (uid is not None) else _v)
    if (_v is not None):
        self['uid'] = _v
    _v = arg.pop('uirevision', None)
    _v = (uirevision if (uirevision is not None) else _v)
    if (_v is not None):
        self['uirevision'] = _v
    _v = arg.pop('visible', None)
    _v = (visible if (visible is not None) else _v)
    if (_v is not None):
        self['visible'] = _v
    _v = arg.pop('x', None)
    _v = (x if (x is not None) else _v)
    if (_v is not None):
        self['x'] = _v
    _v = arg.pop('xaxis', None)
    _v = (xaxis if (xaxis is not None) else _v)
    if (_v is not None):
        self['xaxis'] = _v
    _v = arg.pop('xbingroup', None)
    _v = (xbingroup if (xbingroup is not None) else _v)
    if (_v is not None):
        self['xbingroup'] = _v
    _v = arg.pop('xbins', None)
    _v = (xbins if (xbins is not None) else _v)
    if (_v is not None):
        self['xbins'] = _v
    _v = arg.pop('xcalendar', None)
    _v = (xcalendar if (xcalendar is not None) else _v)
    if (_v is not None):
        self['xcalendar'] = _v
    _v = arg.pop('xhoverformat', None)
    _v = (xhoverformat if (xhoverformat is not None) else _v)
    if (_v is not None):
        self['xhoverformat'] = _v
    _v = arg.pop('xsrc', None)
    _v = (xsrc if (xsrc is not None) else _v)
    if (_v is not None):
        self['xsrc'] = _v
    _v = arg.pop('y', None)
    _v = (y if (y is not None) else _v)
    if (_v is not None):
        self['y'] = _v
    _v = arg.pop('yaxis', None)
    _v = (yaxis if (yaxis is not None) else _v)
    if (_v is not None):
        self['yaxis'] = _v
    _v = arg.pop('ybingroup', None)
    _v = (ybingroup if (ybingroup is not None) else _v)
    if (_v is not None):
        self['ybingroup'] = _v
    _v = arg.pop('ybins', None)
    _v = (ybins if (ybins is not None) else _v)
    if (_v is not None):
        self['ybins'] = _v
    _v = arg.pop('ycalendar', None)
    _v = (ycalendar if (ycalendar is not None) else _v)
    if (_v is not None):
        self['ycalendar'] = _v
    _v = arg.pop('yhoverformat', None)
    _v = (yhoverformat if (yhoverformat is not None) else _v)
    if (_v is not None):
        self['yhoverformat'] = _v
    _v = arg.pop('ysrc', None)
    _v = (ysrc if (ysrc is not None) else _v)
    if (_v is not None):
        self['ysrc'] = _v
    _v = arg.pop('z', None)
    _v = (z if (z is not None) else _v)
    if (_v is not None):
        self['z'] = _v
    _v = arg.pop('zauto', None)
    _v = (zauto if (zauto is not None) else _v)
    if (_v is not None):
        self['zauto'] = _v
    _v = arg.pop('zhoverformat', None)
    _v = (zhoverformat if (zhoverformat is not None) else _v)
    if (_v is not None):
        self['zhoverformat'] = _v
    _v = arg.pop('zmax', None)
    _v = (zmax if (zmax is not None) else _v)
    if (_v is not None):
        self['zmax'] = _v
    _v = arg.pop('zmid', None)
    _v = (zmid if (zmid is not None) else _v)
    if (_v is not None):
        self['zmid'] = _v
    _v = arg.pop('zmin', None)
    _v = (zmin if (zmin is not None) else _v)
    if (_v is not None):
        self['zmin'] = _v
    _v = arg.pop('zsrc', None)
    _v = (zsrc if (zsrc is not None) else _v)
    if (_v is not None):
        self['zsrc'] = _v
    self._props['type'] = 'histogram2dcontour'
    arg.pop('type', None)
    self._process_kwargs(**dict(arg, **kwargs))
    self._skip_invalid = False