Ë
    {�hê™  ã                   ó  — d dl mZmZ d dlmZ d dlmZ d dlm	Z	 d dl
Z
d dlmZ  ej                  d«      ZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZg d¢ZdZd„ Zd„ Zd„ Z 	 d d„Z!d„ Z"d!d„Z#d„ Z$d„ Z%d„ Z&d„ Z'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"d„Z(y)#é    )Ú
exceptionsÚoptional_importsN)Úutils)Úmake_subplots)ÚNumberÚpandasz#969696z#0f0f0fé   z#ffffffz#efefefz#edededz#d0d0d0é   çÍÌÌÌÌÌð?ç      à?é   é
   )ÚscatterÚ	scatterglÚ	histogramÚbarÚboxz«If 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                 ó$   — | t         k\  rd}|S d}|S )NTF)ÚTHRES_FOR_FLIPPED_FACET_TITLES)ÚnumÚflippeds     ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/plotly/figure_factory/_facet_grid.pyÚ_is_flippedr   "   s#   € Ø
Ô,Ò,Øˆð €Nð ˆØ€Nó    c                 ó€   — t        |t        «      r||    }|S t        |t        «      rdj                  || «      }|S | }|S )Nz{}: {})Ú
isinstanceÚdictÚstrÚformat)Úoriginal_labelÚfacet_labelsÚ	facet_varÚlabels       r   Ú_return_labelr$   *   sL   € Ü�,¤Ô%Ø˜^Ñ,ˆð
 €Lô	 
�L¤#Ô	&Ø—‘ 	¨>Ó:ˆð €Lð ˆØ€Lr   c                 ól   — t        dddt        dddddj                  | «      t        dd	¬
«      ¬«
      }|S )Nr   ÚleftÚmiddleç{®Gázð?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                 ón  — d|dz
  |z  z
  |z  }|s:d}d}|dk(  r|dz
  ||z   z  d|z  z   }	d}
d}nX|dk(  rS|dz
  ||z   z  d|z  z   }
d}	d	}n=|dk(  rd}d
}|dz
  ||z   z  d|z  z   }	d}
d}n|dk(  rd}d}|dz
  ||z   z  d|z  z   }
d}	d}t        	
dddt        | «      t        dt        ¬«      ¬«
      }|S )Nr
   Úcenterr'   Úcolr   r(   r   ÚrowéZ   Ú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   s2  € ð 
ˆl˜QÑ /Ñ1Ñ	1°lÑC€AÙØˆØˆØ�eÒØ˜‘˜a /Ñ1Ñ2°S¸1±WÑ<ˆAØˆAØ‰IØ˜ÒØ˜‘˜a /Ñ1Ñ2°S¸1±WÑ<ˆAØˆAØ‰Ià�eÒØˆGØˆGØ˜‘˜a /Ñ1Ñ2°S¸1±WÑ<ˆAØˆAØ‰IØ˜ÒØˆGØˆGØ˜‘˜a /Ñ1Ñ2°S¸1±WÑ<ˆAØˆAØˆIäØØØØ
Ø
ØØØÜ�‹YÜ�rÔ!1Ô2ô€Oð Ðr   c                 ód   — |dk(  rd}d}d}n|dk(  rd}d}d}| sd} dt         d	œd
| dddddœ
}|S )Nr3   r   gš™™™™™¹¿r   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                 óì  — g }| d   j                  «       j                  «       D ]Æ  }d|v sŒ| d   |   d   ddgk7  sŒ|d|ddœd	d
d
dœ}d|v rM| d   |   d   d   |d<   | d   |   d   d   |d<   d|d<   d|d<   |r|dxx   dz  cc<   |j                  |«       Œvd|v sŒ{d|d<   d|d<   | d   |   d   d   |d<   | d   |   d   d   |d<   |r|dxx   dz  cc<   |j                  |«       ŒÈ || d   d<   y )NÚlayoutÚaxisÚdomaing        rD   Úbelowr
   ©r.   ÚwidthÚrectr)   )Ú	fillcolorÚlayerÚlineÚtyper6   r7   Úxaxisr   Úx0Úx1g®Gázð?Ú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   Œ   s\  € Ø€KØ�8‰}×+Ñ+Ó-×2Ñ2Ó4ò *ˆØ�SŠ=˜S ™]¨3Ñ/°Ñ9¸cÀ3¸ZÓGà-Ø Ø"2¸QÑ?ØØØñˆEð ˜#‰~Ø! (™m¨CÑ0°Ñ:¸1Ñ=��d‘Ø! (™m¨CÑ0°Ñ:¸1Ñ=��d‘Ø#��d‘Ø"��d‘áØ˜$“K 3Ñ&“KØ×"Ñ" 5Õ)à˜C’Ø#��d‘Ø"��d‘Ø! (™m¨CÑ0°Ñ:¸1Ñ=��d‘Ø! (™m¨CÑ0°Ñ:¸1Ñ=��d‘áØ˜$“K 1Ñ$“KØ×"Ñ" 5Õ)ð;*ð> *€Cˆ�M�(Òr   c                 ó8   — |dv rd| d<   t        dd|i|¤Ž| d<   | S )N©r   r   ÚmarkersÚmoder.   Úmarker© )r   )ÚtraceÚ
