
    6Dh                     $   S SK JrJr  S SKJr  S SKJr  S SKJ	r	  S SK
r
S SKJr  \R                  " S5      rSrSrS	rS
rSrSrSrSrSrSrSrSrSr/ SQrSrS rS rS r  S S jr!S r"S!S jr#S r$S r%S r&S r'                  S"S jr(g)#    )
exceptionsoptional_importsN)utils)make_subplots)Numberpandasz#969696z#0f0f0f   z#ffffffz#efefefz#edededz#d0d0d0   ?      ?   
   )scatter	scattergl	histogrambarboxzIf you are using a dictionary for custom labels for the facet row/col, make sure each key in that column of the dataframe is in your facet labels. The keys you need are {}c                 &    U [         :  a  SnU$ SnU$ )NTF)THRES_FOR_FLIPPED_FACET_TITLES)numflippeds     S/var/www/html/env/lib/python3.13/site-packages/plotly/figure_factory/_facet_grid.py_is_flippedr   "   s#    
,, N N    c                     [        U[        5      (       a  X   nU$ [        U[        5      (       a  SR                  X 5      nU$ U nU$ )Nz{}: {})
isinstancedictstrformat)original_labelfacet_labels	facet_varlabels       r   _return_labelr$   *   sN    ,%%,
 L	 
L#	&	&	: L Lr   c                 `    [        SSS[        SSSSSR                  U 5      [        SS	S
9S9
nU$ )Nr   leftmiddle{Gz?Fpaperz
factor({})   #000000sizecolor
	textanglexanchoryanchorxy	showarrowxrefyreftextfont)r   LEGEND_ANNOT_Xr   )
color_namelegend_titles     r   _legend_annotationr=   4   sD    

  ,r+L r   c                 l   SUS-
  U-  -
  U-  nU(       d:  SnSnUS:X  a  US-
  Xc-   -  SU-  -   n	Sn
SnOXUS:X  a  US-
  Xc-   -  SU-  -   n
Sn	S	nO=US:X  a  SnS
nUS-
  Xc-   -  SU-  -   n	Sn
SnOUS:X  a  SnSnUS-
  Xc-   -  SU-  -   n
Sn	Sn[        WWWW	W
SSS[        U 5      [        S[        S9S9
nU$ )Nr
   centerr'   colr   r(   r   rowZ   bottom      ?  r&   Fr)   r*   r,   r/   )r   r   AXIS_TITLE_COLOR)r8   lanenum_of_lanesSUBPLOT_SPACINGrow_colr   lr1   r2   r3   r4   r0   annotation_dicts                r   _annotation_dictrM   D   s+    
lQ/1	1lCAea12S1W<AAIa12S1W<AAIeGGa12S1W<AAIGGa12S1W<AAI

Yr!12O r   c                 r    US:X  a  SnSnSnOUS:X  a  SnSnSnU (       d  Sn S[         S	.S
U WWSSWSSS.
nU$ )Nr3   r   gr   r4   rE    r+   r.   r-   Fr?   r)   r'   )
r9   r5   r8   r0   r3   r1   r6   r4   r2   r7   )AXIS_TITLE_SIZE)r8   x_or_y_axisx_posy_posr0   annots         r   _axis_title_annotationrV   p   sk    c				 $_=E Lr   c                    / nU S   R                  5       R                  5        H  nSU;   d  M  U S   U   S   SS/:w  d  M  USUSS.S	S
S
S.nSU;   aS  U S   U   S   S   US'   U S   U   S   S   US'   SUS'   SUS'   U(       a  US==   S-  ss'   UR                  U5        M  SU;   d  M  SUS'   SUS'   U S   U   S   S   US'   U S   U   S   S   US'   U(       a  US==   S-  ss'   UR                  U5        M     X@S   S'   g )Nlayoutaxisdomaing        rD   belowr
   r.   widthrectr)   )	fillcolorlayerlinetyper6   r7   xaxisr   x0x1gGz?y0r   y1r   yaxisshapes)to_plotly_jsonkeysappend)figannot_rect_colorflipped_rowsflipped_colsshapes_listkeyshapes          r   _add_shapes_to_figrt      sU   K8}++-224S=S]3/9c3ZG- "2Q?E #~!(mC0:1=d!(mC0:1=d#d"d$K3&K""5)C#d"d!(mC0:1=d!(mC0:1=d$K1$K""5); 5> *M(r   c                 <    US;   a  SU S'   [        SSU0UD6U S'   U $ )Nr   r   markersmoder.   marker )r   )trace
