1from plotly.basedatatypes import BaseTraceType as _BaseTraceType
2import copy as _copy
3
4
5class Box(_BaseTraceType):
6
7    # class properties
8    # --------------------
9    _parent_path_str = ""
10    _path_str = "box"
11    _valid_props = {
12        "alignmentgroup",
13        "boxmean",
14        "boxpoints",
15        "customdata",
16        "customdatasrc",
17        "dx",
18        "dy",
19        "fillcolor",
20        "hoverinfo",
21        "hoverinfosrc",
22        "hoverlabel",
23        "hoveron",
24        "hovertemplate",
25        "hovertemplatesrc",
26        "hovertext",
27        "hovertextsrc",
28        "ids",
29        "idssrc",
30        "jitter",
31        "legendgroup",
32        "line",
33        "lowerfence",
34        "lowerfencesrc",
35        "marker",
36        "mean",
37        "meansrc",
38        "median",
39        "mediansrc",
40        "meta",
41        "metasrc",
42        "name",
43        "notched",
44        "notchspan",
45        "notchspansrc",
46        "notchwidth",
47        "offsetgroup",
48        "opacity",
49        "orientation",
50        "pointpos",
51        "q1",
52        "q1src",
53        "q3",
54        "q3src",
55        "quartilemethod",
56        "sd",
57        "sdsrc",
58        "selected",
59        "selectedpoints",
60        "showlegend",
61        "stream",
62        "text",
63        "textsrc",
64        "type",
65        "uid",
66        "uirevision",
67        "unselected",
68        "upperfence",
69        "upperfencesrc",
70        "visible",
71        "whiskerwidth",
72        "width",
73        "x",
74        "x0",
75        "xaxis",
76        "xcalendar",
77        "xperiod",
78        "xperiod0",
79        "xperiodalignment",
80        "xsrc",
81        "y",
82        "y0",
83        "yaxis",
84        "ycalendar",
85        "yperiod",
86        "yperiod0",
87        "yperiodalignment",
88        "ysrc",
89    }
90
91    # alignmentgroup
92    # --------------
93    @property
94    def alignmentgroup(self):
95        """
96        Set several traces linked to the same position axis or matching
97        axes to the same alignmentgroup. This controls whether bars
98        compute their positional range dependently or independently.
99
100        The 'alignmentgroup' property is a string and must be specified as:
101          - A string
102          - A number that will be converted to a string
103
104        Returns
105        -------
106        str
107        """
108        return self["alignmentgroup"]
109
110    @alignmentgroup.setter
111    def alignmentgroup(self, val):
112        self["alignmentgroup"] = val
113
114    # boxmean
115    # -------
116    @property
117    def boxmean(self):
118        """
119        If True, the mean of the box(es)' underlying distribution is
120        drawn as a dashed line inside the box(es). If "sd" the standard
121        deviation is also drawn. Defaults to True when `mean` is set.
122        Defaults to "sd" when `sd` is set Otherwise defaults to False.
123
124        The 'boxmean' property is an enumeration that may be specified as:
125          - One of the following enumeration values:
126                [True, 'sd', False]
127
128        Returns
129        -------
130        Any
131        """
132        return self["boxmean"]
133
134    @boxmean.setter
135    def boxmean(self, val):
136        self["boxmean"] = val
137
138    # boxpoints
139    # ---------
140    @property
141    def boxpoints(self):
142        """
143        If "outliers", only the sample points lying outside the
144        whiskers are shown If "suspectedoutliers", the outlier points
145        are shown and points either less than 4*Q1-3*Q3 or greater than
146        4*Q3-3*Q1 are highlighted (see `outliercolor`) If "all", all
147        sample points are shown If False, only the box(es) are shown
148        with no sample points Defaults to "suspectedoutliers" when
149        `marker.outliercolor` or `marker.line.outliercolor` is set.
150        Defaults to "all" under the q1/median/q3 signature. Otherwise
151        defaults to "outliers".
152
153        The 'boxpoints' property is an enumeration that may be specified as:
154          - One of the following enumeration values:
155                ['all', 'outliers', 'suspectedoutliers', False]
156
157        Returns
158        -------
159        Any
160        """
161        return self["boxpoints"]
162
163    @boxpoints.setter
164    def boxpoints(self, val):
165        self["boxpoints"] = val
166
167    # customdata
168    # ----------
169    @property
170    def customdata(self):
171        """
172        Assigns extra data each datum. This may be useful when
173        listening to hover, click and selection events. Note that,
174        "scatter" traces also appends customdata items in the markers
175        DOM elements
176
177        The 'customdata' property is an array that may be specified as a tuple,
178        list, numpy array, or pandas Series
179
180        Returns
181        -------
182        numpy.ndarray
183        """
184        return self["customdata"]
185
186    @customdata.setter
187    def customdata(self, val):
188        self["customdata"] = val
189
190    # customdatasrc
191    # -------------
192    @property
193    def customdatasrc(self):
194        """
195        Sets the source reference on Chart Studio Cloud for  customdata
196        .
197
198        The 'customdatasrc' property must be specified as a string or
199        as a plotly.grid_objs.Column object
200
201        Returns
202        -------
203        str
204        """
205        return self["customdatasrc"]
206
207    @customdatasrc.setter
208    def customdatasrc(self, val):
209        self["customdatasrc"] = val
210
211    # dx
212    # --
213    @property
214    def dx(self):
215        """
216        Sets the x coordinate step for multi-box traces set using
217        q1/median/q3.
218
219        The 'dx' property is a number and may be specified as:
220          - An int or float
221
222        Returns
223        -------
224        int|float
225        """
226        return self["dx"]
227
228    @dx.setter
229    def dx(self, val):
230        self["dx"] = val
231
232    # dy
233    # --
234    @property
235    def dy(self):
236        """
237        Sets the y coordinate step for multi-box traces set using
238        q1/median/q3.
239
240        The 'dy' property is a number and may be specified as:
241          - An int or float
242
243        Returns
244        -------
245        int|float
246        """
247        return self["dy"]
248
249    @dy.setter
250    def dy(self, val):
251        self["dy"] = val
252
253    # fillcolor
254    # ---------
255    @property
256    def fillcolor(self):
257        """
258        Sets the fill color. Defaults to a half-transparent variant of
259        the line color, marker color, or marker line color, whichever
260        is available.
261
262        The 'fillcolor' property is a color and may be specified as:
263          - A hex string (e.g. '#ff0000')
264          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
265          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
266          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
267          - A named CSS color:
268                aliceblue, antiquewhite, aqua, aquamarine, azure,
269                beige, bisque, black, blanchedalmond, blue,
270                blueviolet, brown, burlywood, cadetblue,
271                chartreuse, chocolate, coral, cornflowerblue,
272                cornsilk, crimson, cyan, darkblue, darkcyan,
273                darkgoldenrod, darkgray, darkgrey, darkgreen,
274                darkkhaki, darkmagenta, darkolivegreen, darkorange,
275                darkorchid, darkred, darksalmon, darkseagreen,
276                darkslateblue, darkslategray, darkslategrey,
277                darkturquoise, darkviolet, deeppink, deepskyblue,
278                dimgray, dimgrey, dodgerblue, firebrick,
279                floralwhite, forestgreen, fuchsia, gainsboro,
280                ghostwhite, gold, goldenrod, gray, grey, green,
281                greenyellow, honeydew, hotpink, indianred, indigo,
282                ivory, khaki, lavender, lavenderblush, lawngreen,
283                lemonchiffon, lightblue, lightcoral, lightcyan,
284                lightgoldenrodyellow, lightgray, lightgrey,
285                lightgreen, lightpink, lightsalmon, lightseagreen,
286                lightskyblue, lightslategray, lightslategrey,
287                lightsteelblue, lightyellow, lime, limegreen,
288                linen, magenta, maroon, mediumaquamarine,
289                mediumblue, mediumorchid, mediumpurple,
290                mediumseagreen, mediumslateblue, mediumspringgreen,
291                mediumturquoise, mediumvioletred, midnightblue,
292                mintcream, mistyrose, moccasin, navajowhite, navy,
293                oldlace, olive, olivedrab, orange, orangered,
294                orchid, palegoldenrod, palegreen, paleturquoise,
295                palevioletred, papayawhip, peachpuff, peru, pink,
296                plum, powderblue, purple, red, rosybrown,
297                royalblue, rebeccapurple, saddlebrown, salmon,
298                sandybrown, seagreen, seashell, sienna, silver,
299                skyblue, slateblue, slategray, slategrey, snow,
300                springgreen, steelblue, tan, teal, thistle, tomato,
301                turquoise, violet, wheat, white, whitesmoke,
302                yellow, yellowgreen
303
304        Returns
305        -------
306        str
307        """
308        return self["fillcolor"]
309
310    @fillcolor.setter
311    def fillcolor(self, val):
312        self["fillcolor"] = val
313
314    # hoverinfo
315    # ---------
316    @property
317    def hoverinfo(self):
318        """
319        Determines which trace information appear on hover. If `none`
320        or `skip` are set, no information is displayed upon hovering.
321        But, if `none` is set, click and hover events are still fired.
322
323        The 'hoverinfo' property is a flaglist and may be specified
324        as a string containing:
325          - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters
326            (e.g. 'x+y')
327            OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
328          - A list or array of the above
329
330        Returns
331        -------
332        Any|numpy.ndarray
333        """
334        return self["hoverinfo"]
335
336    @hoverinfo.setter
337    def hoverinfo(self, val):
338        self["hoverinfo"] = val
339
340    # hoverinfosrc
341    # ------------
342    @property
343    def hoverinfosrc(self):
344        """
345        Sets the source reference on Chart Studio Cloud for  hoverinfo
346        .
347
348        The 'hoverinfosrc' property must be specified as a string or
349        as a plotly.grid_objs.Column object
350
351        Returns
352        -------
353        str
354        """
355        return self["hoverinfosrc"]
356
357    @hoverinfosrc.setter
358    def hoverinfosrc(self, val):
359        self["hoverinfosrc"] = val
360
361    # hoverlabel
362    # ----------
363    @property
364    def hoverlabel(self):
365        """
366        The 'hoverlabel' property is an instance of Hoverlabel
367        that may be specified as:
368          - An instance of :class:`plotly.graph_objs.box.Hoverlabel`
369          - A dict of string/value properties that will be passed
370            to the Hoverlabel constructor
371
372            Supported dict properties:
373
374                align
375                    Sets the horizontal alignment of the text
376                    content within hover label box. Has an effect
377                    only if the hover label text spans more two or
378                    more lines
379                alignsrc
380                    Sets the source reference on Chart Studio Cloud
381                    for  align .
382                bgcolor
383                    Sets the background color of the hover labels
384                    for this trace
385                bgcolorsrc
386                    Sets the source reference on Chart Studio Cloud
387                    for  bgcolor .
388                bordercolor
389                    Sets the border color of the hover labels for
390                    this trace.
391                bordercolorsrc
392                    Sets the source reference on Chart Studio Cloud
393                    for  bordercolor .
394                font
395                    Sets the font used in hover labels.
396                namelength
397                    Sets the default length (in number of
398                    characters) of the trace name in the hover
399                    labels for all traces. -1 shows the whole name
400                    regardless of length. 0-3 shows the first 0-3
401                    characters, and an integer >3 will show the
402                    whole name if it is less than that many
403                    characters, but if it is longer, will truncate
404                    to `namelength - 3` characters and add an
405                    ellipsis.
406                namelengthsrc
407                    Sets the source reference on Chart Studio Cloud
408                    for  namelength .
409
410        Returns
411        -------
412        plotly.graph_objs.box.Hoverlabel
413        """
414        return self["hoverlabel"]
415
416    @hoverlabel.setter
417    def hoverlabel(self, val):
418        self["hoverlabel"] = val
419
420    # hoveron
421    # -------
422    @property
423    def hoveron(self):
424        """
425        Do the hover effects highlight individual boxes  or sample
426        points or both?
427
428        The 'hoveron' property is a flaglist and may be specified
429        as a string containing:
430          - Any combination of ['boxes', 'points'] joined with '+' characters
431            (e.g. 'boxes+points')
432
433        Returns
434        -------
435        Any
436        """
437        return self["hoveron"]
438
439    @hoveron.setter
440    def hoveron(self, val):
441        self["hoveron"] = val
442
443    # hovertemplate
444    # -------------
445    @property
446    def hovertemplate(self):
447        """
448        Template string used for rendering the information that appear
449        on hover box. Note that this will override `hoverinfo`.
450        Variables are inserted using %{variable}, for example "y:
451        %{y}". Numbers are formatted using d3-format's syntax
452        %{variable:d3-format}, for example "Price: %{y:$.2f}".
453        https://github.com/d3/d3-3.x-api-
454        reference/blob/master/Formatting.md#d3_format for details on
455        the formatting syntax. Dates are formatted using d3-time-
456        format's syntax %{variable|d3-time-format}, for example "Day:
457        %{2019-01-01|%A}". https://github.com/d3/d3-time-
458        format#locale_format for details on the date formatting syntax.
459        The variables available in `hovertemplate` are the ones emitted
460        as event data described at this link
461        https://plotly.com/javascript/plotlyjs-events/#event-data.
462        Additionally, every attributes that can be specified per-point
463        (the ones that are `arrayOk: true`) are available.  Anything
464        contained in tag `<extra>` is displayed in the secondary box,
465        for example "<extra>{fullData.name}</extra>". To hide the
466        secondary box completely, use an empty tag `<extra></extra>`.
467
468        The 'hovertemplate' property is a string and must be specified as:
469          - A string
470          - A number that will be converted to a string
471          - A tuple, list, or one-dimensional numpy array of the above
472
473        Returns
474        -------
475        str|numpy.ndarray
476        """
477        return self["hovertemplate"]
478
479    @hovertemplate.setter
480    def hovertemplate(self, val):
481        self["hovertemplate"] = val
482
483    # hovertemplatesrc
484    # ----------------
485    @property
486    def hovertemplatesrc(self):
487        """
488        Sets the source reference on Chart Studio Cloud for
489        hovertemplate .
490
491        The 'hovertemplatesrc' property must be specified as a string or
492        as a plotly.grid_objs.Column object
493
494        Returns
495        -------
496        str
497        """
498        return self["hovertemplatesrc"]
499
500    @hovertemplatesrc.setter
501    def hovertemplatesrc(self, val):
502        self["hovertemplatesrc"] = val
503
504    # hovertext
505    # ---------
506    @property
507    def hovertext(self):
508        """
509        Same as `text`.
510
511        The 'hovertext' property is a string and must be specified as:
512          - A string
513          - A number that will be converted to a string
514          - A tuple, list, or one-dimensional numpy array of the above
515
516        Returns
517        -------
518        str|numpy.ndarray
519        """
520        return self["hovertext"]
521
522    @hovertext.setter
523    def hovertext(self, val):
524        self["hovertext"] = val
525
526    # hovertextsrc
527    # ------------
528    @property
529    def hovertextsrc(self):
530        """
531        Sets the source reference on Chart Studio Cloud for  hovertext
532        .
533
534        The 'hovertextsrc' property must be specified as a string or
535        as a plotly.grid_objs.Column object
536
537        Returns
538        -------
539        str
540        """
541        return self["hovertextsrc"]
542
543    @hovertextsrc.setter
544    def hovertextsrc(self, val):
545        self["hovertextsrc"] = val
546
547    # ids
548    # ---
549    @property
550    def ids(self):
551        """
552        Assigns id labels to each datum. These ids for object constancy
553        of data points during animation. Should be an array of strings,
554        not numbers or any other type.
555
556        The 'ids' property is an array that may be specified as a tuple,
557        list, numpy array, or pandas Series
558
559        Returns
560        -------
561        numpy.ndarray
562        """
563        return self["ids"]
564
565    @ids.setter
566    def ids(self, val):
567        self["ids"] = val
568
569    # idssrc
570    # ------
571    @property
572    def idssrc(self):
573        """
574        Sets the source reference on Chart Studio Cloud for  ids .
575
576        The 'idssrc' property must be specified as a string or
577        as a plotly.grid_objs.Column object
578
579        Returns
580        -------
581        str
582        """
583        return self["idssrc"]
584
585    @idssrc.setter
586    def idssrc(self, val):
587        self["idssrc"] = val
588
589    # jitter
590    # ------
591    @property
592    def jitter(self):
593        """
594        Sets the amount of jitter in the sample points drawn. If 0, the
595        sample points align along the distribution axis. If 1, the
596        sample points are drawn in a random jitter of width equal to
597        the width of the box(es).
598
599        The 'jitter' property is a number and may be specified as:
600          - An int or float in the interval [0, 1]
601
602        Returns
603        -------
604        int|float
605        """
606        return self["jitter"]
607
608    @jitter.setter
609    def jitter(self, val):
610        self["jitter"] = val
611
612    # legendgroup
613    # -----------
614    @property
615    def legendgroup(self):
616        """
617        Sets the legend group for this trace. Traces part of the same
618        legend group hide/show at the same time when toggling legend
619        items.
620
621        The 'legendgroup' property is a string and must be specified as:
622          - A string
623          - A number that will be converted to a string
624
625        Returns
626        -------
627        str
628        """
629        return self["legendgroup"]
630
631    @legendgroup.setter
632    def legendgroup(self, val):
633        self["legendgroup"] = val
634
635    # line
636    # ----
637    @property
638    def line(self):
639        """
640        The 'line' property is an instance of Line
641        that may be specified as:
642          - An instance of :class:`plotly.graph_objs.box.Line`
643          - A dict of string/value properties that will be passed
644            to the Line constructor
645
646            Supported dict properties:
647
648                color
649                    Sets the color of line bounding the box(es).
650                width
651                    Sets the width (in px) of line bounding the
652                    box(es).
653
654        Returns
655        -------
656        plotly.graph_objs.box.Line
657        """
658        return self["line"]
659
660    @line.setter
661    def line(self, val):
662        self["line"] = val
663
664    # lowerfence
665    # ----------
666    @property
667    def lowerfence(self):
668        """
669        Sets the lower fence values. There should be as many items as
670        the number of boxes desired. This attribute has effect only
671        under the q1/median/q3 signature. If `lowerfence` is not
672        provided but a sample (in `y` or `x`) is set, we compute the
673        lower as the last sample point below 1.5 times the IQR.
674
675        The 'lowerfence' property is an array that may be specified as a tuple,
676        list, numpy array, or pandas Series
677
678        Returns
679        -------
680        numpy.ndarray
681        """
682        return self["lowerfence"]
683
684    @lowerfence.setter
685    def lowerfence(self, val):
686        self["lowerfence"] = val
687
688    # lowerfencesrc
689    # -------------
690    @property
691    def lowerfencesrc(self):
692        """
693        Sets the source reference on Chart Studio Cloud for  lowerfence
694        .
695
696        The 'lowerfencesrc' property must be specified as a string or
697        as a plotly.grid_objs.Column object
698
699        Returns
700        -------
701        str
702        """
703        return self["lowerfencesrc"]
704
705    @lowerfencesrc.setter
706    def lowerfencesrc(self, val):
707        self["lowerfencesrc"] = val
708
709    # marker
710    # ------
711    @property
712    def marker(self):
713        """
714        The 'marker' property is an instance of Marker
715        that may be specified as:
716          - An instance of :class:`plotly.graph_objs.box.Marker`
717          - A dict of string/value properties that will be passed
718            to the Marker constructor
719
720            Supported dict properties:
721
722                color
723                    Sets themarkercolor. It accepts either a
724                    specific color or an array of numbers that are
725                    mapped to the colorscale relative to the max
726                    and min values of the array or relative to
727                    `marker.cmin` and `marker.cmax` if set.
728                line
729                    :class:`plotly.graph_objects.box.marker.Line`
730                    instance or dict with compatible properties
731                opacity
732                    Sets the marker opacity.
733                outliercolor
734                    Sets the color of the outlier sample points.
735                size
736                    Sets the marker size (in px).
737                symbol
738                    Sets the marker symbol type. Adding 100 is
739                    equivalent to appending "-open" to a symbol
740                    name. Adding 200 is equivalent to appending
741                    "-dot" to a symbol name. Adding 300 is
742                    equivalent to appending "-open-dot" or "dot-
743                    open" to a symbol name.
744
745        Returns
746        -------
747        plotly.graph_objs.box.Marker
748        """
749        return self["marker"]
750
751    @marker.setter
752    def marker(self, val):
753        self["marker"] = val
754
755    # mean
756    # ----
757    @property
758    def mean(self):
759        """
760        Sets the mean values. There should be as many items as the
761        number of boxes desired. This attribute has effect only under
762        the q1/median/q3 signature. If `mean` is not provided but a
763        sample (in `y` or `x`) is set, we compute the mean for each box
764        using the sample values.
765
766        The 'mean' property is an array that may be specified as a tuple,
767        list, numpy array, or pandas Series
768
769        Returns
770        -------
771        numpy.ndarray
772        """
773        return self["mean"]
774
775    @mean.setter
776    def mean(self, val):
777        self["mean"] = val
778
779    # meansrc
780    # -------
781    @property
782    def meansrc(self):
783        """
784        Sets the source reference on Chart Studio Cloud for  mean .
785
786        The 'meansrc' property must be specified as a string or
787        as a plotly.grid_objs.Column object
788
789        Returns
790        -------
791        str
792        """
793        return self["meansrc"]
794
795    @meansrc.setter
796    def meansrc(self, val):
797        self["meansrc"] = val
798
799    # median
800    # ------
801    @property
802    def median(self):
803        """
804        Sets the median values. There should be as many items as the
805        number of boxes desired.
806
807        The 'median' property is an array that may be specified as a tuple,
808        list, numpy array, or pandas Series
809
810        Returns
811        -------
812        numpy.ndarray
813        """
814        return self["median"]
815
816    @median.setter
817    def median(self, val):
818        self["median"] = val
819
820    # mediansrc
821    # ---------
822    @property
823    def mediansrc(self):
824        """
825        Sets the source reference on Chart Studio Cloud for  median .
826
827        The 'mediansrc' property must be specified as a string or
828        as a plotly.grid_objs.Column object
829
830        Returns
831        -------
832        str
833        """
834        return self["mediansrc"]
835
836    @mediansrc.setter
837    def mediansrc(self, val):
838        self["mediansrc"] = val
839
840    # meta
841    # ----
842    @property
843    def meta(self):
844        """
845        Assigns extra meta information associated with this trace that
846        can be used in various text attributes. Attributes such as
847        trace `name`, graph, axis and colorbar `title.text`, annotation
848        `text` `rangeselector`, `updatemenues` and `sliders` `label`
849        text all support `meta`. To access the trace `meta` values in
850        an attribute in the same trace, simply use `%{meta[i]}` where
851        `i` is the index or key of the `meta` item in question. To
852        access trace `meta` in layout attributes, use
853        `%{data[n[.meta[i]}` where `i` is the index or key of the
854        `meta` and `n` is the trace index.
855
856        The 'meta' property accepts values of any type
857
858        Returns
859        -------
860        Any|numpy.ndarray
861        """
862        return self["meta"]
863
864    @meta.setter
865    def meta(self, val):
866        self["meta"] = val
867
868    # metasrc
869    # -------
870    @property
871    def metasrc(self):
872        """
873        Sets the source reference on Chart Studio Cloud for  meta .
874
875        The 'metasrc' property must be specified as a string or
876        as a plotly.grid_objs.Column object
877
878        Returns
879        -------
880        str
881        """
882        return self["metasrc"]
883
884    @metasrc.setter
885    def metasrc(self, val):
886        self["metasrc"] = val
887
888    # name
889    # ----
890    @property
891    def name(self):
892        """
893        Sets the trace name. The trace name appear as the legend item
894        and on hover. For box traces, the name will also be used for
895        the position coordinate, if `x` and `x0` (`y` and `y0` if
896        horizontal) are missing and the position axis is categorical
897
898        The 'name' property is a string and must be specified as:
899          - A string
900          - A number that will be converted to a string
901
902        Returns
903        -------
904        str
905        """
906        return self["name"]
907
908    @name.setter
909    def name(self, val):
910        self["name"] = val
911
912    # notched
913    # -------
914    @property
915    def notched(self):
916        """
917        Determines whether or not notches are drawn. Notches displays a
918        confidence interval around the median. We compute the
919        confidence interval as median +/- 1.57 * IQR / sqrt(N), where
920        IQR is the interquartile range and N is the sample size. If two
921        boxes' notches do not overlap there is 95% confidence their
922        medians differ. See
923        https://sites.google.com/site/davidsstatistics/home/notched-
924        box-plots for more info. Defaults to False unless `notchwidth`
925        or `notchspan` is set.
926
927        The 'notched' property must be specified as a bool
928        (either True, or False)
929
930        Returns
931        -------
932        bool
933        """
934        return self["notched"]
935
936    @notched.setter
937    def notched(self, val):
938        self["notched"] = val
939
940    # notchspan
941    # ---------
942    @property
943    def notchspan(self):
944        """
945        Sets the notch span from the boxes' `median` values. There
946        should be as many items as the number of boxes desired. This
947        attribute has effect only under the q1/median/q3 signature. If
948        `notchspan` is not provided but a sample (in `y` or `x`) is
949        set, we compute it as 1.57 * IQR / sqrt(N), where N is the
950        sample size.
951
952        The 'notchspan' property is an array that may be specified as a tuple,
953        list, numpy array, or pandas Series
954
955        Returns
956        -------
957        numpy.ndarray
958        """
959        return self["notchspan"]
960
961    @notchspan.setter
962    def notchspan(self, val):
963        self["notchspan"] = val
964
965    # notchspansrc
966    # ------------
967    @property
968    def notchspansrc(self):
969        """
970        Sets the source reference on Chart Studio Cloud for  notchspan
971        .
972
973        The 'notchspansrc' property must be specified as a string or
974        as a plotly.grid_objs.Column object
975
976        Returns
977        -------
978        str
979        """
980        return self["notchspansrc"]
981
982    @notchspansrc.setter
983    def notchspansrc(self, val):
984        self["notchspansrc"] = val
985
986    # notchwidth
987    # ----------
988    @property
989    def notchwidth(self):
990        """
991        Sets the width of the notches relative to the box' width. For
992        example, with 0, the notches are as wide as the box(es).
993
994        The 'notchwidth' property is a number and may be specified as:
995          - An int or float in the interval [0, 0.5]
996
997        Returns
998        -------
999        int|float
1000        """
1001        return self["notchwidth"]
1002
1003    @notchwidth.setter
1004    def notchwidth(self, val):
1005        self["notchwidth"] = val
1006
1007    # offsetgroup
1008    # -----------
1009    @property
1010    def offsetgroup(self):
1011        """
1012        Set several traces linked to the same position axis or matching
1013        axes to the same offsetgroup where bars of the same position
1014        coordinate will line up.
1015
1016        The 'offsetgroup' property is a string and must be specified as:
1017          - A string
1018          - A number that will be converted to a string
1019
1020        Returns
1021        -------
1022        str
1023        """
1024        return self["offsetgroup"]
1025
1026    @offsetgroup.setter
1027    def offsetgroup(self, val):
1028        self["offsetgroup"] = val
1029
1030    # opacity
1031    # -------
1032    @property
1033    def opacity(self):
1034        """
1035        Sets the opacity of the trace.
1036
1037        The 'opacity' property is a number and may be specified as:
1038          - An int or float in the interval [0, 1]
1039
1040        Returns
1041        -------
1042        int|float
1043        """
1044        return self["opacity"]
1045
1046    @opacity.setter
1047    def opacity(self, val):
1048        self["opacity"] = val
1049
1050    # orientation
1051    # -----------
1052    @property
1053    def orientation(self):
1054        """
1055        Sets the orientation of the box(es). If "v" ("h"), the
1056        distribution is visualized along the vertical (horizontal).
1057
1058        The 'orientation' property is an enumeration that may be specified as:
1059          - One of the following enumeration values:
1060                ['v', 'h']
1061
1062        Returns
1063        -------
1064        Any
1065        """
1066        return self["orientation"]
1067
1068    @orientation.setter
1069    def orientation(self, val):
1070        self["orientation"] = val
1071
1072    # pointpos
1073    # --------
1074    @property
1075    def pointpos(self):
1076        """
1077        Sets the position of the sample points in relation to the
1078        box(es). If 0, the sample points are places over the center of
1079        the box(es). Positive (negative) values correspond to positions
1080        to the right (left) for vertical boxes and above (below) for
1081        horizontal boxes
1082
1083        The 'pointpos' property is a number and may be specified as:
1084          - An int or float in the interval [-2, 2]
1085
1086        Returns
1087        -------
1088        int|float
1089        """
1090        return self["pointpos"]
1091
1092    @pointpos.setter
1093    def pointpos(self, val):
1094        self["pointpos"] = val
1095
1096    # q1
1097    # --
1098    @property
1099    def q1(self):
1100        """
1101        Sets the Quartile 1 values. There should be as many items as
1102        the number of boxes desired.
1103
1104        The 'q1' property is an array that may be specified as a tuple,
1105        list, numpy array, or pandas Series
1106
1107        Returns
1108        -------
1109        numpy.ndarray
1110        """
1111        return self["q1"]
1112
1113    @q1.setter
1114    def q1(self, val):
1115        self["q1"] = val
1116
1117    # q1src
1118    # -----
1119    @property
1120    def q1src(self):
1121        """
1122        Sets the source reference on Chart Studio Cloud for  q1 .
1123
1124        The 'q1src' property must be specified as a string or
1125        as a plotly.grid_objs.Column object
1126
1127        Returns
1128        -------
1129        str
1130        """
1131        return self["q1src"]
1132
1133    @q1src.setter
1134    def q1src(self, val):
1135        self["q1src"] = val
1136
1137    # q3
1138    # --
1139    @property
1140    def q3(self):
1141        """
1142        Sets the Quartile 3 values. There should be as many items as
1143        the number of boxes desired.
1144
1145        The 'q3' property is an array that may be specified as a tuple,
1146        list, numpy array, or pandas Series
1147
1148        Returns
1149        -------
1150        numpy.ndarray
1151        """
1152        return self["q3"]
1153
1154    @q3.setter
1155    def q3(self, val):
1156        self["q3"] = val
1157
1158    # q3src
1159    # -----
1160    @property
1161    def q3src(self):
1162        """
1163        Sets the source reference on Chart Studio Cloud for  q3 .
1164
1165        The 'q3src' property must be specified as a string or
1166        as a plotly.grid_objs.Column object
1167
1168        Returns
1169        -------
1170        str
1171        """
1172        return self["q3src"]
1173
1174    @q3src.setter
1175    def q3src(self, val):
1176        self["q3src"] = val
1177
1178    # quartilemethod
1179    # --------------
1180    @property
1181    def quartilemethod(self):
1182        """
1183        Sets the method used to compute the sample's Q1 and Q3
1184        quartiles. The "linear" method uses the 25th percentile for Q1
1185        and 75th percentile for Q3 as computed using method #10 (listed
1186        on http://www.amstat.org/publications/jse/v14n3/langford.html).
1187        The "exclusive" method uses the median to divide the ordered
1188        dataset into two halves if the sample is odd, it does not
1189        include the median in either half - Q1 is then the median of
1190        the lower half and Q3 the median of the upper half. The
1191        "inclusive" method also uses the median to divide the ordered
1192        dataset into two halves but if the sample is odd, it includes
1193        the median in both halves - Q1 is then the median of the lower
1194        half and Q3 the median of the upper half.
1195
1196        The 'quartilemethod' property is an enumeration that may be specified as:
1197          - One of the following enumeration values:
1198                ['linear', 'exclusive', 'inclusive']
1199
1200        Returns
1201        -------
1202        Any
1203        """
1204        return self["quartilemethod"]
1205
1206    @quartilemethod.setter
1207    def quartilemethod(self, val):
1208        self["quartilemethod"] = val
1209
1210    # sd
1211    # --
1212    @property
1213    def sd(self):
1214        """
1215        Sets the standard deviation values. There should be as many
1216        items as the number of boxes desired. This attribute has effect
1217        only under the q1/median/q3 signature. If `sd` is not provided
1218        but a sample (in `y` or `x`) is set, we compute the standard
1219        deviation for each box using the sample values.
1220
1221        The 'sd' property is an array that may be specified as a tuple,
1222        list, numpy array, or pandas Series
1223
1224        Returns
1225        -------
1226        numpy.ndarray
1227        """
1228        return self["sd"]
1229
1230    @sd.setter
1231    def sd(self, val):
1232        self["sd"] = val
1233
1234    # sdsrc
1235    # -----
1236    @property
1237    def sdsrc(self):
1238        """
1239        Sets the source reference on Chart Studio Cloud for  sd .
1240
1241        The 'sdsrc' property must be specified as a string or
1242        as a plotly.grid_objs.Column object
1243
1244        Returns
1245        -------
1246        str
1247        """
1248        return self["sdsrc"]
1249
1250    @sdsrc.setter
1251    def sdsrc(self, val):
1252        self["sdsrc"] = val
1253
1254    # selected
1255    # --------
1256    @property
1257    def selected(self):
1258        """
1259        The 'selected' property is an instance of Selected
1260        that may be specified as:
1261          - An instance of :class:`plotly.graph_objs.box.Selected`
1262          - A dict of string/value properties that will be passed
1263            to the Selected constructor
1264
1265            Supported dict properties:
1266
1267                marker
1268                    :class:`plotly.graph_objects.box.selected.Marke
1269                    r` instance or dict with compatible properties
1270
1271        Returns
1272        -------
1273        plotly.graph_objs.box.Selected
1274        """
1275        return self["selected"]
1276
1277    @selected.setter
1278    def selected(self, val):
1279        self["selected"] = val
1280
1281    # selectedpoints
1282    # --------------
1283    @property
1284    def selectedpoints(self):
1285        """
1286        Array containing integer indices of selected points. Has an
1287        effect only for traces that support selections. Note that an
1288        empty array means an empty selection where the `unselected` are
1289        turned on for all points, whereas, any other non-array values
1290        means no selection all where the `selected` and `unselected`
1291        styles have no effect.
1292
1293        The 'selectedpoints' property accepts values of any type
1294
1295        Returns
1296        -------
1297        Any
1298        """
1299        return self["selectedpoints"]
1300
1301    @selectedpoints.setter
1302    def selectedpoints(self, val):
1303        self["selectedpoints"] = val
1304
1305    # showlegend
1306    # ----------
1307    @property
1308    def showlegend(self):
1309        """
1310        Determines whether or not an item corresponding to this trace
1311        is shown in the legend.
1312
1313        The 'showlegend' property must be specified as a bool
1314        (either True, or False)
1315
1316        Returns
1317        -------
1318        bool
1319        """
1320        return self["showlegend"]
1321
1322    @showlegend.setter
1323    def showlegend(self, val):
1324        self["showlegend"] = val
1325
1326    # stream
1327    # ------
1328    @property
1329    def stream(self):
1330        """
1331        The 'stream' property is an instance of Stream
1332        that may be specified as:
1333          - An instance of :class:`plotly.graph_objs.box.Stream`
1334          - A dict of string/value properties that will be passed
1335            to the Stream constructor
1336
1337            Supported dict properties:
1338
1339                maxpoints
1340                    Sets the maximum number of points to keep on
1341                    the plots from an incoming stream. If
1342                    `maxpoints` is set to 50, only the newest 50
1343                    points will be displayed on the plot.
1344                token
1345                    The stream id number links a data trace on a
1346                    plot with a stream. See https://chart-
1347                    studio.plotly.com/settings for more details.
1348
1349        Returns
1350        -------
1351        plotly.graph_objs.box.Stream
1352        """
1353        return self["stream"]
1354
1355    @stream.setter
1356    def stream(self, val):
1357        self["stream"] = val
1358
1359    # text
1360    # ----
1361    @property
1362    def text(self):
1363        """
1364        Sets the text elements associated with each sample value. If a
1365        single string, the same string appears over all the data
1366        points. If an array of string, the items are mapped in order to
1367        the this trace's (x,y) coordinates. To be seen, trace
1368        `hoverinfo` must contain a "text" flag.
1369
1370        The 'text' property is a string and must be specified as:
1371          - A string
1372          - A number that will be converted to a string
1373          - A tuple, list, or one-dimensional numpy array of the above
1374
1375        Returns
1376        -------
1377        str|numpy.ndarray
1378        """
1379        return self["text"]
1380
1381    @text.setter
1382    def text(self, val):
1383        self["text"] = val
1384
1385    # textsrc
1386    # -------
1387    @property
1388    def textsrc(self):
1389        """
1390        Sets the source reference on Chart Studio Cloud for  text .
1391
1392        The 'textsrc' property must be specified as a string or
1393        as a plotly.grid_objs.Column object
1394
1395        Returns
1396        -------
1397        str
1398        """
1399        return self["textsrc"]
1400
1401    @textsrc.setter
1402    def textsrc(self, val):
1403        self["textsrc"] = val
1404
1405    # uid
1406    # ---
1407    @property
1408    def uid(self):
1409        """
1410        Assign an id to this trace, Use this to provide object
1411        constancy between traces during animations and transitions.
1412
1413        The 'uid' property is a string and must be specified as:
1414          - A string
1415          - A number that will be converted to a string
1416
1417        Returns
1418        -------
1419        str
1420        """
1421        return self["uid"]
1422
1423    @uid.setter
1424    def uid(self, val):
1425        self["uid"] = val
1426
1427    # uirevision
1428    # ----------
1429    @property
1430    def uirevision(self):
1431        """
1432        Controls persistence of some user-driven changes to the trace:
1433        `constraintrange` in `parcoords` traces, as well as some
1434        `editable: true` modifications such as `name` and
1435        `colorbar.title`. Defaults to `layout.uirevision`. Note that
1436        other user-driven trace attribute changes are controlled by
1437        `layout` attributes: `trace.visible` is controlled by
1438        `layout.legend.uirevision`, `selectedpoints` is controlled by
1439        `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
1440        with `config: {editable: true}`) is controlled by
1441        `layout.editrevision`. Trace changes are tracked by `uid`,
1442        which only falls back on trace index if no `uid` is provided.
1443        So if your app can add/remove traces before the end of the
1444        `data` array, such that the same trace has a different index,
1445        you can still preserve user-driven changes if you give each
1446        trace a `uid` that stays with it as it moves.
1447
1448        The 'uirevision' property accepts values of any type
1449
1450        Returns
1451        -------
1452        Any
1453        """
1454        return self["uirevision"]
1455
1456    @uirevision.setter
1457    def uirevision(self, val):
1458        self["uirevision"] = val
1459
1460    # unselected
1461    # ----------
1462    @property
1463    def unselected(self):
1464        """
1465        The 'unselected' property is an instance of Unselected
1466        that may be specified as:
1467          - An instance of :class:`plotly.graph_objs.box.Unselected`
1468          - A dict of string/value properties that will be passed
1469            to the Unselected constructor
1470
1471            Supported dict properties:
1472
1473                marker
1474                    :class:`plotly.graph_objects.box.unselected.Mar
1475                    ker` instance or dict with compatible
1476                    properties
1477
1478        Returns
1479        -------
1480        plotly.graph_objs.box.Unselected
1481        """
1482        return self["unselected"]
1483
1484    @unselected.setter
1485    def unselected(self, val):
1486        self["unselected"] = val
1487
1488    # upperfence
1489    # ----------
1490    @property
1491    def upperfence(self):
1492        """
1493        Sets the upper fence values. There should be as many items as
1494        the number of boxes desired. This attribute has effect only
1495        under the q1/median/q3 signature. If `upperfence` is not
1496        provided but a sample (in `y` or `x`) is set, we compute the
1497        lower as the last sample point above 1.5 times the IQR.
1498
1499        The 'upperfence' property is an array that may be specified as a tuple,
1500        list, numpy array, or pandas Series
1501
1502        Returns
1503        -------
1504        numpy.ndarray
1505        """
1506        return self["upperfence"]
1507
1508    @upperfence.setter
1509    def upperfence(self, val):
1510        self["upperfence"] = val
1511
1512    # upperfencesrc
1513    # -------------
1514    @property
1515    def upperfencesrc(self):
1516        """
1517        Sets the source reference on Chart Studio Cloud for  upperfence
1518        .
1519
1520        The 'upperfencesrc' property must be specified as a string or
1521        as a plotly.grid_objs.Column object
1522
1523        Returns
1524        -------
1525        str
1526        """
1527        return self["upperfencesrc"]
1528
1529    @upperfencesrc.setter
1530    def upperfencesrc(self, val):
1531        self["upperfencesrc"] = val
1532
1533    # visible
1534    # -------
1535    @property
1536    def visible(self):
1537        """
1538        Determines whether or not this trace is visible. If
1539        "legendonly", the trace is not drawn, but can appear as a
1540        legend item (provided that the legend itself is visible).
1541
1542        The 'visible' property is an enumeration that may be specified as:
1543          - One of the following enumeration values:
1544                [True, False, 'legendonly']
1545
1546        Returns
1547        -------
1548        Any
1549        """
1550        return self["visible"]
1551
1552    @visible.setter
1553    def visible(self, val):
1554        self["visible"] = val
1555
1556    # whiskerwidth
1557    # ------------
1558    @property
1559    def whiskerwidth(self):
1560        """
1561        Sets the width of the whiskers relative to the box' width. For
1562        example, with 1, the whiskers are as wide as the box(es).
1563
1564        The 'whiskerwidth' property is a number and may be specified as:
1565          - An int or float in the interval [0, 1]
1566
1567        Returns
1568        -------
1569        int|float
1570        """
1571        return self["whiskerwidth"]
1572
1573    @whiskerwidth.setter
1574    def whiskerwidth(self, val):
1575        self["whiskerwidth"] = val
1576
1577    # width
1578    # -----
1579    @property
1580    def width(self):
1581        """
1582        Sets the width of the box in data coordinate If 0 (default
1583        value) the width is automatically selected based on the
1584        positions of other box traces in the same subplot.
1585
1586        The 'width' property is a number and may be specified as:
1587          - An int or float in the interval [0, inf]
1588
1589        Returns
1590        -------
1591        int|float
1592        """
1593        return self["width"]
1594
1595    @width.setter
1596    def width(self, val):
1597        self["width"] = val
1598
1599    # x
1600    # -
1601    @property
1602    def x(self):
1603        """
1604        Sets the x sample data or coordinates. See overview for more
1605        info.
1606
1607        The 'x' property is an array that may be specified as a tuple,
1608        list, numpy array, or pandas Series
1609
1610        Returns
1611        -------
1612        numpy.ndarray
1613        """
1614        return self["x"]
1615
1616    @x.setter
1617    def x(self, val):
1618        self["x"] = val
1619
1620    # x0
1621    # --
1622    @property
1623    def x0(self):
1624        """
1625        Sets the x coordinate for single-box traces or the starting
1626        coordinate for multi-box traces set using q1/median/q3. See
1627        overview for more info.
1628
1629        The 'x0' property accepts values of any type
1630
1631        Returns
1632        -------
1633        Any
1634        """
1635        return self["x0"]
1636
1637    @x0.setter
1638    def x0(self, val):
1639        self["x0"] = val
1640
1641    # xaxis
1642    # -----
1643    @property
1644    def xaxis(self):
1645        """
1646        Sets a reference between this trace's x coordinates and a 2D
1647        cartesian x axis. If "x" (the default value), the x coordinates
1648        refer to `layout.xaxis`. If "x2", the x coordinates refer to
1649        `layout.xaxis2`, and so on.
1650
1651        The 'xaxis' property is an identifier of a particular
1652        subplot, of type 'x', that may be specified as the string 'x'
1653        optionally followed by an integer >= 1
1654        (e.g. 'x', 'x1', 'x2', 'x3', etc.)
1655
1656        Returns
1657        -------
1658        str
1659        """
1660        return self["xaxis"]
1661
1662    @xaxis.setter
1663    def xaxis(self, val):
1664        self["xaxis"] = val
1665
1666    # xcalendar
1667    # ---------
1668    @property
1669    def xcalendar(self):
1670        """
1671        Sets the calendar system to use with `x` date data.
1672
1673        The 'xcalendar' property is an enumeration that may be specified as:
1674          - One of the following enumeration values:
1675                ['gregorian', 'chinese', 'coptic', 'discworld',
1676                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
1677                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
1678                'thai', 'ummalqura']
1679
1680        Returns
1681        -------
1682        Any
1683        """
1684        return self["xcalendar"]
1685
1686    @xcalendar.setter
1687    def xcalendar(self, val):
1688        self["xcalendar"] = val
1689
1690    # xperiod
1691    # -------
1692    @property
1693    def xperiod(self):
1694        """
1695        Only relevant when the axis `type` is "date". Sets the period
1696        positioning in milliseconds or "M<n>" on the x axis. Special
1697        values in the form of "M<n>" could be used to declare the
1698        number of months. In this case `n` must be a positive integer.
1699
1700        The 'xperiod' property accepts values of any type
1701
1702        Returns
1703        -------
1704        Any
1705        """
1706        return self["xperiod"]
1707
1708    @xperiod.setter
1709    def xperiod(self, val):
1710        self["xperiod"] = val
1711
1712    # xperiod0
1713    # --------
1714    @property
1715    def xperiod0(self):
1716        """
1717        Only relevant when the axis `type` is "date". Sets the base for
1718        period positioning in milliseconds or date string on the x0
1719        axis. When `x0period` is round number of weeks, the `x0period0`
1720        by default would be on a Sunday i.e. 2000-01-02, otherwise it
1721        would be at 2000-01-01.
1722
1723        The 'xperiod0' property accepts values of any type
1724
1725        Returns
1726        -------
1727        Any
1728        """
1729        return self["xperiod0"]
1730
1731    @xperiod0.setter
1732    def xperiod0(self, val):
1733        self["xperiod0"] = val
1734
1735    # xperiodalignment
1736    # ----------------
1737    @property
1738    def xperiodalignment(self):
1739        """
1740        Only relevant when the axis `type` is "date". Sets the
1741        alignment of data points on the x axis.
1742
1743        The 'xperiodalignment' property is an enumeration that may be specified as:
1744          - One of the following enumeration values:
1745                ['start', 'middle', 'end']
1746
1747        Returns
1748        -------
1749        Any
1750        """
1751        return self["xperiodalignment"]
1752
1753    @xperiodalignment.setter
1754    def xperiodalignment(self, val):
1755        self["xperiodalignment"] = val
1756
1757    # xsrc
1758    # ----
1759    @property
1760    def xsrc(self):
1761        """
1762        Sets the source reference on Chart Studio Cloud for  x .
1763
1764        The 'xsrc' property must be specified as a string or
1765        as a plotly.grid_objs.Column object
1766
1767        Returns
1768        -------
1769        str
1770        """
1771        return self["xsrc"]
1772
1773    @xsrc.setter
1774    def xsrc(self, val):
1775        self["xsrc"] = val
1776
1777    # y
1778    # -
1779    @property
1780    def y(self):
1781        """
1782        Sets the y sample data or coordinates. See overview for more
1783        info.
1784
1785        The 'y' property is an array that may be specified as a tuple,
1786        list, numpy array, or pandas Series
1787
1788        Returns
1789        -------
1790        numpy.ndarray
1791        """
1792        return self["y"]
1793
1794    @y.setter
1795    def y(self, val):
1796        self["y"] = val
1797
1798    # y0
1799    # --
1800    @property
1801    def y0(self):
1802        """
1803        Sets the y coordinate for single-box traces or the starting
1804        coordinate for multi-box traces set using q1/median/q3. See
1805        overview for more info.
1806
1807        The 'y0' property accepts values of any type
1808
1809        Returns
1810        -------
1811        Any
1812        """
1813        return self["y0"]
1814
1815    @y0.setter
1816    def y0(self, val):
1817        self["y0"] = val
1818
1819    # yaxis
1820    # -----
1821    @property
1822    def yaxis(self):
1823        """
1824        Sets a reference between this trace's y coordinates and a 2D
1825        cartesian y axis. If "y" (the default value), the y coordinates
1826        refer to `layout.yaxis`. If "y2", the y coordinates refer to
1827        `layout.yaxis2`, and so on.
1828
1829        The 'yaxis' property is an identifier of a particular
1830        subplot, of type 'y', that may be specified as the string 'y'
1831        optionally followed by an integer >= 1
1832        (e.g. 'y', 'y1', 'y2', 'y3', etc.)
1833
1834        Returns
1835        -------
1836        str
1837        """
1838        return self["yaxis"]
1839
1840    @yaxis.setter
1841    def yaxis(self, val):
1842        self["yaxis"] = val
1843
1844    # ycalendar
1845    # ---------
1846    @property
1847    def ycalendar(self):
1848        """
1849        Sets the calendar system to use with `y` date data.
1850
1851        The 'ycalendar' property is an enumeration that may be specified as:
1852          - One of the following enumeration values:
1853                ['gregorian', 'chinese', 'coptic', 'discworld',
1854                'ethiopian', 'hebrew', 'islamic', 'julian', 'mayan',
1855                'nanakshahi', 'nepali', 'persian', 'jalali', 'taiwan',
1856                'thai', 'ummalqura']
1857
1858        Returns
1859        -------
1860        Any
1861        """
1862        return self["ycalendar"]
1863
1864    @ycalendar.setter
1865    def ycalendar(self, val):
1866        self["ycalendar"] = val
1867
1868    # yperiod
1869    # -------
1870    @property
1871    def yperiod(self):
1872        """
1873        Only relevant when the axis `type` is "date". Sets the period
1874        positioning in milliseconds or "M<n>" on the y axis. Special
1875        values in the form of "M<n>" could be used to declare the
1876        number of months. In this case `n` must be a positive integer.
1877
1878        The 'yperiod' property accepts values of any type
1879
1880        Returns
1881        -------
1882        Any
1883        """
1884        return self["yperiod"]
1885
1886    @yperiod.setter
1887    def yperiod(self, val):
1888        self["yperiod"] = val
1889
1890    # yperiod0
1891    # --------
1892    @property
1893    def yperiod0(self):
1894        """
1895        Only relevant when the axis `type` is "date". Sets the base for
1896        period positioning in milliseconds or date string on the y0
1897        axis. When `y0period` is round number of weeks, the `y0period0`
1898        by default would be on a Sunday i.e. 2000-01-02, otherwise it
1899        would be at 2000-01-01.
1900
1901        The 'yperiod0' property accepts values of any type
1902
1903        Returns
1904        -------
1905        Any
1906        """
1907        return self["yperiod0"]
1908
1909    @yperiod0.setter
1910    def yperiod0(self, val):
1911        self["yperiod0"] = val
1912
1913    # yperiodalignment
1914    # ----------------
1915    @property
1916    def yperiodalignment(self):
1917        """
1918        Only relevant when the axis `type` is "date". Sets the
1919        alignment of data points on the y axis.
1920
1921        The 'yperiodalignment' property is an enumeration that may be specified as:
1922          - One of the following enumeration values:
1923                ['start', 'middle', 'end']
1924
1925        Returns
1926        -------
1927        Any
1928        """
1929        return self["yperiodalignment"]
1930
1931    @yperiodalignment.setter
1932    def yperiodalignment(self, val):
1933        self["yperiodalignment"] = val
1934
1935    # ysrc
1936    # ----
1937    @property
1938    def ysrc(self):
1939        """
1940        Sets the source reference on Chart Studio Cloud for  y .
1941
1942        The 'ysrc' property must be specified as a string or
1943        as a plotly.grid_objs.Column object
1944
1945        Returns
1946        -------
1947        str
1948        """
1949        return self["ysrc"]
1950
1951    @ysrc.setter
1952    def ysrc(self, val):
1953        self["ysrc"] = val
1954
1955    # type
1956    # ----
1957    @property
1958    def type(self):
1959        return self._props["type"]
1960
1961    # Self properties description
1962    # ---------------------------
1963    @property
1964    def _prop_descriptions(self):
1965        return """\
1966        alignmentgroup
1967            Set several traces linked to the same position axis or
1968            matching axes to the same alignmentgroup. This controls
1969            whether bars compute their positional range dependently
1970            or independently.
1971        boxmean
1972            If True, the mean of the box(es)' underlying
1973            distribution is drawn as a dashed line inside the
1974            box(es). If "sd" the standard deviation is also drawn.
1975            Defaults to True when `mean` is set. Defaults to "sd"
1976            when `sd` is set Otherwise defaults to False.
1977        boxpoints
1978            If "outliers", only the sample points lying outside the
1979            whiskers are shown If "suspectedoutliers", the outlier
1980            points are shown and points either less than 4*Q1-3*Q3
1981            or greater than 4*Q3-3*Q1 are highlighted (see
1982            `outliercolor`) If "all", all sample points are shown
1983            If False, only the box(es) are shown with no sample
1984            points Defaults to "suspectedoutliers" when
1985            `marker.outliercolor` or `marker.line.outliercolor` is
1986            set. Defaults to "all" under the q1/median/q3
1987            signature. Otherwise defaults to "outliers".
1988        customdata
1989            Assigns extra data each datum. This may be useful when
1990            listening to hover, click and selection events. Note
1991            that, "scatter" traces also appends customdata items in
1992            the markers DOM elements
1993        customdatasrc
1994            Sets the source reference on Chart Studio Cloud for
1995            customdata .
1996        dx
1997            Sets the x coordinate step for multi-box traces set
1998            using q1/median/q3.
1999        dy
2000            Sets the y coordinate step for multi-box traces set
2001            using q1/median/q3.
2002        fillcolor
2003            Sets the fill color. Defaults to a half-transparent
2004            variant of the line color, marker color, or marker line
2005            color, whichever is available.
2006        hoverinfo
2007            Determines which trace information appear on hover. If
2008            `none` or `skip` are set, no information is displayed
2009            upon hovering. But, if `none` is set, click and hover
2010            events are still fired.
2011        hoverinfosrc
2012            Sets the source reference on Chart Studio Cloud for
2013            hoverinfo .
2014        hoverlabel
2015            :class:`plotly.graph_objects.box.Hoverlabel` instance
2016            or dict with compatible properties
2017        hoveron
2018            Do the hover effects highlight individual boxes  or
2019            sample points or both?
2020        hovertemplate
2021            Template string used for rendering the information that
2022            appear on hover box. Note that this will override
2023            `hoverinfo`. Variables are inserted using %{variable},
2024            for example "y: %{y}". Numbers are formatted using
2025            d3-format's syntax %{variable:d3-format}, for example
2026            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
2027            reference/blob/master/Formatting.md#d3_format for
2028            details on the formatting syntax. Dates are formatted
2029            using d3-time-format's syntax %{variable|d3-time-
2030            format}, for example "Day: %{2019-01-01|%A}".
2031            https://github.com/d3/d3-time-format#locale_format for
2032            details on the date formatting syntax. The variables
2033            available in `hovertemplate` are the ones emitted as
2034            event data described at this link
2035            https://plotly.com/javascript/plotlyjs-events/#event-
2036            data. Additionally, every attributes that can be
2037            specified per-point (the ones that are `arrayOk: true`)
2038            are available.  Anything contained in tag `<extra>` is
2039            displayed in the secondary box, for example
2040            "<extra>{fullData.name}</extra>". To hide the secondary
2041            box completely, use an empty tag `<extra></extra>`.
2042        hovertemplatesrc
2043            Sets the source reference on Chart Studio Cloud for
2044            hovertemplate .
2045        hovertext
2046            Same as `text`.
2047        hovertextsrc
2048            Sets the source reference on Chart Studio Cloud for
2049            hovertext .
2050        ids
2051            Assigns id labels to each datum. These ids for object
2052            constancy of data points during animation. Should be an
2053            array of strings, not numbers or any other type.
2054        idssrc
2055            Sets the source reference on Chart Studio Cloud for
2056            ids .
2057        jitter
2058            Sets the amount of jitter in the sample points drawn.
2059            If 0, the sample points align along the distribution
2060            axis. If 1, the sample points are drawn in a random
2061            jitter of width equal to the width of the box(es).
2062        legendgroup
2063            Sets the legend group for this trace. Traces part of
2064            the same legend group hide/show at the same time when
2065            toggling legend items.
2066        line
2067            :class:`plotly.graph_objects.box.Line` instance or dict
2068            with compatible properties
2069        lowerfence
2070            Sets the lower fence values. There should be as many
2071            items as the number of boxes desired. This attribute
2072            has effect only under the q1/median/q3 signature. If
2073            `lowerfence` is not provided but a sample (in `y` or
2074            `x`) is set, we compute the lower as the last sample
2075            point below 1.5 times the IQR.
2076        lowerfencesrc
2077            Sets the source reference on Chart Studio Cloud for
2078            lowerfence .
2079        marker
2080            :class:`plotly.graph_objects.box.Marker` instance or
2081            dict with compatible properties
2082        mean
2083            Sets the mean values. There should be as many items as
2084            the number of boxes desired. This attribute has effect
2085            only under the q1/median/q3 signature. If `mean` is not
2086            provided but a sample (in `y` or `x`) is set, we
2087            compute the mean for each box using the sample values.
2088        meansrc
2089            Sets the source reference on Chart Studio Cloud for
2090            mean .
2091        median
2092            Sets the median values. There should be as many items
2093            as the number of boxes desired.
2094        mediansrc
2095            Sets the source reference on Chart Studio Cloud for
2096            median .
2097        meta
2098            Assigns extra meta information associated with this
2099            trace that can be used in various text attributes.
2100            Attributes such as trace `name`, graph, axis and
2101            colorbar `title.text`, annotation `text`
2102            `rangeselector`, `updatemenues` and `sliders` `label`
2103            text all support `meta`. To access the trace `meta`
2104            values in an attribute in the same trace, simply use
2105            `%{meta[i]}` where `i` is the index or key of the
2106            `meta` item in question. To access trace `meta` in
2107            layout attributes, use `%{data[n[.meta[i]}` where `i`
2108            is the index or key of the `meta` and `n` is the trace
2109            index.
2110        metasrc
2111            Sets the source reference on Chart Studio Cloud for
2112            meta .
2113        name
2114            Sets the trace name. The trace name appear as the
2115            legend item and on hover. For box traces, the name will
2116            also be used for the position coordinate, if `x` and
2117            `x0` (`y` and `y0` if horizontal) are missing and the
2118            position axis is categorical
2119        notched
2120            Determines whether or not notches are drawn. Notches
2121            displays a confidence interval around the median. We
2122            compute the confidence interval as median +/- 1.57 *
2123            IQR / sqrt(N), where IQR is the interquartile range and
2124            N is the sample size. If two boxes' notches do not
2125            overlap there is 95% confidence their medians differ.
2126            See https://sites.google.com/site/davidsstatistics/home
2127            /notched-box-plots for more info. Defaults to False
2128            unless `notchwidth` or `notchspan` is set.
2129        notchspan
2130            Sets the notch span from the boxes' `median` values.
2131            There should be as many items as the number of boxes
2132            desired. This attribute has effect only under the
2133            q1/median/q3 signature. If `notchspan` is not provided
2134            but a sample (in `y` or `x`) is set, we compute it as
2135            1.57 * IQR / sqrt(N), where N is the sample size.
2136        notchspansrc
2137            Sets the source reference on Chart Studio Cloud for
2138            notchspan .
2139        notchwidth
2140            Sets the width of the notches relative to the box'
2141            width. For example, with 0, the notches are as wide as
2142            the box(es).
2143        offsetgroup
2144            Set several traces linked to the same position axis or
2145            matching axes to the same offsetgroup where bars of the
2146            same position coordinate will line up.
2147        opacity
2148            Sets the opacity of the trace.
2149        orientation
2150            Sets the orientation of the box(es). If "v" ("h"), the
2151            distribution is visualized along the vertical
2152            (horizontal).
2153        pointpos
2154            Sets the position of the sample points in relation to
2155            the box(es). If 0, the sample points are places over
2156            the center of the box(es). Positive (negative) values
2157            correspond to positions to the right (left) for
2158            vertical boxes and above (below) for horizontal boxes
2159        q1
2160            Sets the Quartile 1 values. There should be as many
2161            items as the number of boxes desired.
2162        q1src
2163            Sets the source reference on Chart Studio Cloud for  q1
2164            .
2165        q3
2166            Sets the Quartile 3 values. There should be as many
2167            items as the number of boxes desired.
2168        q3src
2169            Sets the source reference on Chart Studio Cloud for  q3
2170            .
2171        quartilemethod
2172            Sets the method used to compute the sample's Q1 and Q3
2173            quartiles. The "linear" method uses the 25th percentile
2174            for Q1 and 75th percentile for Q3 as computed using
2175            method #10 (listed on http://www.amstat.org/publication
2176            s/jse/v14n3/langford.html). The "exclusive" method uses
2177            the median to divide the ordered dataset into two
2178            halves if the sample is odd, it does not include the
2179            median in either half - Q1 is then the median of the
2180            lower half and Q3 the median of the upper half. The
2181            "inclusive" method also uses the median to divide the
2182            ordered dataset into two halves but if the sample is
2183            odd, it includes the median in both halves - Q1 is then
2184            the median of the lower half and Q3 the median of the
2185            upper half.
2186        sd
2187            Sets the standard deviation values. There should be as
2188            many items as the number of boxes desired. This
2189            attribute has effect only under the q1/median/q3
2190            signature. If `sd` is not provided but a sample (in `y`
2191            or `x`) is set, we compute the standard deviation for
2192            each box using the sample values.
2193        sdsrc
2194            Sets the source reference on Chart Studio Cloud for  sd
2195            .
2196        selected
2197            :class:`plotly.graph_objects.box.Selected` instance or
2198            dict with compatible properties
2199        selectedpoints
2200            Array containing integer indices of selected points.
2201            Has an effect only for traces that support selections.
2202            Note that an empty array means an empty selection where
2203            the `unselected` are turned on for all points, whereas,
2204            any other non-array values means no selection all where
2205            the `selected` and `unselected` styles have no effect.
2206        showlegend
2207            Determines whether or not an item corresponding to this
2208            trace is shown in the legend.
2209        stream
2210            :class:`plotly.graph_objects.box.Stream` instance or
2211            dict with compatible properties
2212        text
2213            Sets the text elements associated with each sample
2214            value. If a single string, the same string appears over
2215            all the data points. If an array of string, the items
2216            are mapped in order to the this trace's (x,y)
2217            coordinates. To be seen, trace `hoverinfo` must contain
2218            a "text" flag.
2219        textsrc
2220            Sets the source reference on Chart Studio Cloud for
2221            text .
2222        uid
2223            Assign an id to this trace, Use this to provide object
2224            constancy between traces during animations and
2225            transitions.
2226        uirevision
2227            Controls persistence of some user-driven changes to the
2228            trace: `constraintrange` in `parcoords` traces, as well
2229            as some `editable: true` modifications such as `name`
2230            and `colorbar.title`. Defaults to `layout.uirevision`.
2231            Note that other user-driven trace attribute changes are
2232            controlled by `layout` attributes: `trace.visible` is
2233            controlled by `layout.legend.uirevision`,
2234            `selectedpoints` is controlled by
2235            `layout.selectionrevision`, and `colorbar.(x|y)`
2236            (accessible with `config: {editable: true}`) is
2237            controlled by `layout.editrevision`. Trace changes are
2238            tracked by `uid`, which only falls back on trace index
2239            if no `uid` is provided. So if your app can add/remove
2240            traces before the end of the `data` array, such that
2241            the same trace has a different index, you can still
2242            preserve user-driven changes if you give each trace a
2243            `uid` that stays with it as it moves.
2244        unselected
2245            :class:`plotly.graph_objects.box.Unselected` instance
2246            or dict with compatible properties
2247        upperfence
2248            Sets the upper fence values. There should be as many
2249            items as the number of boxes desired. This attribute
2250            has effect only under the q1/median/q3 signature. If
2251            `upperfence` is not provided but a sample (in `y` or
2252            `x`) is set, we compute the lower as the last sample
2253            point above 1.5 times the IQR.
2254        upperfencesrc
2255            Sets the source reference on Chart Studio Cloud for
2256            upperfence .
2257        visible
2258            Determines whether or not this trace is visible. If
2259            "legendonly", the trace is not drawn, but can appear as
2260            a legend item (provided that the legend itself is
2261            visible).
2262        whiskerwidth
2263            Sets the width of the whiskers relative to the box'
2264            width. For example, with 1, the whiskers are as wide as
2265            the box(es).
2266        width
2267            Sets the width of the box in data coordinate If 0
2268            (default value) the width is automatically selected
2269            based on the positions of other box traces in the same
2270            subplot.
2271        x
2272            Sets the x sample data or coordinates. See overview for
2273            more info.
2274        x0
2275            Sets the x coordinate for single-box traces or the
2276            starting coordinate for multi-box traces set using
2277            q1/median/q3. See overview for more info.
2278        xaxis
2279            Sets a reference between this trace's x coordinates and
2280            a 2D cartesian x axis. If "x" (the default value), the
2281            x coordinates refer to `layout.xaxis`. If "x2", the x
2282            coordinates refer to `layout.xaxis2`, and so on.
2283        xcalendar
2284            Sets the calendar system to use with `x` date data.
2285        xperiod
2286            Only relevant when the axis `type` is "date". Sets the
2287            period positioning in milliseconds or "M<n>" on the x
2288            axis. Special values in the form of "M<n>" could be
2289            used to declare the number of months. In this case `n`
2290            must be a positive integer.
2291        xperiod0
2292            Only relevant when the axis `type` is "date". Sets the
2293            base for period positioning in milliseconds or date
2294            string on the x0 axis. When `x0period` is round number
2295            of weeks, the `x0period0` by default would be on a
2296            Sunday i.e. 2000-01-02, otherwise it would be at
2297            2000-01-01.
2298        xperiodalignment
2299            Only relevant when the axis `type` is "date". Sets the
2300            alignment of data points on the x axis.
2301        xsrc
2302            Sets the source reference on Chart Studio Cloud for  x
2303            .
2304        y
2305            Sets the y sample data or coordinates. See overview for
2306            more info.
2307        y0
2308            Sets the y coordinate for single-box traces or the
2309            starting coordinate for multi-box traces set using
2310            q1/median/q3. See overview for more info.
2311        yaxis
2312            Sets a reference between this trace's y coordinates and
2313            a 2D cartesian y axis. If "y" (the default value), the
2314            y coordinates refer to `layout.yaxis`. If "y2", the y
2315            coordinates refer to `layout.yaxis2`, and so on.
2316        ycalendar
2317            Sets the calendar system to use with `y` date data.
2318        yperiod
2319            Only relevant when the axis `type` is "date". Sets the
2320            period positioning in milliseconds or "M<n>" on the y
2321            axis. Special values in the form of "M<n>" could be
2322            used to declare the number of months. In this case `n`
2323            must be a positive integer.
2324        yperiod0
2325            Only relevant when the axis `type` is "date". Sets the
2326            base for period positioning in milliseconds or date
2327            string on the y0 axis. When `y0period` is round number
2328            of weeks, the `y0period0` by default would be on a
2329            Sunday i.e. 2000-01-02, otherwise it would be at
2330            2000-01-01.
2331        yperiodalignment
2332            Only relevant when the axis `type` is "date". Sets the
2333            alignment of data points on the y axis.
2334        ysrc
2335            Sets the source reference on Chart Studio Cloud for  y
2336            .
2337        """
2338
2339    def __init__(
2340        self,
2341        arg=None,
2342        alignmentgroup=None,
2343        boxmean=None,
2344        boxpoints=None,
2345        customdata=None,
2346        customdatasrc=None,
2347        dx=None,
2348        dy=None,
2349        fillcolor=None,
2350        hoverinfo=None,
2351        hoverinfosrc=None,
2352        hoverlabel=None,
2353        hoveron=None,
2354        hovertemplate=None,
2355        hovertemplatesrc=None,
2356        hovertext=None,
2357        hovertextsrc=None,
2358        ids=None,
2359        idssrc=None,
2360        jitter=None,
2361        legendgroup=None,
2362        line=None,
2363        lowerfence=None,
2364        lowerfencesrc=None,
2365        marker=None,
2366        mean=None,
2367        meansrc=None,
2368        median=None,
2369        mediansrc=None,
2370        meta=None,
2371        metasrc=None,
2372        name=None,
2373        notched=None,
2374        notchspan=None,
2375        notchspansrc=None,
2376        notchwidth=None,
2377        offsetgroup=None,
2378        opacity=None,
2379        orientation=None,
2380        pointpos=None,
2381        q1=None,
2382        q1src=None,
2383        q3=None,
2384        q3src=None,
2385        quartilemethod=None,
2386        sd=None,
2387        sdsrc=None,
2388        selected=None,
2389        selectedpoints=None,
2390        showlegend=None,
2391        stream=None,
2392        text=None,
2393        textsrc=None,
2394        uid=None,
2395        uirevision=None,
2396        unselected=None,
2397        upperfence=None,
2398        upperfencesrc=None,
2399        visible=None,
2400        whiskerwidth=None,
2401        width=None,
2402        x=None,
2403        x0=None,
2404        xaxis=None,
2405        xcalendar=None,
2406        xperiod=None,
2407        xperiod0=None,
2408        xperiodalignment=None,
2409        xsrc=None,
2410        y=None,
2411        y0=None,
2412        yaxis=None,
2413        ycalendar=None,
2414        yperiod=None,
2415        yperiod0=None,
2416        yperiodalignment=None,
2417        ysrc=None,
2418        **kwargs
2419    ):
2420        """
2421        Construct a new Box object
2422
2423        Each box spans from quartile 1 (Q1) to quartile 3 (Q3). The
2424        second quartile (Q2, i.e. the median) is marked by a line
2425        inside the box. The fences grow outward from the boxes' edges,
2426        by default they span +/- 1.5 times the interquartile range
2427        (IQR: Q3-Q1), The sample mean and standard deviation as well as
2428        notches and the sample, outlier and suspected outliers points
2429        can be optionally added to the box plot. The values and
2430        positions corresponding to each boxes can be input using two
2431        signatures. The first signature expects users to supply the
2432        sample values in the `y` data array for vertical boxes (`x` for
2433        horizontal boxes). By supplying an `x` (`y`) array, one box per
2434        distinct `x` (`y`) value is drawn If no `x` (`y`) list is
2435        provided, a single box is drawn. In this case, the box is
2436        positioned with the trace `name` or with `x0` (`y0`) if
2437        provided. The second signature expects users to supply the
2438        boxes corresponding Q1, median and Q3 statistics in the `q1`,
2439        `median` and `q3` data arrays respectively. Other box features
2440        relying on statistics namely `lowerfence`, `upperfence`,
2441        `notchspan` can be set directly by the users. To have plotly
2442        compute them or to show sample points besides the boxes, users
2443        can set the `y` data array for vertical boxes (`x` for
2444        horizontal boxes) to a 2D array with the outer length
2445        corresponding to the number of boxes in the traces and the
2446        inner length corresponding the sample size.
2447
2448        Parameters
2449        ----------
2450        arg
2451            dict of properties compatible with this constructor or
2452            an instance of :class:`plotly.graph_objs.Box`
2453        alignmentgroup
2454            Set several traces linked to the same position axis or
2455            matching axes to the same alignmentgroup. This controls
2456            whether bars compute their positional range dependently
2457            or independently.
2458        boxmean
2459            If True, the mean of the box(es)' underlying
2460            distribution is drawn as a dashed line inside the
2461            box(es). If "sd" the standard deviation is also drawn.
2462            Defaults to True when `mean` is set. Defaults to "sd"
2463            when `sd` is set Otherwise defaults to False.
2464        boxpoints
2465            If "outliers", only the sample points lying outside the
2466            whiskers are shown If "suspectedoutliers", the outlier
2467            points are shown and points either less than 4*Q1-3*Q3
2468            or greater than 4*Q3-3*Q1 are highlighted (see
2469            `outliercolor`) If "all", all sample points are shown
2470            If False, only the box(es) are shown with no sample
2471            points Defaults to "suspectedoutliers" when
2472            `marker.outliercolor` or `marker.line.outliercolor` is
2473            set. Defaults to "all" under the q1/median/q3
2474            signature. Otherwise defaults to "outliers".
2475        customdata
2476            Assigns extra data each datum. This may be useful when
2477            listening to hover, click and selection events. Note
2478            that, "scatter" traces also appends customdata items in
2479            the markers DOM elements
2480        customdatasrc
2481            Sets the source reference on Chart Studio Cloud for
2482            customdata .
2483        dx
2484            Sets the x coordinate step for multi-box traces set
2485            using q1/median/q3.
2486        dy
2487            Sets the y coordinate step for multi-box traces set
2488            using q1/median/q3.
2489        fillcolor
2490            Sets the fill color. Defaults to a half-transparent
2491            variant of the line color, marker color, or marker line
2492            color, whichever is available.
2493        hoverinfo
2494            Determines which trace information appear on hover. If
2495            `none` or `skip` are set, no information is displayed
2496            upon hovering. But, if `none` is set, click and hover
2497            events are still fired.
2498        hoverinfosrc
2499            Sets the source reference on Chart Studio Cloud for
2500            hoverinfo .
2501        hoverlabel
2502            :class:`plotly.graph_objects.box.Hoverlabel` instance
2503            or dict with compatible properties
2504        hoveron
2505            Do the hover effects highlight individual boxes  or
2506            sample points or both?
2507        hovertemplate
2508            Template string used for rendering the information that
2509            appear on hover box. Note that this will override
2510            `hoverinfo`. Variables are inserted using %{variable},
2511            for example "y: %{y}". Numbers are formatted using
2512            d3-format's syntax %{variable:d3-format}, for example
2513            "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
2514            reference/blob/master/Formatting.md#d3_format for
2515            details on the formatting syntax. Dates are formatted
2516            using d3-time-format's syntax %{variable|d3-time-
2517            format}, for example "Day: %{2019-01-01|%A}".
2518            https://github.com/d3/d3-time-format#locale_format for
2519            details on the date formatting syntax. The variables
2520            available in `hovertemplate` are the ones emitted as
2521            event data described at this link
2522            https://plotly.com/javascript/plotlyjs-events/#event-
2523            data. Additionally, every attributes that can be
2524            specified per-point (the ones that are `arrayOk: true`)
2525            are available.  Anything contained in tag `<extra>` is
2526            displayed in the secondary box, for example
2527            "<extra>{fullData.name}</extra>". To hide the secondary
2528            box completely, use an empty tag `<extra></extra>`.
2529        hovertemplatesrc
2530            Sets the source reference on Chart Studio Cloud for
2531            hovertemplate .
2532        hovertext
2533            Same as `text`.
2534        hovertextsrc
2535            Sets the source reference on Chart Studio Cloud for
2536            hovertext .
2537        ids
2538            Assigns id labels to each datum. These ids for object
2539            constancy of data points during animation. Should be an
2540            array of strings, not numbers or any other type.
2541        idssrc
2542            Sets the source reference on Chart Studio Cloud for
2543            ids .
2544        jitter
2545            Sets the amount of jitter in the sample points drawn.
2546            If 0, the sample points align along the distribution
2547            axis. If 1, the sample points are drawn in a random
2548            jitter of width equal to the width of the box(es).
2549        legendgroup
2550            Sets the legend group for this trace. Traces part of
2551            the same legend group hide/show at the same time when
2552            toggling legend items.
2553        line
2554            :class:`plotly.graph_objects.box.Line` instance or dict
2555            with compatible properties
2556        lowerfence
2557            Sets the lower fence values. There should be as many
2558            items as the number of boxes desired. This attribute
2559            has effect only under the q1/median/q3 signature. If
2560            `lowerfence` is not provided but a sample (in `y` or
2561            `x`) is set, we compute the lower as the last sample
2562            point below 1.5 times the IQR.
2563        lowerfencesrc
2564            Sets the source reference on Chart Studio Cloud for
2565            lowerfence .
2566        marker
2567            :class:`plotly.graph_objects.box.Marker` instance or
2568            dict with compatible properties
2569        mean
2570            Sets the mean values. There should be as many items as
2571            the number of boxes desired. This attribute has effect
2572            only under the q1/median/q3 signature. If `mean` is not
2573            provided but a sample (in `y` or `x`) is set, we
2574            compute the mean for each box using the sample values.
2575        meansrc
2576            Sets the source reference on Chart Studio Cloud for
2577            mean .
2578        median
2579            Sets the median values. There should be as many items
2580            as the number of boxes desired.
2581        mediansrc
2582            Sets the source reference on Chart Studio Cloud for
2583            median .
2584        meta
2585            Assigns extra meta information associated with this
2586            trace that can be used in various text attributes.
2587            Attributes such as trace `name`, graph, axis and
2588            colorbar `title.text`, annotation `text`
2589            `rangeselector`, `updatemenues` and `sliders` `label`
2590            text all support `meta`. To access the trace `meta`
2591            values in an attribute in the same trace, simply use
2592            `%{meta[i]}` where `i` is the index or key of the
2593            `meta` item in question. To access trace `meta` in
2594            layout attributes, use `%{data[n[.meta[i]}` where `i`
2595            is the index or key of the `meta` and `n` is the trace
2596            index.
2597        metasrc
2598            Sets the source reference on Chart Studio Cloud for
2599            meta .
2600        name
2601            Sets the trace name. The trace name appear as the
2602            legend item and on hover. For box traces, the name will
2603            also be used for the position coordinate, if `x` and
2604            `x0` (`y` and `y0` if horizontal) are missing and the
2605            position axis is categorical
2606        notched
2607            Determines whether or not notches are drawn. Notches
2608            displays a confidence interval around the median. We
2609            compute the confidence interval as median +/- 1.57 *
2610            IQR / sqrt(N), where IQR is the interquartile range and
2611            N is the sample size. If two boxes' notches do not
2612            overlap there is 95% confidence their medians differ.
2613            See https://sites.google.com/site/davidsstatistics/home
2614            /notched-box-plots for more info. Defaults to False
2615            unless `notchwidth` or `notchspan` is set.
2616        notchspan
2617            Sets the notch span from the boxes' `median` values.
2618            There should be as many items as the number of boxes
2619            desired. This attribute has effect only under the
2620            q1/median/q3 signature. If `notchspan` is not provided
2621            but a sample (in `y` or `x`) is set, we compute it as
2622            1.57 * IQR / sqrt(N), where N is the sample size.
2623        notchspansrc
2624            Sets the source reference on Chart Studio Cloud for
2625            notchspan .
2626        notchwidth
2627            Sets the width of the notches relative to the box'
2628            width. For example, with 0, the notches are as wide as
2629            the box(es).
2630        offsetgroup
2631            Set several traces linked to the same position axis or
2632            matching axes to the same offsetgroup where bars of the
2633            same position coordinate will line up.
2634        opacity
2635            Sets the opacity of the trace.
2636        orientation
2637            Sets the orientation of the box(es). If "v" ("h"), the
2638            distribution is visualized along the vertical
2639            (horizontal).
2640        pointpos
2641            Sets the position of the sample points in relation to
2642            the box(es). If 0, the sample points are places over
2643            the center of the box(es). Positive (negative) values
2644            correspond to positions to the right (left) for
2645            vertical boxes and above (below) for horizontal boxes
2646        q1
2647            Sets the Quartile 1 values. There should be as many
2648            items as the number of boxes desired.
2649        q1src
2650            Sets the source reference on Chart Studio Cloud for  q1
2651            .
2652        q3
2653            Sets the Quartile 3 values. There should be as many
2654            items as the number of boxes desired.
2655        q3src
2656            Sets the source reference on Chart Studio Cloud for  q3
2657            .
2658        quartilemethod
2659            Sets the method used to compute the sample's Q1 and Q3
2660            quartiles. The "linear" method uses the 25th percentile
2661            for Q1 and 75th percentile for Q3 as computed using
2662            method #10 (listed on http://www.amstat.org/publication
2663            s/jse/v14n3/langford.html). The "exclusive" method uses
2664            the median to divide the ordered dataset into two
2665            halves if the sample is odd, it does not include the
2666            median in either half - Q1 is then the median of the
2667            lower half and Q3 the median of the upper half. The
2668            "inclusive" method also uses the median to divide the
2669            ordered dataset into two halves but if the sample is
2670            odd, it includes the median in both halves - Q1 is then
2671            the median of the lower half and Q3 the median of the
2672            upper half.
2673        sd
2674            Sets the standard deviation values. There should be as
2675            many items as the number of boxes desired. This
2676            attribute has effect only under the q1/median/q3
2677            signature. If `sd` is not provided but a sample (in `y`
2678            or `x`) is set, we compute the standard deviation for
2679            each box using the sample values.
2680        sdsrc
2681            Sets the source reference on Chart Studio Cloud for  sd
2682            .
2683        selected
2684            :class:`plotly.graph_objects.box.Selected` instance or
2685            dict with compatible properties
2686        selectedpoints
2687            Array containing integer indices of selected points.
2688            Has an effect only for traces that support selections.
2689            Note that an empty array means an empty selection where
2690            the `unselected` are turned on for all points, whereas,
2691            any other non-array values means no selection all where
2692            the `selected` and `unselected` styles have no effect.
2693        showlegend
2694            Determines whether or not an item corresponding to this
2695            trace is shown in the legend.
2696        stream
2697            :class:`plotly.graph_objects.box.Stream` instance or
2698            dict with compatible properties
2699        text
2700            Sets the text elements associated with each sample
2701            value. If a single string, the same string appears over
2702            all the data points. If an array of string, the items
2703            are mapped in order to the this trace's (x,y)
2704            coordinates. To be seen, trace `hoverinfo` must contain
2705            a "text" flag.
2706        textsrc
2707            Sets the source reference on Chart Studio Cloud for
2708            text .
2709        uid
2710            Assign an id to this trace, Use this to provide object
2711            constancy between traces during animations and
2712            transitions.
2713        uirevision
2714            Controls persistence of some user-driven changes to the
2715            trace: `constraintrange` in `parcoords` traces, as well
2716            as some `editable: true` modifications such as `name`
2717            and `colorbar.title`. Defaults to `layout.uirevision`.
2718            Note that other user-driven trace attribute changes are
2719            controlled by `layout` attributes: `trace.visible` is
2720            controlled by `layout.legend.uirevision`,
2721            `selectedpoints` is controlled by
2722            `layout.selectionrevision`, and `colorbar.(x|y)`
2723            (accessible with `config: {editable: true}`) is
2724            controlled by `layout.editrevision`. Trace changes are
2725            tracked by `uid`, which only falls back on trace index
2726            if no `uid` is provided. So if your app can add/remove
2727            traces before the end of the `data` array, such that
2728            the same trace has a different index, you can still
2729            preserve user-driven changes if you give each trace a
2730            `uid` that stays with it as it moves.
2731        unselected
2732            :class:`plotly.graph_objects.box.Unselected` instance
2733            or dict with compatible properties
2734        upperfence
2735            Sets the upper fence values. There should be as many
2736            items as the number of boxes desired. This attribute
2737            has effect only under the q1/median/q3 signature. If
2738            `upperfence` is not provided but a sample (in `y` or
2739            `x`) is set, we compute the lower as the last sample
2740            point above 1.5 times the IQR.
2741        upperfencesrc
2742            Sets the source reference on Chart Studio Cloud for
2743            upperfence .
2744        visible
2745            Determines whether or not this trace is visible. If
2746            "legendonly", the trace is not drawn, but can appear as
2747            a legend item (provided that the legend itself is
2748            visible).
2749        whiskerwidth
2750            Sets the width of the whiskers relative to the box'
2751            width. For example, with 1, the whiskers are as wide as
2752            the box(es).
2753        width
2754            Sets the width of the box in data coordinate If 0
2755            (default value) the width is automatically selected
2756            based on the positions of other box traces in the same
2757            subplot.
2758        x
2759            Sets the x sample data or coordinates. See overview for
2760            more info.
2761        x0
2762            Sets the x coordinate for single-box traces or the
2763            starting coordinate for multi-box traces set using
2764            q1/median/q3. See overview for more info.
2765        xaxis
2766            Sets a reference between this trace's x coordinates and
2767            a 2D cartesian x axis. If "x" (the default value), the
2768            x coordinates refer to `layout.xaxis`. If "x2", the x
2769            coordinates refer to `layout.xaxis2`, and so on.
2770        xcalendar
2771            Sets the calendar system to use with `x` date data.
2772        xperiod
2773            Only relevant when the axis `type` is "date". Sets the
2774            period positioning in milliseconds or "M<n>" on the x
2775            axis. Special values in the form of "M<n>" could be
2776            used to declare the number of months. In this case `n`
2777            must be a positive integer.
2778        xperiod0
2779            Only relevant when the axis `type` is "date". Sets the
2780            base for period positioning in milliseconds or date
2781            string on the x0 axis. When `x0period` is round number
2782            of weeks, the `x0period0` by default would be on a
2783            Sunday i.e. 2000-01-02, otherwise it would be at
2784            2000-01-01.
2785        xperiodalignment
2786            Only relevant when the axis `type` is "date". Sets the
2787            alignment of data points on the x axis.
2788        xsrc
2789            Sets the source reference on Chart Studio Cloud for  x
2790            .
2791        y
2792            Sets the y sample data or coordinates. See overview for
2793            more info.
2794        y0
2795            Sets the y coordinate for single-box traces or the
2796            starting coordinate for multi-box traces set using
2797            q1/median/q3. See overview for more info.
2798        yaxis
2799            Sets a reference between this trace's y coordinates and
2800            a 2D cartesian y axis. If "y" (the default value), the
2801            y coordinates refer to `layout.yaxis`. If "y2", the y
2802            coordinates refer to `layout.yaxis2`, and so on.
2803        ycalendar
2804            Sets the calendar system to use with `y` date data.
2805        yperiod
2806            Only relevant when the axis `type` is "date". Sets the
2807            period positioning in milliseconds or "M<n>" on the y
2808            axis. Special values in the form of "M<n>" could be
2809            used to declare the number of months. In this case `n`
2810            must be a positive integer.
2811        yperiod0
2812            Only relevant when the axis `type` is "date". Sets the
2813            base for period positioning in milliseconds or date
2814            string on the y0 axis. When `y0period` is round number
2815            of weeks, the `y0period0` by default would be on a
2816            Sunday i.e. 2000-01-02, otherwise it would be at
2817            2000-01-01.
2818        yperiodalignment
2819            Only relevant when the axis `type` is "date". Sets the
2820            alignment of data points on the y axis.
2821        ysrc
2822            Sets the source reference on Chart Studio Cloud for  y
2823            .
2824
2825        Returns
2826        -------
2827        Box
2828        """
2829        super(Box, self).__init__("box")
2830
2831        if "_parent" in kwargs:
2832            self._parent = kwargs["_parent"]
2833            return
2834
2835        # Validate arg
2836        # ------------
2837        if arg is None:
2838            arg = {}
2839        elif isinstance(arg, self.__class__):
2840            arg = arg.to_plotly_json()
2841        elif isinstance(arg, dict):
2842            arg = _copy.copy(arg)
2843        else:
2844            raise ValueError(
2845                """\
2846The first argument to the plotly.graph_objs.Box
2847constructor must be a dict or
2848an instance of :class:`plotly.graph_objs.Box`"""
2849            )
2850
2851        # Handle skip_invalid
2852        # -------------------
2853        self._skip_invalid = kwargs.pop("skip_invalid", False)
2854        self._validate = kwargs.pop("_validate", True)
2855
2856        # Populate data dict with properties
2857        # ----------------------------------
2858        _v = arg.pop("alignmentgroup", None)
2859        _v = alignmentgroup if alignmentgroup is not None else _v
2860        if _v is not None:
2861            self["alignmentgroup"] = _v
2862        _v = arg.pop("boxmean", None)
2863        _v = boxmean if boxmean is not None else _v
2864        if _v is not None:
2865            self["boxmean"] = _v
2866        _v = arg.pop("boxpoints", None)
2867        _v = boxpoints if boxpoints is not None else _v
2868        if _v is not None:
2869            self["boxpoints"] = _v
2870        _v = arg.pop("customdata", None)
2871        _v = customdata if customdata is not None else _v
2872        if _v is not None:
2873            self["customdata"] = _v
2874        _v = arg.pop("customdatasrc", None)
2875        _v = customdatasrc if customdatasrc is not None else _v
2876        if _v is not None:
2877            self["customdatasrc"] = _v
2878        _v = arg.pop("dx", None)
2879        _v = dx if dx is not None else _v
2880        if _v is not None:
2881            self["dx"] = _v
2882        _v = arg.pop("dy", None)
2883        _v = dy if dy is not None else _v
2884        if _v is not None:
2885            self["dy"] = _v
2886        _v = arg.pop("fillcolor", None)
2887        _v = fillcolor if fillcolor is not None else _v
2888        if _v is not None:
2889            self["fillcolor"] = _v
2890        _v = arg.pop("hoverinfo", None)
2891        _v = hoverinfo if hoverinfo is not None else _v
2892        if _v is not None:
2893            self["hoverinfo"] = _v
2894        _v = arg.pop("hoverinfosrc", None)
2895        _v = hoverinfosrc if hoverinfosrc is not None else _v
2896        if _v is not None:
2897            self["hoverinfosrc"] = _v
2898        _v = arg.pop("hoverlabel", None)
2899        _v = hoverlabel if hoverlabel is not None else _v
2900        if _v is not None:
2901            self["hoverlabel"] = _v
2902        _v = arg.pop("hoveron", None)
2903        _v = hoveron if hoveron is not None else _v
2904        if _v is not None:
2905            self["hoveron"] = _v
2906        _v = arg.pop("hovertemplate", None)
2907        _v = hovertemplate if hovertemplate is not None else _v
2908        if _v is not None:
2909            self["hovertemplate"] = _v
2910        _v = arg.pop("hovertemplatesrc", None)
2911        _v = hovertemplatesrc if hovertemplatesrc is not None else _v
2912        if _v is not None:
2913            self["hovertemplatesrc"] = _v
2914        _v = arg.pop("hovertext", None)
2915        _v = hovertext if hovertext is not None else _v
2916        if _v is not None:
2917            self["hovertext"] = _v
2918        _v = arg.pop("hovertextsrc", None)
2919        _v = hovertextsrc if hovertextsrc is not None else _v
2920        if _v is not None:
2921            self["hovertextsrc"] = _v
2922        _v = arg.pop("ids", None)
2923        _v = ids if ids is not None else _v
2924        if _v is not None:
2925            self["ids"] = _v
2926        _v = arg.pop("idssrc", None)
2927        _v = idssrc if idssrc is not None else _v
2928        if _v is not None:
2929            self["idssrc"] = _v
2930        _v = arg.pop("jitter", None)
2931        _v = jitter if jitter is not None else _v
2932        if _v is not None:
2933            self["jitter"] = _v
2934        _v = arg.pop("legendgroup", None)
2935        _v = legendgroup if legendgroup is not None else _v
2936        if _v is not None:
2937            self["legendgroup"] = _v
2938        _v = arg.pop("line", None)
2939        _v = line if line is not None else _v
2940        if _v is not None:
2941            self["line"] = _v
2942        _v = arg.pop("lowerfence", None)
2943        _v = lowerfence if lowerfence is not None else _v
2944        if _v is not None:
2945            self["lowerfence"] = _v
2946        _v = arg.pop("lowerfencesrc", None)
2947        _v = lowerfencesrc if lowerfencesrc is not None else _v
2948        if _v is not None:
2949            self["lowerfencesrc"] = _v
2950        _v = arg.pop("marker", None)
2951        _v = marker if marker is not None else _v
2952        if _v is not None:
2953            self["marker"] = _v
2954        _v = arg.pop("mean", None)
2955        _v = mean if mean is not None else _v
2956        if _v is not None:
2957            self["mean"] = _v
2958        _v = arg.pop("meansrc", None)
2959        _v = meansrc if meansrc is not None else _v
2960        if _v is not None:
2961            self["meansrc"] = _v
2962        _v = arg.pop("median", None)
2963        _v = median if median is not None else _v
2964        if _v is not None:
2965            self["median"] = _v
2966        _v = arg.pop("mediansrc", None)
2967        _v = mediansrc if mediansrc is not None else _v
2968        if _v is not None:
2969            self["mediansrc"] = _v
2970        _v = arg.pop("meta", None)
2971        _v = meta if meta is not None else _v
2972        if _v is not None:
2973            self["meta"] = _v
2974        _v = arg.pop("metasrc", None)
2975        _v = metasrc if metasrc is not None else _v
2976        if _v is not None:
2977            self["metasrc"] = _v
2978        _v = arg.pop("name", None)
2979        _v = name if name is not None else _v
2980        if _v is not None:
2981            self["name"] = _v
2982        _v = arg.pop("notched", None)
2983        _v = notched if notched is not None else _v
2984        if _v is not None:
2985            self["notched"] = _v
2986        _v = arg.pop("notchspan", None)
2987        _v = notchspan if notchspan is not None else _v
2988        if _v is not None:
2989            self["notchspan"] = _v
2990        _v = arg.pop("notchspansrc", None)
2991        _v = notchspansrc if notchspansrc is not None else _v
2992        if _v is not None:
2993            self["notchspansrc"] = _v
2994        _v = arg.pop("notchwidth", None)
2995        _v = notchwidth if notchwidth is not None else _v
2996        if _v is not None:
2997            self["notchwidth"] = _v
2998        _v = arg.pop("offsetgroup", None)
2999        _v = offsetgroup if offsetgroup is not None else _v
3000        if _v is not None:
3001            self["offsetgroup"] = _v
3002        _v = arg.pop("opacity", None)
3003        _v = opacity if opacity is not None else _v
3004        if _v is not None:
3005            self["opacity"] = _v
3006        _v = arg.pop("orientation", None)
3007        _v = orientation if orientation is not None else _v
3008        if _v is not None:
3009            self["orientation"] = _v
3010        _v = arg.pop("pointpos", None)
3011        _v = pointpos if pointpos is not None else _v
3012        if _v is not None:
3013            self["pointpos"] = _v
3014        _v = arg.pop("q1", None)
3015        _v = q1 if q1 is not None else _v
3016        if _v is not None:
3017            self["q1"] = _v
3018        _v = arg.pop("q1src", None)
3019        _v = q1src if q1src is not None else _v
3020        if _v is not None:
3021            self["q1src"] = _v
3022        _v = arg.pop("q3", None)
3023        _v = q3 if q3 is not None else _v
3024        if _v is not None:
3025            self["q3"] = _v
3026        _v = arg.pop("q3src", None)
3027        _v = q3src if q3src is not None else _v
3028        if _v is not None:
3029            self["q3src"] = _v
3030        _v = arg.pop("quartilemethod", None)
3031        _v = quartilemethod if quartilemethod is not None else _v
3032        if _v is not None:
3033            self["quartilemethod"] = _v
3034        _v = arg.pop("sd", None)
3035        _v = sd if sd is not None else _v
3036        if _v is not None:
3037            self["sd"] = _v
3038        _v = arg.pop("sdsrc", None)
3039        _v = sdsrc if sdsrc is not None else _v
3040        if _v is not None:
3041            self["sdsrc"] = _v
3042        _v = arg.pop("selected", None)
3043        _v = selected if selected is not None else _v
3044        if _v is not None:
3045            self["selected"] = _v
3046        _v = arg.pop("selectedpoints", None)
3047        _v = selectedpoints if selectedpoints is not None else _v
3048        if _v is not None:
3049            self["selectedpoints"] = _v
3050        _v = arg.pop("showlegend", None)
3051        _v = showlegend if showlegend is not None else _v
3052        if _v is not None:
3053            self["showlegend"] = _v
3054        _v = arg.pop("stream", None)
3055        _v = stream if stream is not None else _v
3056        if _v is not None:
3057            self["stream"] = _v
3058        _v = arg.pop("text", None)
3059        _v = text if text is not None else _v
3060        if _v is not None:
3061            self["text"] = _v
3062        _v = arg.pop("textsrc", None)
3063        _v = textsrc if textsrc is not None else _v
3064        if _v is not None:
3065            self["textsrc"] = _v
3066        _v = arg.pop("uid", None)
3067        _v = uid if uid is not None else _v
3068        if _v is not None:
3069            self["uid"] = _v
3070        _v = arg.pop("uirevision", None)
3071        _v = uirevision if uirevision is not None else _v
3072        if _v is not None:
3073            self["uirevision"] = _v
3074        _v = arg.pop("unselected", None)
3075        _v = unselected if unselected is not None else _v
3076        if _v is not None:
3077            self["unselected"] = _v
3078        _v = arg.pop("upperfence", None)
3079        _v = upperfence if upperfence is not None else _v
3080        if _v is not None:
3081            self["upperfence"] = _v
3082        _v = arg.pop("upperfencesrc", None)
3083        _v = upperfencesrc if upperfencesrc is not None else _v
3084        if _v is not None:
3085            self["upperfencesrc"] = _v
3086        _v = arg.pop("visible", None)
3087        _v = visible if visible is not None else _v
3088        if _v is not None:
3089            self["visible"] = _v
3090        _v = arg.pop("whiskerwidth", None)
3091        _v = whiskerwidth if whiskerwidth is not None else _v
3092        if _v is not None:
3093            self["whiskerwidth"] = _v
3094        _v = arg.pop("width", None)
3095        _v = width if width is not None else _v
3096        if _v is not None:
3097            self["width"] = _v
3098        _v = arg.pop("x", None)
3099        _v = x if x is not None else _v
3100        if _v is not None:
3101            self["x"] = _v
3102        _v = arg.pop("x0", None)
3103        _v = x0 if x0 is not None else _v
3104        if _v is not None:
3105            self["x0"] = _v
3106        _v = arg.pop("xaxis", None)
3107        _v = xaxis if xaxis is not None else _v
3108        if _v is not None:
3109            self["xaxis"] = _v
3110        _v = arg.pop("xcalendar", None)
3111        _v = xcalendar if xcalendar is not None else _v
3112        if _v is not None:
3113            self["xcalendar"] = _v
3114        _v = arg.pop("xperiod", None)
3115        _v = xperiod if xperiod is not None else _v
3116        if _v is not None:
3117            self["xperiod"] = _v
3118        _v = arg.pop("xperiod0", None)
3119        _v = xperiod0 if xperiod0 is not None else _v
3120        if _v is not None:
3121            self["xperiod0"] = _v
3122        _v = arg.pop("xperiodalignment", None)
3123        _v = xperiodalignment if xperiodalignment is not None else _v
3124        if _v is not None:
3125            self["xperiodalignment"] = _v
3126        _v = arg.pop("xsrc", None)
3127        _v = xsrc if xsrc is not None else _v
3128        if _v is not None:
3129            self["xsrc"] = _v
3130        _v = arg.pop("y", None)
3131        _v = y if y is not None else _v
3132        if _v is not None:
3133            self["y"] = _v
3134        _v = arg.pop("y0", None)
3135        _v = y0 if y0 is not None else _v
3136        if _v is not None:
3137            self["y0"] = _v
3138        _v = arg.pop("yaxis", None)
3139        _v = yaxis if yaxis is not None else _v
3140        if _v is not None:
3141            self["yaxis"] = _v
3142        _v = arg.pop("ycalendar", None)
3143        _v = ycalendar if ycalendar is not None else _v
3144        if _v is not None:
3145            self["ycalendar"] = _v
3146        _v = arg.pop("yperiod", None)
3147        _v = yperiod if yperiod is not None else _v
3148        if _v is not None:
3149            self["yperiod"] = _v
3150        _v = arg.pop("yperiod0", None)
3151        _v = yperiod0 if yperiod0 is not None else _v
3152        if _v is not None:
3153            self["yperiod0"] = _v
3154        _v = arg.pop("yperiodalignment", None)
3155        _v = yperiodalignment if yperiodalignment is not None else _v
3156        if _v is not None:
3157            self["yperiodalignment"] = _v
3158        _v = arg.pop("ysrc", None)
3159        _v = ysrc if ysrc is not None else _v
3160        if _v is not None:
3161            self["ysrc"] = _v
3162
3163        # Read-only literals
3164        # ------------------
3165
3166        self._props["type"] = "box"
3167        arg.pop("type", None)
3168
3169        # Process unknown kwargs
3170        # ----------------------
3171        self._process_kwargs(**dict(arg, **kwargs))
3172
3173        # Reset skip_invalid
3174        # ------------------
3175        self._skip_invalid = False
3176