trace_typer.   Úkwargs_markers       r   Ú_make_trace_for_scatterr~   °   s/   € ØÐ-Ñ-Ø!ˆˆf‰ÜÑ< UÐ<¨mÑ<ˆˆh‰Ø€Lr   c                 ó`  — t        ||dd||d¬«      }g }|sŠ|sˆt        | j                  |«      «      }|D ]e  }t        d||d   t        ||d      ¬«      dœ|¤Ž}|r|d   |   |d<   |r|d   |   |d	<   t	        ||||d      fi |¤Ž}|j                  |dd«       Œg ||fS |r|r|�s|�r	t        | j                  |r|n|«      «      }t        |«      D ]Ù  \  }}| |   j                  «       D ]u  }|d   |d   |   |k(     }t        d||t        ||   ¬«      dœ|¤Ž}|r||   |d<   |r||   |d	<   t	        ||||   fi |¤Ž}|j                  ||r|dz   nd|rdn|dz   «       Œw t        |d   |r|	n|
|r|n|«      }|j                  t        ||r||z
  n|dz   |r|n|||rd
nd|«      «       ŒÛ ||fS |�rÃ|�rÀt        | j                  ||g«      «      }|D �ci c]  }|d   |d   “Œ }}| |   j                  «       } | |   j                  «       }!| |   j                  «       }"t        | «      D �]F  \  }#}$t        |!«      D ]ÿ  \  }%}&	 ||$|&f   }|"D ]³  }|j                  j                  «       g d¢gk7  r2|||   |k(     }'t        d||t        ||   ¬«      dœ|¤Ž}|'|   }(|'|   })n't        d||t        ||   ¬«      ddœ|¤Ž}||   }(||   })|r|(|d<   |r|)|d	<   t	        ||||   fi |¤Ž}|j                  ||#dz   |%dz   «       Œµ |#dk(  sŒÌt        |!|%   |
|«      }|j                  t        ||%dz   ||d|¬«      «       �Œ t        | |#   |	|«      }|j                  t        |||#z
  ||d
|¬«      «       �ŒI ||fS c c}w # t        $ r! t        j                  g d¢g|||g¬«      }Y �Œ\w xY w)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Ü˜BŸJ™J zÓ2Ó3ˆØ!ò 	*ˆEÜð ØØ˜1‘XÜ (¨5°©8Ñ"4Ô5ñð ñ	ˆEñ Ø" 1™X a™[��c‘
ÙØ" 1™X a™[��c‘
Ü+Ø�z 8¨E°!©HÑ#5ñØ9FñˆEð ×Ñ˜U A qÕ)ð	*ðF �ÐÐñe ™IªyºYÜ˜rŸz™z±y©)ÀiÓPÓQˆÜ! /Ó2ò $	‰HˆAˆuØ 
™^×2Ñ2Ó4ò �	Ø % a¡¨¨q©°*Ñ)=ÀÑ)JÑ K�Üð Ø#Ø"Ü h¨yÑ&9Ô:ñð #ñ	�ñ Ø!.¨qÑ!1�E˜#‘JÙØ!.¨qÑ!1�E˜#‘JÜ/Ø˜: x°	Ñ':ñØ>Kñ�ð × Ñ Ø¡I˜1˜qš5°1¹9±aÈ!ÈaÉ%õð!ô( "Ø�a‘Ù$-Ñ Ð3CÙ&‘	¨IóˆEð ×ÑÜ ØÙ'0�K !’O°a¸!±eÙ#,‘K°+Ø#Ù&‘E¨EØ óõ	ð7$	ð` �ÐÐòU 
’yÜ §
¡
¨I°yÐ+AÓ BÓCÐØ=MÖN°T  Q¡¨¨a©Ñ 0ÐNÐÐNà˜	‘]×)Ñ)Ó+ˆ
Ø˜	‘]×)Ñ)Ó+ˆ
Ø˜
‘^×*Ñ*Ó,ˆ
Ü )¨*Ó 5ó A	ÑˆI�uÜ$-¨jÓ$9ò 5Ñ �	˜5ðØ0°%¸°Ñ@�Eð ",ò J�IØ—|‘|×*Ñ*Ó,Ò1CÐ0DÒDØ).¨u°ZÑ/@ÀIÑ/MÑ)N˜ä $ð !Ø!+Ø!*Ü#'¨h°yÑ.AÔ#Bñ!ð +ñ	!˜ð !/¨qÑ 1˜Ø .¨qÑ 1™ä $ð !Ø!+Ø!*Ü#'¨h°yÑ.AÔ#BØ',ñ	!ð
 +ñ!˜ð !& a¡˜Ø % a¡˜áØ%*˜˜c™