trace_typer.   kwargs_markers       r   _make_trace_for_scatterr~      s/    --!f<U<m<hLr   c                 "   [        UUSSUUSS9n/ nU(       d  U(       d  [        U R                  U5      5      nU Hl  n[        SUUS   [        UUS      S9S.UD6nU(       a  US   U   US'   U(       a  US   U   US	'   [	        UXUS      40 UD6nUR                  USS5        Mn     UU4$ U(       a  U(       a  U(       GdD  U(       Ga<  [        U R                  U(       a  UOU5      5      n[        U5       GH  u  nnX   R                  5        H  nUS   US   U   U:H     n[        SUU[        UU   S9S.UD6nU(       a  UU   US'   U(       a  UU   US	'   [	        UXU   40 UD6nUR                  UU(       a  US-   OSU(       a  SOUS-   5        M     [        US   U(       a  U	OU
U(       a  UOU5      nUR                  [        UU(       a  UU-
  OUS-   U(       a  UOUUU(       a  S
OSU5      5        GM     UU4$ U(       Ga  U(       Ga  [        U R                  X4/5      5      nU Vs0 s H  nUS   US   _M     nnX   R                  5       n X   R                  5       n!X   R                  5       n"[        U 5       GHJ  u  n#n$[        U!5       GH  u  n%n& UU$U&4   nU" H  nUR                  R                  5       / SQ/:w  a/  UUU   U:H     n'[        SUU[        UU   S9S.UD6nU'U   n(U'U   n)O$[        SUU[        UU   S9SS.UD6nUU   n(UU   n)U(       a  U(US'   U(       a  U)US	'   [	        UXU   40 UD6nUR                  UU#S-   U%S-   5        M     U#S:X  d  M  [        U!U%   X5      nUR                  [        UU%S-   UUSUS95        GM     [        U U#   X5      nUR                  [        UUU#-
  UUS
US95        GMM     UU4$ s  snf ! [         a    [        R                  / SQ/XU/S9n GN]f = f)NTFrowscolsshared_xaxesshared_yaxeshorizontal_spacingvertical_spacing
print_gridr   )r.   )rb   namery   r
   r3   r4   rA   r@   NNNcolumns)rb   r   ry   
showlegendrJ   r   rz   )r   listgroupbyr   r~   append_trace	enumerateuniquer$   rl   rM   KeyErrorpd	DataFramevaluestolist)*dfr3   r4   	facet_row	facet_colr;   colormapnum_of_rowsnum_of_colsfacet_row_labelsfacet_col_labelsr|   ro   rp   
show_boxesrI   marker_colorkwargs_tracer}   rm   annotationscolor_groupsgroupr{   groups_by_facetj	color_valdata_by_colorr#   groups_by_facetsitemtuple_to_facet_group
row_values
col_values
color_vals	row_countx_val	col_county_valgroup_filterednew_xnew_ys*                                             r   _facet_grid_color_categoricalr      s   , *(C KYBJJz23!E 1X(58"45 	E "1Xa[c
"1Xa[c
+zE!H#59FE UAq) "F e IyYrzzy)iPQ!/2HAu^224	 %aq*)=)J K #"hy&9: #	 !.q!1E#J!.q!1E#J/:	':>K   I1q519a!a%! 5( "a$- 3C&	IE  '0K!Oa!e#,K+#&EE 	7 3` U 
y

I+A BC=MN=MTQa 0=MN]))+
]))+
^**,
 )* 5Iu$-j$9 	50%@E ",I||**,1C0DD).uZ/@I/M)N $ !!+!*#'hy.A#B! +	! !/q 1 .q 1 $ !!+!*#'hy.A#B',	!
 +! !&a %a%*c