ÙØ%*˜˜c™
Ü3Ø˜z¨8°IÑ+>ñØBOñ�Eð ×$Ñ$ U¨I¸©M¸9Àq¹=ÕIð?Jð@  “>Ü)Ø" 9Ñ-Ð/?Àó�Eð  ×&Ñ&Ü(Ø!Ø%¨™MØ'Ø+Ø$)Ø$0ôö	ðY5ôl " *¨YÑ"7Ð9IÈ9ÓUˆEØ×ÑÜ ØØ )Ñ+ØØ#Ø!Ø(ôö	ðqA	ðF �ÐÐùòQ  Oøô  ò ÜŸL™LÚ+Ð,°q¸!¸ZÐ6Hð )ó “Eðús   ÇM>É	NÎ&N-Î,N-c                 ól  — t        ||dd||d¬«      }g }|sW|sUt        d|t        | |   |d¬«      dœ|¤Ž}|r| |   |d<   |r| |   |d<   t        ||| |   fi |¤Ž}|j                  |dd«       |r|r|s÷|rõt	        | j                  |r|n|«      «      }t        |«      D ]Å  \  }}t        d|t        | |   |dt        d	¬
«      ¬«      dœ|¤Ž}|r|d   |   |d<   |r|d   |   |d<   t        ||| |   fi |¤Ž}|j                  ||r|dz   nd|rdn|dz   «       |r|	n|
}t        |d   ||r|n|«      }|j                  t        ||r||z
  n|dz   |r|n|||rdnd|¬«      «       ŒÇ ||fS |�r’|�r�t	        | j                  ||g«      «      }|D �ci c]  }|d   |d   “Œ }}| |   j                  «       }| |   j                  «       }t        |«      D �](  \  } }!t        |«      D ]Þ  \  }"}#	 ||!|#f   }|j                  j                  «       g d¢gk7  r,t        d|t        | |   || dk(  t        d	¬
«      ¬«      dœ|¤Ž}nt        d|ddœ|¤Ž}|r||   |d<   |r||   |d<   t        ||| |   fi |¤Ž}|j                  || dz   |"dz   «       | dk(  sŒ¬t        ||"   |
|«      }|j                  t        ||"dz   ||d|¬«      «       Œà t        ||    |	|«      }|j                  t        ||    || z
  ||d|¬«      «       �Œ+ ||fS c c}w # t        $ r! t        j                  g d¢g|||g¬«      }Y �Œ>w xY w)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¾   `  sN  € ô, ØØØØØ*Ø(Øô€Cð €KÙ™YÜð 
ØÜ˜b ™n¸ÈTÔRñ
ð ñ
ˆñ
 Ø˜A™ˆE�#‰JÙØ˜A™ˆE�#‰JÜ'Ø�:˜r *™~ñ
Ø1>ñ
ˆð 	×Ñ˜  1Ô%á™)©Y¹9Ü˜rŸz™z±y©)ÀiÓPÓQˆÜ! /Ó2ò %	‰HˆAˆuÜð 	ØÜØ˜Z™.Ø'Ø"Ü! Dœ\ô	ñ	ð ñ	ˆEñ Ø" 1™X a™[��c‘
ÙØ" 1™X a™[��c‘
Ü+Ø�z 2 j¡>ñØ5BñˆEð ×ÑØ¡	�q˜1’u¨q±y±!ÀaÈ!Áeôñ *3Ñ%Ð8HˆFÜ!Ø�a‘˜&©y¡)¸ióˆEð ×ÑÜ ØÙ'0�K !’O°a¸!±eÙ#,‘K°+Ø#Ù&‘E¨EØ(ôõ	ð9%	ðP �ÐÐòC 
’yÜ §
¡
¨I°yÐ+AÓ BÓCÐØ=MÖN°T  Q¡¨¨a©Ñ 0ÐNÐÐNà˜	‘]×)Ñ)Ó+ˆ
Ø˜	‘]×)Ñ)Ó+ˆ
Ü )¨*Ó 5ó 9	ÑˆI�uÜ$-¨jÓ$9ò -Ñ �	˜5ðØ0°%¸°Ñ@�Eð —<‘<×&Ñ&Ó(Ò-?Ð,@Ò@Ü ð 	Ø'Ü#Ø"$ Z¡.Ø'/Ø'0°A¡~Ü%)¨D¤\ô	 ñ	ð 'ñ	‘Eô !ÐS j¸UÑSÀlÑS�EáØ!& q¡�E˜#‘JÙØ!& q¡�E˜#‘JÜ/Ø˜: r¨*¡~ñØ9Fñ�ð × Ñ  ¨	°A©°yÀ1±}ÔEØ “>Ü)Ø" 9Ñ-Ð/?Àó�Eð  ×&Ñ&Ü(Ø!Ø%¨™MØ'Ø+Ø$)Ø$0ôõ	ðI-ô\ " *¨YÑ"7Ð9IÈ9ÓUˆEØ×ÑÜ Ø˜yÑ)Ø )Ñ+ØØ#Ø!Ø(ôö	ða9	ðv �ÐÐùò  Oøô  ò ÜŸL™LÚ+Ð,°q¸!¸ZÐ6Hð )ó “Eðús   ÆLÇ-L	Ì	&L3Ì2L3c                 ó¸  — t        ||dd||d¬«      }g }|sW|sUt        d|	t        ||d   ¬«      dœ|¤Ž}|r| |   |d<   |r| |   |d<   t        ||	|fi |¤Ž}|j                  |d	d	«       ||fS |r|r|så|rãt	        | j                  |r|n|«      «      }t        |«      D ]³  \  }}t        d|	t        ||d   ¬«      dœ|¤Ž}|r|d	   |   |d<   |r|d	   |   |d<   t        ||	|fi |¤Ž}|j                  ||r|d	z   nd	|rd	n|d	z   «       t        |d
   |r|n||r|n|«      }|j                  t        ||r||z
  n|d	z   |r|n|||rdnd|