%*c
3zI+>BOE $$UIM9q=I? ",@ >)"9-/?E  &&(!%M'+$)$0	Y %:l "*Y"79IUE )+#!(	q !6F Q  O   LL+,qZ6H ) Es   9O")O''#PPc                    [        UUSSUUSS9n/ nU(       d_  U(       dX  [        SU[        X   USS9S.UD6nU(       a  X   US'   U(       a  X   US'   [        UXU   40 UD6nUR                  USS5        U(       a  U(       a  U(       Gd&  U(       Ga  [	        U R                  U(       a  UOU5      5      n[        U5       H  u  nn[        SU[        X   US[        S	S
9S9S.UD6nU(       a  US   U   US'   U(       a  US   U   US'   [        UXU   40 UD6nUR                  UU(       a  US-   OSU(       a  SOUS-   5        U(       a  U	OU
n[        US   UU(       a  UOU5      nUR                  [        UU(       a  UU-
  OUS-   U(       a  UOUUU(       a  SOSUS95        M     UU4$ U(       Ga  U(       Ga  [	        U R                  X4/5      5      nU Vs0 s H  nUS   US   _M     nnX   R                  5       nX   R                  5       n[        U5       GH(  u  n n![        U5       H  u  n"n# UU!U#4   nUR                  R                  5       / SQ/:w  a%  [        SU[        X   UU S:H  [        S	S
9S9S.UD6nO[        SUSS.UD6nU(       a  UU   US'   U(       a  UU   US'   [        UXU   40 UD6nUR                  UU S-   U"S-   5        U S:X  d  M  [        UU"   X5      nUR                  [        UU"S-   UUSUS95        M     [        UU    X5      nUR                  [        UU    UU -
  UUSUS95        GM+     UU4$ s  snf ! [         a    [        R                  / SQ/XU/S9n GN<f = f)NTFr   )r.   
colorscale	showscalerb   ry   r3   r4   r
   gffffff?)r3   )r.   r   r   colorbarr   rA   r@   )r   r   r   )rb   r   r   rz   )r   r   r~   r   r   r   r   r$   rl   rM   r   r   r   r   r   r   )$r   r3   r4   r   r   r;   r   r   r   r   r   r|   ro   rp   r   rI   r   r   r}   rm   r   r{   r   r   r   labelsr#   r   r   r   r   r   r   r   r   r   s$                                       r   _facet_grid_color_numericalr   `  s&   , *(C KY 
bnTR
 

 E#JE#J':*~
1>
 	1%)Y9rzzy)iPQ!/2HAu 	.'"!D\		 	E "1Xa[c
"1Xa[c
+zj>5BE 	q1uqy!a!e *3%8HF!a&y)iE  '0K!Oa!e#,K+#&EE(	9 3P C 
y

I+A BC=MN=MTQa 0=MN]))+
]))+
 )* 5Iu$-j$9 	50%@E <<&&(-?,@@  	'#"$.'/'0A~%)D\	 	 '	E !SjUSlSE!&qE#J!&qE#J/:*~9F   	Ay1}E>)"9-/?E  &&(!%M'+$)$0	I %:\ "*Y"79IUE y))+#!(	a !6v   O   LL+,qZ6H ) Es   #M M#NNc                 p   [        UUSSUUSS9n/ nU(       d`  U(       dY  [        SU	[        UUS   S9S.UD6nU(       a  X   US'   U(       a  X   US'   [        UX40 UD6nUR                  US	S	5        UU4$ U(       a  U(       a  U(       Gd  U(       Ga  [	        U R                  U(       a  UOU5      5      n[        U5       H  u  nn[        SU	[        UUS   S9S.UD6nU(       a  US	   U   US'   U(       a  US	   U   US'   [        UX40 UD6nUR                  UU(       a  US	-   OS	U(       a  S	OUS	-   5        [        US
   U(       a  UOUU(       a  UOU5      nUR                  [        UU(       a  UU-
  OUS	-   U(       a  UOUUU(       a  SOSU
5      5        M     UU4$ U(       GaU  U(       GaM  [	        U R                  X4/5      5      nU Vs0 s H  nUS
   US	   _M     nnX   R                  5       nX   R                  5       n[        U5       H  u  nn[        U5       H  u  nn  UUU 4   n[        SU	[        UUS   S9S.UD6nU(       a  UU   US'   U(       a  UU   US'   [        UX40 UD6nUR                  UUS	-   US	-   5        US
:X  d  Ms  [        UU   X5      nUR                  [        UUS	-   UUSUS95        M     [        UU   Xs5      nUR                  [        UUU-
  UUSU
S95        M     UU4$ s  snf ! [         a    [        R                  S S //X/S9n Nf = f)NTFr   ra   )r.   ra   r   r3   r4   r
   r   rA   r@   r   r   rz   )r   r   r~   r   r   r   r   r$   rl   rM   r   r   r   r   )!r   r3   r4   r   r   r   r   r   r   r|   ro   rp   r   rI   r   r   r}   rm   r   r{   r   r   r   r#   r   r   r   r   r   r   r   r   r   s!                                    r   _facet_gridr     s   ( *(C KY 
lv1FG
 
 E#JE#J':
/<
 	1%z w IyYrzzy)iPQ!/2HAu ,]65JK E "1Xa[c
"1Xa[c
+z3@E 	q1uqy!a!e "a$- 3C&	IE  '0K!Oa!e#,K+#&EE 	3 3r k 
y

I+A BC=MN=MTQa 0=MN]))+
]))+
 )* 5Iu$-j$9 	5I0%@E  #lv9NO #
 !&qE#J!&qE#J/:7D   	Ay1}E>)"9-/?E  &&(!%M'+$)$0	/ %:D "*Y"79IUE )+#!(	I !6^ g  O   ILL4,!LHEIs   L5L"L54L5c                 :   [         (       d  [        S5      e[        U [         R                  5      (       d  [        R
                  " S5      e[        R                  " U 5        US;   a$  U(       a  U(       d  [        R
                  " S5      eXX4U4 H  nUc  M   U U     M     US;  a  SnUS;  a  [        R
                  " S	5      eU[        ;  a)  [        R
                  " S
R                  [        5      5      eUS:X  a  SnOSnSU;   a  US   nO0 nUR                  SS5      nUR                  SS5        UnSU;  a  U(       a  SUS'   OSUS'   SU;  a  U(       d  SUS'   SU;  a  U(       d	  SSS.US'   O0 US'   U(       d
  U(       d  SnOSnSnSnSnSnU(       a  [        X   R                  5       5      n[        U5      n[        U[        5      (       av  X   R                  5        H`  nUUR!                  5       ;  d  M  X   R                  5       R#                  5       n[        R
                  " [$        R                  U5      5      e   U(       a  [        X   R                  5       5      n[        U5      n[        U	[        5      (       av  X   R                  5        H`  nUU	R!                  5       ;  d  M  X   R                  5       R#                  5       n[        R
                  " [$        R                  U5      5      e   SnU(       Ga  [        X   R&                  S   [(        5      (       d  U(       a  Sn[        U[        5      (       a[  [*        R,                  " US5        X   R                  5        H-  nUUR!                  5       ;  d  M  [        R
                  " S5      e   OK[*        R.                  n 0 nSn!X   R                  5        H!  nU![        U 5      :  a  Sn!U U!   UU'   U!S-  n!M#     [1        U UUUUUUUUUU	UUUUUUUU5      u  n"n#GO[        X   R&                  S   [2        5      (       Ga  [        U[        5      (       a~  Sn[*        R,                  " US5        X   R                  5        H-  nUUR!                  5       ;  d  M  [        R
                  " S5      e   [1        U UUUUUUUUUU	UUUUUUUU5      u  n"n#GOM[        U[4        5      (       a9  Un$[*        R6                  " U$5        [9        U UUUUUU$UUUU	UUUUUUUU5      u  n"n#O[        U[(        5      (       a  U[*        R:                  R!                  5       ;   a  [*        R:                  U   n$OA[        R
                  " S R                  [*        R:                  R!                  5       5      5      e[9        U UUUUUU$UUUU	UUUUUUUU5      u  n"n#OR[*        R:                  S!   n$[9        U UUUUUU$UUUU	UUUUUUUU5      u  n"n#O[=        U UUUUUUUU	UUUUUUUU5      u  n"n#U
(       d  [?        S"S#U-  5      n
U(       d  [?        S"S#U-  5      nW"S$   RA                  XS%S&S'9  U(       a  U"S$   RA                  [B        S(S)S*9  [E        US+5      n%[E        US,5      n&W#RG                  U%5        U#RG                  U&5        UU"S$   S-'   [H        U"S$   S.   S/'   [J        U"S$   S.   S0'   S1U"S$   S.   S+'   SU"S$   S.   S,'   S2U"S$   S.   S3'   U(       a=  UU"S$   S-'   U(       a.  U(       a  [M        U5      n'U#RG                  U'5        S4U"S$   S5   S6'   U#U"S$   S7'   U(       a  U(       a  [O        U"[P        UU5        / / S8.n(U"S$    H;  nS9U;   a  U(S+   RG                  U5        M  S:U;   d  M'  U(S,   RG                  U5        M=     Sn)X4 V*s/ s H  n*U*(       d  M  U*PM     sn* HH  n+[        U U+   R#                  5       S   [(        5      (       d  M.  U U+    H  n, [S        U,5        Sn)M     MJ     U)(       a.  U(R!                  5        H  n-U(U-    H  n.S;U"S$   U.   S<'   M     M     US=:X  a  S+S,/n/OUS>:X  a  S,/n/OUS?:X  a  S+/n/OUS:X  a  / n/W/ GH[  n-/ n0/ n1U"S@    HY  n2U2U-   c  M  [        U2U-   5      S:  d  M  U0RG                  [W        U2U-   5      5        U1RG                  [?        U2U-   5      5        M[     SU0;   a  U0RY                  S5        SU0;   a  M  SU1;   a  U1RY                  S5        SU1;   a  M  [W        U05      n3[?        U15      n4[        U3[2        5      =(       a    [        U4[2        5      n5U5(       a  [Z        R\                  " U35      n3[Z        R^                  " U45      n4U3SAU4U3-
  -  -  n3U4SAU4U3-
  -  -  n4U-S+:X  a+  U(       a  Un6OT[Z        R\                  " U4U3-
  [`        -  5      n6O3U-S,:X  a*  U(       a  Un6O#[Z        R\                  " U4U3-
  [`        -  5      n6OSn6U(U-    H~  n7W6U"S$   U7   SB'   SU"S$   U7   SC'   SU"S$   U7   SD'   U(       d  M-  SU"S$   U7   SE'   SFU"S$   U7   SC'   [b        U"S$   U7   SG'   [d        U"S$   U7   SH'   SIU"S$   U7   SG'   [f        SJSK.U"S$   U7   SL'   M     U-U/;   d  GM"  U"S$    H0  nSMR                  U-5      U;   d  M  U5(       d  M#  U3U4/U"S$   U   SN'   M2     GM^     U"$ ! [         a    [        R
                  " S5      ef = fs  sn*f ! [T         a     GM  f = f)Oa  
Returns figure for facet grid; **this function is deprecated**, since
plotly.express functions should be used instead, for example

>>> import plotly.express as px
>>> tips = px.data.tips()
>>> fig = px.scatter(tips,
...     x='total_bill',
...     y='tip',
...     facet_row='sex',
...     facet_col='smoker',
...     color='size')


:param (pd.DataFrame) df: the dataframe of columns for the facet grid.
:param (str) x: the name of the dataframe column for the x axis data.
:param (str) y: the name of the dataframe column for the y axis data.
:param (str) facet_row: the name of the dataframe column that is used to
    facet the grid into row panels.
:param (str) facet_col: the name of the dataframe column that is used to
    facet the grid into column panels.
:param (str) color_name: the name of your dataframe column that will
    function as the colormap variable.
:param (str|list|dict) colormap: the param that determines how the
    color_name column colors the data. If the dataframe contains numeric
    data, then a dictionary of colors will group the data categorically
    while a Plotly Colorscale name or a custom colorscale will treat it
    numerically. To learn more about colors and types of colormap, run
    `help(plotly.colors)`.
:param (bool) color_is_cat: determines whether a numerical column for the
    colormap will be treated as categorical (True) or sequential (False).
        Default = False.
:param (str|dict) facet_row_labels: set to either 'name' or a dictionary
    of all the unique values in the faceting row mapped to some text to
    show up in the label annotations. If None, labeling works like usual.
:param (str|dict) facet_col_labels: set to either 'name' or a dictionary
    of all the values in the faceting row mapped to some text to show up
    in the label annotations. If None, labeling works like usual.
:param (int) height: the height of the facet grid figure.
:param (int) width: the width of the facet grid figure.
:param (str) trace_type: decides the type of plot to appear in the
    facet grid. The options are 'scatter', 'scattergl', 'histogram',
    'bar', and 'box'.
    Default = 'scatter'.
:param (str) scales: determines if axes have fixed ranges or not. Valid
    settings are 'fixed' (all axes fixed), 'free_x' (x axis free only),
    'free_y' (y axis free only) or 'free' (both axes free).
:param (float) dtick_x: determines the distance between each tick on the
    x-axis. Default is None which means dtick_x is set automatically.
:param (float) dtick_y: determines the distance between each tick on the
    y-axis. Default is None which means dtick_y is set automatically.
:param (bool) show_boxes: draws grey boxes behind the facet titles.
:param (bool) ggplot2: draws the facet grid in the style of `ggplot2`. See
    http://ggplot2.tidyverse.org/reference/facet_grid.html for reference.
    Default = False
:param (int) binsize: groups all data into bins of a given length.
:param (dict) kwargs: a dictionary of scatterplot arguments.

Examples 1: One Way Faceting

>>> import plotly.figure_factory as ff
>>> import pandas as pd
>>> mpg = pd.read_table('https://raw.githubusercontent.com/plotly/datasets/master/mpg_2017.txt')

>>> fig = ff.create_facet_grid(
...     mpg,
...     x='displ',
...     y='cty',
...     facet_col='cyl',
... )
>>> fig.show()

Example 2: Two Way Faceting

>>> import plotly.figure_factory as ff

>>> import pandas as pd

>>> mpg = pd.read_table('https://raw.githubusercontent.com/plotly/datasets/master/mpg_2017.txt')

>>> fig = ff.create_facet_grid(
...     mpg,
...     x='displ',
...     y='cty',
...     facet_row='drv',
...     facet_col='cyl',
... )
>>> fig.show()

Example 3: Categorical Coloring

>>> import plotly.figure_factory as ff
>>> import pandas as pd
>>> mtcars = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/mtcars.csv')
>>> mtcars.cyl = mtcars.cyl.astype(str)
>>> fig = ff.create_facet_grid(
...     mtcars,
...     x='mpg',
...     y='wt',
...     facet_col='cyl',
...     color_name='cyl',
...     color_is_cat=True,
... )
>>> fig.show()


z3'pandas' must be installed for this figure_factory.z"You must input a pandas DataFrame.rv   z`You need to input 'x' and 'y' if you are you are using a trace_type of 'scatter' or 'scattergl'.NzIx, y, facet_row, facet_col and color_name must be keys in your dataframe.free)fixedfree_xfree_yr   z?'scales' must be set to 'fixed', 'free_x', 'free_y' and 'free'.z'trace_type' must be in {}r   gQ?gQ?ry   r.   r-   r      opacityg333333?ra   darkgreyr
   r\   zrgb(31, 119, 180)zrgb(0, 0, 0)Fr   TrgbzxIf using 'colormap' as a dictionary, make sure all the values of the colormap column are in the keys of your dictionary.zlIf 'colormap' is a string, it must be the name of a Plotly Colorscale. The available colorscale names are {}RedsiX  d   rX   rO   zrgb(251, 251, 251))heightr]   titlepaper_bgcolorzrgb(255, 255, 255)closest)plot_bgcolorr   	hovermoder3   r4   r   legendbgcolorborderwidthr   topr2      marginrr   )r3   r4   rc   rh   categoryrb   r   r   r   datag?dtickticklenzeroline	tickwidth   	gridwidth	gridcolor   r   rP   tickfontz{}axisrange)4r   ImportErrorr   r   r   PlotlyErrorr   validate_dataframer   VALID_TRACE_TYPESr   poplenr   r   r   rk   r   CUSTOM_LABEL_ERRORilocr   clrsvalidate_colors_dictDEFAULT_PLOTLY_COLORSr   r   r   validate_colorscaler   PLOTLY_SCALESr   maxupdatePLOT_BGCOLORrV   rl   LEGEND_COLORLEGEND_BORDER_WIDTHr=   rt   ANNOT_RECT_COLORint
ValueErrorminremovemathfloorceilMAX_TICKS_PER_AXIS
GRID_WIDTH
GRID_COLOR
TICK_COLOR)8r   r3   r4   r   r   r;   r   color_is_catr   r   r   r]   r|   scalesdtick_xdtick_yr   ggplot2binsizekwargsrr   rI   r}   r   r   r   r   ro   rp   unique_keysshow_legendvaldefault_colorsr   rm   r   colorscale_listx_title_annoty_title_annotlegend_annotaxis_labelsstring_number_in_datavvarr   x_y	axis_name
fixed_axes
min_ranges
max_rangesr{   	min_range	max_rangerange_are_numbersr   
axis_titles8                                                           r   create_facet_gridr    s   B 2OPPb",,''$$%IJJ 
R --((: 
 iJ7?3 8 11 ::$$M
 	
 **$$(//0AB
 	
 [  6x( $$Wd3L
JJxL]"$%M&!$%M&!%&)L#]".81$EM&!$&M&! .L%KKLL"-..01";/&--}++-.3355"$-"6"6"8"?"?"AK$001C1J1J;1WXX . "-..01";/&--}++-.3355"$-"6"6"8"?"?"AK$001C1J1J;1WXX . Kbn))!,c22lK(D))))(E:>002C(--/1(44;  3 "&!;!;>002CC//$21$5HSMFA	 3
  =  ' C, ++A.77(D))"))(E:>002C(--/1(44;  3 $A$$  #  !'$ [, Hd++"*((9#>#$$  #  !'$ [* Hc**t116688&*&8&8&BO$00''-vd.@.@.E.E.G'H 
 $?#$$  #  !'$ [, #'"4"4V"<#>#$$  #  !'$ [. '#
[( S#+,C{*+M"<P   H%. 	 	
 +1c2M*1c2M }%}% #.CM,)5CM(I&-@CM(M*#'CM(C #$CM(C ).CM(I&&1Hl#1*=""<0+.CM(#C( $/CM-  g3 0,M $K8}c>##C(^##C(	  "6'6aQ6'bgnn&q)3//3I,0)   ( ##%C(-	3=Hi(0 . & 3Z
	8	U
	8	U
	6	
 

[ESz%#eCj/A*=!!#eCj/2!!#eCj/2 ! j d# j j d# j  
O	
O	&y&9 
jv?
 

9-I		),I Y!677IY!677Icz#E JJ	I(=AS'STE#E JJ	I(=AS'STEE%c*J16CM*%g.34CM*%i049CM*%j1w9:Hj)+678Hj))49CHj)+69CHj)+69:Hj)+6'9Hj)*5 +" *8}??3'3.3D3D3<i2HCM#&w/ %u | J]   ,,) p	 ( " s*   k">lll"!l
ll)r@   T)FF)NNNNNNFNNNNr   r   NNTFr
   ))plotlyr   r   plotly.colorscolorsr   plotly.figure_factoryr   plotly.subplotsr   r   numbersr   
get_moduler   r  rF   rQ   r  r   r   r   r   r:   LEGEND_ANNOT_Yr   r   r   r   r   r   r$   r=   rM   rV   rt   r~   r   r   r   r  rz   r   r   <module>r(     s    /  ' )    *
 
   !# 
G ' " GK)X8!*HfR[|J^ 

'cr   