«      «       Œµ ||fS |�rL|�rIt	        | j                  ||g«      «      }|D �ci c]  }|d
   |d	   “Œ }}| |   j                  «       }| |   j                  «       }t        |«      D ]ã  \  }}t        |«      D ]�  \  }} 	 ||| f   }t        d|	t        ||d   ¬«      dœ|¤Ž}|r||   |d<   |r||   |d<   t        ||	|fi |¤Ž}|j                  ||d	z   |d	z   «       |d
k(  sŒkt        ||   ||«      }|j                  t        ||d	z   ||d|¬«      «       ŒŸ t        ||   ||«      }|j                  t        |||z
  ||d|
¬«      «       Œå ||fS c c}w # t        $ r t        j                  d d gg||g¬«      }Y Œ÷w xY w)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°¸vÑ1FÔGñ
ð ñ
ˆñ Ø˜A™ˆE�#‰JÙØ˜A™ˆE�#‰JÜ'Ø�:˜|ñ
Ø/<ñ
ˆð 	×Ñ˜  1Ô%ðz �ÐÐñw ™I©y¹YÜ˜rŸz™z±y©)ÀiÓPÓQˆÜ! /Ó2ò "	‰HˆAˆuÜð ØÜ ,°]À6Ñ5JÔKñð ñˆEñ Ø" 1™X a™[��c‘
ÙØ" 1™X a™[��c‘
Ü+Ø�z <ñØ3@ñˆEð ×ÑØ¡	�q˜1’u¨q±y±!ÀaÈ!Áeôô "Ø�a‘Ù$-Ñ Ð3CÙ&‘	¨IóˆEð ×ÑÜ ØÙ'0�K !’O°a¸!±eÙ#,‘K°+Ø#Ù&‘E¨EØ óõ	ð3"	ðr �ÐÐòk 
’yÜ §
¡
¨I°yÐ+AÓ BÓCÐØ=MÖN°T  Q¡¨¨a©Ñ 0ÐNÐÐNà˜	‘]×)Ñ)Ó+ˆ
Ø˜	‘]×)Ñ)Ó+ˆ
Ü )¨*Ó 5ò -	ÑˆI�uÜ$-¨jÓ$9ò  Ñ �	˜5ðIØ0°%¸°Ñ@�Eô ð Ø#Ü l¸ÀvÑ9NÔOñð #ñ�ñ
 Ø!& q¡�E˜#‘JÙØ!& q¡�E˜#‘JÜ/Ø˜: |ñØ7Dñ�ð × Ñ  ¨	°A©°yÀ1±}ÔEØ “>Ü)Ø" 9Ñ-Ð/?Àó�Eð  ×&Ñ&Ü(Ø!Ø%¨™MØ'Ø+Ø$)Ø$0ôõ	ð/ ôD " *¨YÑ"7Ð9IÈ9ÓUˆEØ×ÑÜ ØØ )Ñ+ØØ#Ø!Ø(ôõ	ðI-	ð^ �ÐÐùòg  Oøô  ò IÜŸL™L¨4°¨,¨À!ÀQÀ˜LÓH’EðIús   Å?J,ÇJ1Ê1%KËKc                 óø  — t         st        d«      ‚t        | t         j                  «      st	        j
                  d«      ‚t        j                  | «       |dv r|r|st	        j
                  d«      ‚|||||fD ]  }|€Œ	 | |    Œ |dvrd}|dvrt	        j
                  d	«      ‚|t        vr(t	        j
                  d
j                  t        «      «      ‚|dk(  rd}nd}d|v r|d   }ni }|j                  dd«      }|j                  dd«       |}d|vr|rd|d<   nd|d<   d|vr|sd|d<   d|vr|s	dddœ|d<   ni |d<   |s|sd}nd}d}d}d}d}|rªt        | |   j                  «       «      }t        |«      }t        |t        «      rs| |   j                  «       D ]]  }||j!                  «       vsŒ| |   j                  «       j#                  «       }t	        j
                  t$        j                  |«      «      ‚ |rªt        | |   j                  «       «      }t        |«      }t        |	t        «      rs| |   j                  «       D ]]  }||	j!                  «       vsŒ| |   j                  «       j#                  «       }t	        j
                  t$        j                  |«      «      ‚ d}|�rÀt        | |   j&                  d   t(        «      s|rÓd}t        |t        «      rVt+        j,                  |d«       | |   j                  «       D ])  }||j!                  «       vsŒt	        j
                  d«      ‚ nIt*        j.                  } i }d}!| |   j                  «       D ]  }|!t        | «      k\  rd}!| |!   ||<   |!dz  }!Œ! t1        | ||||||||||	||||||||«      \  }"}#�nét        | |   j&                  d   t2        «      �rÈt        |t        «      ryd}t+        j,                  |d«       | |   j                  «       D ])  }||j!                  «       vsŒt	        j
                  d«      ‚ t1        | ||||||||||	||||||||«      \  }"}#�n?t        |t4        «      r8|}$t+        j6                  |$«       t9        | ||||||$||||	||||||||«      \  }"}#n÷t        |t(        «      r•|t*        j:                  j!                  «       v rt*        j:                  |   }$n@t	        j
                  d j                  t*        j:                  j!                  «       «      «      ‚t9        | ||||||$||||	||||||||«      \  }"}#nRt*        j:                  d!   }$t9        | ||||||$||||	||||||||«      \  }"}#nt=        | ||||||||	||||||||«      \  }"}#|
st?        d"d#|z  «      }
|st?        d"d#|z  «      }"d$   jA                  |
|d%d&¬'«       |r|"d$   jA                  tB        d(d)¬*«       tE        |d+«      }%tE        |d,«      }&#jG                  |%«       |#jG                  |&«       ||"d$   d-<   tH        |"d$   d.   d/<   tJ        |"d$   d.   d0<   d1|"d$   d.   d+<   d|"d$   d.   d,<   d2|"d$   d.   d3<   |r3||"d$   d-<   |r)|rtM        |«      }'|#jG                  |'«       d4|"d$   d5   d6<   |#|"d$   d7<   |r|rtO        |"tP        ||«       g g d8œ}(|"d$   D ]4  }d9|v r|(d+   jG                  |«       Œd:|v sŒ!|(d,   jG                  |«       Œ6 d})||fD �*cg c]  }*|*sŒ|*‘Œ	 c}*D ]?  }+t        | |+   j#                  «       d   t(        «      sŒ(| |+   D ]  },	 tS        |,«       d})Œ ŒA |)r*|(j!                  «       D ]  }-|(|-   D ]  }.d;|"d$   |.   d<<   Œ Œ |d=k(  rd+d,g}/n|d>k(  rd,g}/n|d?k(  rd+g}/n|dk(  rg }//D �]  }-g }0g }1|"d@   D ]T  }2|2|-   €Œ	t        |2|-   «      dkD  sŒ|0jG                  tW        |2|-   «      «       |1jG                  t?        |2|-   «      «       ŒV d|0v r|0jY                  d«       d|0v rŒd|1v r|1jY                  d«       d|1v rŒtW        |0«      }3t?        |1«      }4t        |3t2        «      xr t        |4t2        «      }5|5r”t[        j\                  |3«      }3t[        j^                  |4«      }4|3dA|4|3z
  z  z  }3|4dA|4|3z
  z  z  }4|-d+k(  r%|r|}6nLt[        j\                  |4|3z
  t`        z  «      }6n,|-d,k(  r'|r|}6n"t[        j\                  |4|3z
  t`        z  «      }6nd}6|(|-   D ]w  }76|"d$   |7   dB<   d|"d$   |7   dC<   d|"d$   |7   dD<   |sŒ'd|"d$   |7   dE<   dF|"d$   |7   dC<   tb        |"d$   |7   dG<   td        |"d$   |7   dH<   dI|"d$   |7   dG<   tf        dJdKœ|"d$   |7   dL<   Œy |-|/v s�Œí|"d$   D ]&  }dMj                  |-«      |v sŒ|5sŒ|3|4g|"d$   |   dN<   Œ( �Œ |"S # t        $ r t	        j
                  d«      ‚w xY wc c}*w # tT        $ r Y �Œ¹w xY w)Oai  
    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 ÜÐOÓPÐPä�bœ"Ÿ,™,Ô'Ü×$Ñ$Ð%IÓJÐJô 
×Ñ˜RÔ àÐ-Ñ-Ù™Ü×(Ñ(ð:óð ð
 �1�i ¨JÐ7ò ˆØ‰?ðØ�3“ðð Ð1Ñ1Øˆð Ð:Ñ:Ü×$Ñ$ØMó
ð 	
ð Ô*Ñ*Ü×$Ñ$Ø(×/Ñ/Ô0AÓBó
ð 	
ð �[Ò Ø‰àˆð �6ÑØ˜xÑ(‰àˆØ ×$Ñ$ W¨dÓ3€LØ
‡J�Jˆx˜ÔØ€Là�]Ñ"ÙØ$%ˆM˜&Ò!à$%ˆM˜&Ñ!à˜Ñ%ÙØ&)ˆL˜Ñ#à�]Ñ"ÙØ.8À1Ñ$EˆM˜&Ò!à$&ˆM˜&Ñ!ñ ÙØ.‰Là%ˆà€KØ€KØ€LØ€LÙÜ˜"˜Y™-×.Ñ.Ó0Ó1ˆÜ" ;Ó/ˆÜÐ&¬Ô-Ø˜)‘}×+Ñ+Ó-ò Y�ØÐ.×3Ñ3Ó5Ò5Ø"$ Y¡-×"6Ñ"6Ó"8×"?Ñ"?Ó"A�KÜ$×0Ñ0Ô1C×1JÑ1JÈ;Ó1WÓXÐXðYñ Ü˜"˜Y™-×.Ñ.Ó0Ó1ˆÜ" ;Ó/ˆÜÐ&¬Ô-Ø˜)‘}×+Ñ+Ó-ò Y�ØÐ.×3Ñ3Ó5Ò5Ø"$ Y¡-×"6Ñ"6Ó"8×"?Ñ"?Ó"A�KÜ$×0Ñ0Ô1C×1JÑ1JÈ;Ó1WÓXÐXðYð €KÚÜ�b˜‘n×)Ñ)¨!Ñ,¬cÔ2±lØˆKÜ˜(¤DÔ)Ü×)Ñ)¨(°EÔ:à˜j™>×0Ñ0Ó2ò �CØ (§-¡-£/Ò1Ü(×4Ñ4ð;óð ñô "&×!;Ñ!;�Ø�Ø�Ø˜j™>×0Ñ0Ó2ò �CØœC Ó/Ò/Ø˜Ø$2°1Ñ$5�H˜S‘MØ˜‘F‘Að	ô
  =ØØØØØØØØØØ Ø ØØØØØØØØó' ÑˆC’ô, ˜˜:™×+Ñ+¨AÑ.´Õ7Ü˜(¤DÔ)Ø"�Ü×)Ñ)¨(°EÔ:à˜j™>×0Ñ0Ó2ò �CØ (§-¡-£/Ò1Ü(×4Ñ4ð;óð ðô $AØØØØØØØØØØ$Ø$ØØ Ø ØØ#Ø Ø Ø!ó'$Ñ �’[ô, ˜H¤dÔ+Ø"*�Ü×(Ñ(¨Ô9ä#>ØØØØØØØ#ØØØ$Ø$ØØ Ø ØØ#Ø Ø Ø!ó'$Ñ �‘[ô* ˜H¤cÔ*Øœt×1Ñ1×6Ñ6Ó8Ñ8Ü&*×&8Ñ&8¸Ñ&B‘Oä$×0Ñ0ð'ç'-¡v¬d×.@Ñ.@×.EÑ.EÓ.GÓ'Hóð ô
 $?ØØØØØØØ#ØØØ$Ø$ØØ Ø ØØ#Ø Ø Ø!ó'$Ñ �‘[ô, #'×"4Ñ"4°VÑ"<�Ü#>ØØØØØØØ#ØØØ$Ø$ØØ Ø ØØ#Ø Ø Ø!ó'$Ñ �‘[ô. 'ØØØØØØØØØØØØØØØØØó#
Ñˆˆ[ñ( Ü�S˜# Ñ+Ó,ˆÙÜ�C˜˜{Ñ*Ó+ˆàˆ�M×ÑØ˜U¨"Ð<Pð ô ñ ØˆH‰×ÑÜ%Ø.Øð 	ô 	
ô +¨1¨cÓ2€MÜ*¨1¨cÓ2€Mð ×Ñ�}Ô%Ø×Ñ�}Ô%ð #.€Cˆ�M�,ÑÜ)5€Cˆ�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Õ(ð	)ð "ÐØ˜q˜6Ö'�a¢Q’Ò'ò ˆÜ�b˜‘g—n‘nÓ& qÑ)¬3Õ/Ø˜3™ò �ðÜ˜”IØ,0Ñ)ñðñ Ø×#Ñ#Ó%ò 	>ˆCØ(¨Ñ-ò >�	Ø3=��H‘˜iÑ(¨Ò0ñ>ð	>ð �ÒØ˜3�Z‰
Ø	�8Ò	Ø�U‰
Ø	�8Ò	Ø�U‰
Ø	�6Ò	Øˆ
ð ó <IˆØˆ
Øˆ
Ø˜‘[ò 	3ˆEØ�S‰zÑ%¬#¨e°C©j«/¸AÓ*=Ø×!Ñ!¤# e¨C¡j£/Ô2Ø×!Ñ!¤# e¨C¡j£/Õ2ð	3ð �jÑ Ø×Ñ˜dÔ#ð �jÒ à�jÑ Ø×Ñ˜dÔ#ð �jÒ ô ˜
“Oˆ	Ü˜
“Oˆ	ä& y´&Ó9ò 
¼jØ”vó?
Ðñ ÜŸ
™
 9Ó-ˆIÜŸ	™	 )Ó,ˆIð ˜ ¨YÑ!6Ñ7Ñ7ˆIØ˜ ¨YÑ!6Ñ7Ñ7ˆIà�cŠzÙØ#‘Eä ŸJ™J¨	°IÑ(=ÔASÑ'SÓT‘EØ˜’ÙØ#‘Eä ŸJ™J¨	°IÑ(=ÔASÑ'SÓT‘EàˆEà% cÑ*ò 	ˆJØ16ˆC�‰M˜*Ñ% gÑ.Ø34ˆC�‰M˜*Ñ% iÑ0Ø49ˆC�‰M˜*Ñ% jÑ1ÚØ9:��H‘˜jÑ)¨+Ñ6Ø78��H‘˜jÑ)¨)Ñ4Ü9C��H‘˜jÑ)¨+Ñ6ä9C��H‘˜jÑ)¨+Ñ6Ø9:��H‘˜jÑ)¨+Ñ6ä'Øñ9��H‘˜jÑ)¨*Ò5ð	ð" �*ÓØ˜8‘}ò I�Ø—?‘? 3Ó'¨3Ò.Ò3DØ3<¸iÐ2H�C˜‘M #Ñ& wÒ/òIðu<Ið| €Jøô] ò Ü ×,Ñ,ð)óð ðüòp	 (øô "ò Úðús*   ÂgÜg'Üg'Ýg,çg$ç,	g9ç8g9)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   