Ë
    {�hP  ã                   ó  — d dl mZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ  ej                  d«      Z ej                  d«      Z ej                  d«      Zd	„ Zdd
„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Z	 	 	 	 	 	 	 	 	 	 dd„Zy)é    )ÚNumber)Ú
exceptionsÚoptional_importsN)Ú
graph_objs)Úmake_subplotsÚpandasÚnumpyzscipy.statsc                 óº  — t         j                  | t        «      }t         j                  |«      }t         j	                  |«      }t         j                  |dd¬«      }t         j                  |dd¬«      }t         j                  |dd¬«      }||z
  }d|z  }t         j                  ||||z
  k\     «      }	t         j	                  ||||z   k     «      }
||||||	|
d	œS )
z6
    Calculate statistics for use in violin plot.
    é2   Úlinear)Úinterpolationé   ÚloweréK   Úhigherç      ø?)ÚminÚmaxÚq1Úq2Úq3Úd1Úd2)ÚnpÚasarrayÚfloatr   r   Ú
percentile)ÚdataÚxÚvals_minÚvals_maxr   r   r   ÚiqrÚwhisker_distr   r   s              ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/plotly/figure_factory/_violin.pyÚ
calc_statsr%      s×   € ô 	�
‰
�4œÓ€AÜ�v‰v�a‹y€HÜ�v‰v�a‹y€HÜ	�‰�q˜"¨HˆÓ	5€BÜ	�‰�q˜"¨GˆÓ	4€BÜ	�‰�q˜"¨HˆÓ	5€BØ
ˆr‰'€CØ˜‘9€Lô 
�‰��!˜˜\Ñ)Ñ*Ñ+Ó	,€BÜ	�‰��!˜˜\Ñ)Ñ*Ñ+Ó	,€BàØØØØØØñð ó    c                 ó,  — t        t        | «      «      D �cg c]4  }ddj                  | |   «      z   dz   dj                  ||   «      z   dz   ‘Œ6 }}t        j                  | |dd|d|t        j
                  j                  d|d	¬
«      dd¬«
      S c c}w )zG
    Produces a sideways probability distribution fig violin plot.
    z(pdf(y), y)=(ú{:0.2f}z, ú)ÚlinesÚ Útonextxg      à?Úspline)ÚwidthÚcolorÚshapeÚtext)
r   ÚyÚmodeÚnamer1   ÚfillÚ	fillcolorÚlineÚ	hoverinfoÚopacity)ÚrangeÚlenÚformatr   ÚScatterÚscatterÚLine)r   r2   r6   Ú	linecolorÚir1   s         r$   Úmake_half_violinrB   )   s¬   € ô ”s˜1“v“öàð 	˜)×*Ñ*¨1¨Q©4Ó0Ñ0°4Ñ7¸)×:JÑ:JÈ1ÈQÉ4Ó:PÑPÐSVÓVð€Dð ô
 ×ÑØ
Ø
ØØØØØÜ×Ñ×$Ñ$¨3°iÀxÐ$ÓPØØôð ùòs   —9Bc           	      óš   — t        j                  | | |z
  gt        | «      z  t         j                  j	                  |d¬«      dddd¬«      S )z2
    Returns a rugplot fig for a violin plot.
    zline-ew-open)r/   ÚsymbolÚmarkersr+   Fr2   )r2   r   Úmarkerr3   r4   Ú
showlegendr8   )r   r=   r;   r>   ÚMarker)ÚvalsÚpdf_maxÚdistancer/   s       r$   Úmake_violin_rugplotrL   @   sU   € ô ×ÑØ
Øˆ8�hÑÐ
¤# d£)Ñ
+Ü×!Ñ!×(Ñ(¨u¸^Ð(ÓLØØØØôð r&   c           
      ó|   — t        j                  ddg| |gddt         j                  j                  dd¬«      ¬«      S )z?
    Returns the scatterplot fig of most of a violin plot.
    r   r+   r*   r   ú
rgb(0,0,0)©r.   r/   )r   r2   r4   r3   r7   )r   r=   r>   r?   )r   r   s     r$   Úmake_non_outlier_intervalrP   O   sD   € ô ×ÑØˆaˆ&Øˆrˆ(ØØÜ×Ñ×$Ñ$¨3°lÐ$ÓCôð r&   c           
      óÊ   — t        j                  ddg| |gddj                  | «      z   ddj                  |«      z   gdt         j                  j	                  dd¬«      d	¬
«      S )z@
    Makes the upper and lower quartiles for a violin plot.
    r   zlower-quartile: r(   zupper-quartile: r*   é   rN   rO   r1   )r   r2   r1   r3   r7   r8   )r   r=   r<   r>   r?   )r   r   s     r$   Úmake_quartilesrS   \   sq   € ô ×ÑØˆaˆ&Øˆrˆ(à ×!1Ñ!1°"Ó!5Ñ5Ø ×!1Ñ!1°"Ó!5Ñ5ð
ð Ü×Ñ×$Ñ$¨1°LÐ$ÓAØô
ð 
r&   c           
      óx   — t        j                  dg| gddj                  | «      z   gdt        dd¬«      d¬	«      S )
z;
    Formats the 'median' hovertext for a violin plot.
    r   zmedian: r(   rE   Úsquarezrgb(255,255,255))rD   r/   r1   )r   r2   r1   r3   rF   r8   )r   r=   r<   Údict)r   s    r$   Úmake_medianrW   m   sH   € ô ×ÑØˆ#Øˆ$Ø˜9×+Ñ+¨BÓ/Ñ/Ð0ØÜ˜8Ð+=Ô>Øôð r&   c           
      óT   — t         j                  j                  | |dddddd¬«      }|S )z-
    Makes the x-axis for a violin plot.
    Fr+   )Útitler:   ÚshowgridÚzerolineÚshowlineÚmirrorÚticksÚshowticklabels)r   ÚlayoutÚXAxis)Úxaxis_titleÚxaxis_rangeÚxaxiss      r$   Ú
make_XAxisre   {   s>   € ô ×Ñ×#Ñ#ØØØØØØØØð $ó 	€Eð €Lr&   c           
      óT   — t         j                  j                  | ddddddd¬«      }|S )z-
    Makes the y-axis for a violin plot.
    TrR   F)rY   r_   Ú	autorangeÚticklenr\   r[   rZ   r]   )r   r`   ÚYAxis)Úyaxis_titleÚyaxiss     r$   Ú
make_YAxisrl   Œ   s>   € ô ×Ñ×#Ñ#ØØØØØØØØð $ó 	€Eð €Lr&   c                 ó‚  — t         j                  | t        «      } t        | «      d   }t        | «      d   }t        | «      d   }t        | «      d   }t        | «      d   }t        | «      d   }t        | «      d   }	t        j                  | «      }
t         j                  ||d«      } |
|«      }t         j                  |«      }|rd	|z  d
z  nd}| |z
  dz
  |dz   g}t        | ||¬«      t        |||¬«      t        ||	«      t        ||«      t        |«      g}|r|j                  t        | |||¬«      «       ||fS )z?
    Refer to FigureFactory.create_violin() for docstring.
    r   r   r   r   r   r   r   éd   g       @é
   r   gš™™™™™¹?)r6   )rK   r/   )r   r   r   r%   Úscipy_statsÚgaussian_kdeÚlinspacer   rB   rP   rS   rW   ÚappendrL   )rI   r6   Úrugplotr    r!   r   r   r   r   r   ÚpdfÚxxÚyyÚmax_pdfrK   Úplot_xrangeÚ	plot_datas                    r$   Ú
violinplotr{   �   sM  € ô �:‰:�dœEÓ"€Dä˜$Ó Ñ&€HÜ˜$Ó Ñ&€HÜ	�DÓ	˜$Ñ	€BÜ	�DÓ	˜$Ñ	€BÜ	�DÓ	˜$Ñ	€BÜ	�DÓ	˜$Ñ	€BÜ	�DÓ	˜$Ñ	€Bô ×
"Ñ
" 4Ó
(€Cä	�‰�X˜x¨Ó	-€Bá	ˆR‹€BÜ�f‰f�R‹j€Gá'.��g‘ Ò#°A€Hà�8˜hÑ&¨Ñ,¨g¸©mÐ<€Kä˜"˜˜b¨IÔ6Ü˜˜R¨9Ô5Ü! " bÓ)Ü�r˜2ÓÜ�B‹ð€Iñ Ø×ÑÜ  g¸È	ÔRô	
ð �kÐ!Ð!r&   c                 óø  — g }| |   D ]  }||vsŒ|j                  |«       Œ |r|j                  «        | j                  |g«      }t        |«      }t	        d|ddd¬«      }d}t        |«      D ]À  \  }}t        j                  |j                  |«      |   t        «      }|t        |«      k\  rd}t        |||   |¬«      \  }}t        j                  «       }|D ]  }|j                  |d|dz   «       Œ |dz  }|d   j                  d	j                  |dz   «      t!        ||   |«      i«       ŒÂ |d   j                  d
j                  d«      t#        d«      i«       |d   j                  |
ddd||	¬«       |S )úu
    Refer to FigureFactory.create_violin() for docstring.

    Returns fig for violin plot without colorscale.

    é   Tçš™™™™™™?F©ÚrowsÚcolsÚshared_yaxesÚhorizontal_spacingÚ
print_gridr   ©r6   rt   r`   úxaxis{}úyaxis{}r+   Úclosest©rY   rG   Ú	hovermodeÚautosizeÚheightr.   )rs   ÚsortÚgroupbyr;   r   Ú	enumerater   r   Ú	get_groupr   r{   r   ÚLayoutÚappend_traceÚupdater<   re   rl   )r   Údata_headerÚgroup_headerÚcolorsÚuse_colorscaleÚgroup_statsrt   rŽ   r�   r.   rY   Ú
group_namer4   ÚgbÚLÚfigÚcolor_indexÚkÚgrrI   rz   ry   r`   Úitems                           r$   Úviolin_no_colorscaler¢   Ä   s§  € ð* €JØ�\Ñ"ò $ˆØ�zÒ!Ø×Ñ˜dÕ#ð$ñ Ø�‰Ôà	�‰�|�nÓ	%€BÜˆJ‹€Aä
Ø�Q T¸eÐPUô€Cð €KÜ˜:Ó&ò 
‰ˆˆ2Ü�z‰z˜"Ÿ,™, rÓ*¨;Ñ7¼Ó?ˆØœ#˜f›+Ò%ØˆKÜ!+Ø˜F ;Ñ/¸ô"
Ñˆ	�;ô ×"Ñ"Ó$ˆàò 	-ˆDØ×Ñ˜T 1 a¨!¡eÕ,ð	-à�qÑˆð 	ˆH‰×ÑØ×Ñ˜a !™eÓ$¤j°¸A±ÀÓ&LÐMõ	
ð
ð& ˆ�M×Ñ˜)×*Ñ*¨1Ó-¬z¸"«~Ð>Ô?Øˆ�M×ÑØØØØØØð ô ð €Jr&   c                 ó   — g }| |   D ]  }||vsŒ|j                  |«       Œ |r|j                  «        |D ]  }||vsŒt        j                  d«      ‚ | j	                  |g«      }t        |«      }t        d|ddd¬«      }t        j                  |d   t        j                  «      }t        j                  |d   t        j                  «      }g }|D ]  }|j                  ||   «       Œ t        |«      }t        |«      }t        |«      D ]Ü  \  }}t        j                  |j                  |«      |   t         «      }||   |z
  ||z
  z  }t        j"                  |||«      }t%        |dj'                  |«      |¬	«      \  }}t)        j*                  «       }|D ]  }|j-                  |d|dz   «       Œ |d
   j/                  dj'                  |dz   «      t1        ||   |«      i«       ŒÞ t)        j2                  dgdgdt5        d||d|d   gd|d   ggd¬«      d¬«      } |j-                  | d|«       |d
   j/                  dj'                  d«      t7        d«      i«       |d
   j/                  |
ddd||	¬«       |S )zr
    Refer to FigureFactory.create_violin() for docstring.

    Returns fig for violin plot with colorscale.

    zRAll values/groups in the index column must be represented as a key in group_stats.r~   Tr   Fr€   r   zrgb{}r†   r`   r‡   rE   é   )ÚsizeÚcminÚcmaxÚ
colorscaleÚ	showscale)r   r2   r3   rF   rG   rˆ   r+   r‰   rŠ   )rs   rŽ   r   ÚPlotlyErrorr�   r;   r   ÚclrsÚcolor_parserÚunlabel_rgbr   r   r�   r   r   r‘   r   Úfind_intermediate_colorr{   r<   r   r’   r“   r”   re   r=   rV   rl   )!r   r•   r–   r—   r˜   r™   rt   rŽ   r�   r.   rY   rš   r4   Úgroupr›   rœ   r�   ÚlowcolorÚ	highcolorÚgroup_stats_valuesÚkeyÚ	max_valueÚ	min_valuerŸ   r    rI   ÚintermedÚintermed_colorrz   ry   r`   r¡   Útrace_dummys!                                    r$   Úviolin_colorscaler¹     sÈ  € ð* €JØ�\Ñ"ò $ˆØ�zÒ!Ø×Ñ˜dÕ#ð$ñ Ø�‰Ôð ò ˆØ˜Ò#Ü×(Ñ(ð+óð ðð 
�‰�|�nÓ	%€BÜˆJ‹€Aä
Ø�Q T¸eÐPUô€Cô
 × Ñ  ¨¡¬D×,<Ñ,<Ó=€HÜ×!Ñ! &¨¡)¬T×-=Ñ-=Ó>€Ið ÐØò 4ˆØ×!Ñ! +¨cÑ"2Õ3ð4ô Ð&Ó'€IÜÐ&Ó'€Iä˜:Ó&ò 
‰ˆˆ2Ü�z‰z˜"Ÿ,™, rÓ*¨;Ñ7¼Ó?ˆð   ‘O iÑ/°IÀ	Ñ4IÑJˆÜ×5Ñ5°hÀ	È8ÓTˆä!+Ø˜GŸN™N¨>Ó:ÀGô"
Ñˆ	�;ô ×"Ñ"Ó$ˆàò 	-ˆDØ×Ñ˜T 1 a¨!¡eÕ,ð	-àˆH‰×ÑØ×Ñ˜a !™eÓ$¤j°¸A±ÀÓ&LÐMõ	
ð
ô$ ×$Ñ$Øˆ#Øˆ#ØÜØØØØ˜F 1™I˜¨¨F°1©I¨Ð7Øô
ð ô€Kð ×Ñ�[ ! QÔ'ð ˆ�M×Ñ˜)×*Ñ*¨1Ó-¬z¸"«~Ð>Ô?Øˆ�M×ÑØØØØØØð ô ð €Jr&   c                 ó
  — g }| |   D ]  }||vsŒ|j                  |«       Œ |r|j                  «        |D ]  }||vsŒt        j                  d«      ‚ | j	                  |g«      }t        |«      }t        d|ddd¬«      }t        |«      D ]«  \  }}t        j                  |j                  |«      |   t        «      }t        |||   |¬«      \  }}t        j                  «       }|D ]  }|j                  |d|dz   «       Œ |d   j!                  d	j#                  |dz   «      t%        ||   |«      i«       Œ­ |d   j!                  d
j#                  d«      t'        d«      i«       |d   j!                  |
ddd||	¬«       |S )r}   zMIf colors is a dictionary, all the group names must appear as keys in colors.r~   Tr   Fr€   r†   r`   r‡   rˆ   r+   r‰   rŠ   )rs   rŽ   r   rª   r�   r;   r   r�   r   r   r‘   r   r{   r   r’   r“   r”   r<   re   rl   )r   r•   r–   r—   r˜   r™   rt   rŽ   r�   r.   rY   rš   r4   r¯   r›   rœ   r�   rŸ   r    rI   rz   ry   r`   r¡   s                           r$   Úviolin_dictr»   n  sµ  € ð* €JØ�\Ñ"ò $ˆØ�zÒ!Ø×Ñ˜dÕ#ð$ñ Ø�‰Ôð ò ˆØ˜ÒÜ×(Ñ(ð"óð ðð 
�‰�|�nÓ	%€BÜˆJ‹€Aä
Ø�Q T¸eÐPUô€Cô ˜:Ó&ò 
‰ˆˆ2Ü�z‰z˜"Ÿ,™, rÓ*¨;Ñ7¼Ó?ˆÜ!+¨D¸FÀ2¹JÐPWÔ!XÑˆ	�;Ü×"Ñ"Ó$ˆàò 	-ˆDØ×Ñ˜T 1 a¨!¡eÕ,ð	-ð 	ˆH‰×ÑØ×Ñ˜a !™eÓ$¤j°¸A±ÀÓ&LÐMõ	
ð
ð ˆ�M×Ñ˜)×*Ñ*¨1Ó-¬z¸"«~Ð>Ô?Øˆ�M×ÑØØØØØØð ô ð €Jr&   c                 ó~  — t        |t        «      rt        j                  |d«      }nt        j                  |d«      }|�€^t        | t
        «      rJt        | «      dk  rt        j                  d«      ‚t        d„ | D «       «      st        j                  d«      ‚t        rbt        | t        j                  j                  j                  «      r4|€t        j                  d«      ‚| |   j                  j                  «       } t!        | |d   |¬«      \  }}t#        j$                  |
dt"        j&                  j)                  d	¬
«      |d|	t+        d|«      t-        d«      d¬«	      }|d   j/                  t        ddd¬«      «       t#        j0                  ||¬«      }|S t        | t        j                  j                  j                  «      st        j                  d«      ‚|€t        j                  d«      ‚|du r>t        |t        «      rt3        | |||||||||	|
«      }|S t5        | |||||||||	|
«      }|S t        |t        «      rt        j                  d«      ‚t        |«      dk  rt        j                  d«      ‚t        |t        «      st        j                  d«      ‚t7        | |||||||||	|
«      }|S )a}  
    **deprecated**, use instead the plotly.graph_objects trace
    :class:`plotly.graph_objects.Violin`.

    :param (list|array) data: accepts either a list of numerical values,
        a list of dictionaries all with identical keys and at least one
        column of numeric values, or a pandas dataframe with at least one
        column of numbers.
    :param (str) data_header: the header of the data column to be used
        from an inputted pandas dataframe. Not applicable if 'data' is
        a list of numeric values.
    :param (str) group_header: applicable if grouping data by a variable.
        'group_header' must be set to the name of the grouping variable.
    :param (str|tuple|list|dict) colors: either a plotly scale name,
        an rgb or hex color, a color tuple, a list of colors or a
        dictionary. An rgb color is of the form 'rgb(x, y, z)' where
        x, y and z belong to the interval [0, 255] and a color tuple is a
        tuple of the form (a, b, c) where a, b and c belong to [0, 1].
        If colors is a list, it must contain valid color types as its
        members.
    :param (bool) use_colorscale: only applicable if grouping by another
        variable. Will implement a colorscale based on the first 2 colors
        of param colors. This means colors must be a list with at least 2
        colors in it (Plotly colorscales are accepted since they map to a
        list of two rgb colors). Default = False
    :param (dict) group_stats: a dictionary where each key is a unique
        value from the group_header column in data. Each value must be a
        number and will be used to color the violin plots if a colorscale
        is being used.
    :param (bool) rugplot: determines if a rugplot is draw on violin plot.
        Default = True
    :param (bool) sort: determines if violins are sorted
        alphabetically (True) or by input order (False). Default = False
    :param (float) height: the height of the violin plot.
    :param (float) width: the width of the violin plot.
    :param (str) title: the title of the violin plot.

    Example 1: Single Violin Plot

    >>> from plotly.figure_factory import create_violin
    >>> import plotly.graph_objs as graph_objects

    >>> import numpy as np
    >>> from scipy import stats

    >>> # create list of random values
    >>> data_list = np.random.randn(100)

    >>> # create violin fig
    >>> fig = create_violin(data_list, colors='#604d9e')

    >>> # plot
    >>> fig.show()

    Example 2: Multiple Violin Plots with Qualitative Coloring

    >>> from plotly.figure_factory import create_violin
    >>> import plotly.graph_objs as graph_objects

    >>> import numpy as np
    >>> import pandas as pd
    >>> from scipy import stats

    >>> # create dataframe
    >>> np.random.seed(619517)
    >>> Nr=250
    >>> y = np.random.randn(Nr)
    >>> gr = np.random.choice(list("ABCDE"), Nr)
    >>> norm_params=[(0, 1.2), (0.7, 1), (-0.5, 1.4), (0.3, 1), (0.8, 0.9)]

    >>> for i, letter in enumerate("ABCDE"):
    ...     y[gr == letter] *=norm_params[i][1]+ norm_params[i][0]
    >>> df = pd.DataFrame(dict(Score=y, Group=gr))

    >>> # create violin fig
    >>> fig = create_violin(df, data_header='Score', group_header='Group',
    ...                    sort=True, height=600, width=1000)

    >>> # plot
    >>> fig.show()

    Example 3: Violin Plots with Colorscale

    >>> from plotly.figure_factory import create_violin
    >>> import plotly.graph_objs as graph_objects

    >>> import numpy as np
    >>> import pandas as pd
    >>> from scipy import stats

    >>> # create dataframe
    >>> np.random.seed(619517)
    >>> Nr=250
    >>> y = np.random.randn(Nr)
    >>> gr = np.random.choice(list("ABCDE"), Nr)
    >>> norm_params=[(0, 1.2), (0.7, 1), (-0.5, 1.4), (0.3, 1), (0.8, 0.9)]

    >>> for i, letter in enumerate("ABCDE"):
    ...     y[gr == letter] *=norm_params[i][1]+ norm_params[i][0]
    >>> df = pd.DataFrame(dict(Score=y, Group=gr))

    >>> # define header params
    >>> data_header = 'Score'
    >>> group_header = 'Group'

    >>> # make groupby object with pandas
    >>> group_stats = {}
    >>> groupby_data = df.groupby([group_header])

    >>> for group in "ABCDE":
    ...     data_from_group = groupby_data.get_group(group)[data_header]
    ...     # take a stat of the grouped data
    ...     stat = np.median(data_from_group)
    ...     # add to dictionary
    ...     group_stats[group] = stat

    >>> # create violin fig
    >>> fig = create_violin(df, data_header='Score', group_header='Group',
    ...                     height=600, width=1000, use_colorscale=True,
    ...                     group_stats=group_stats)

    >>> # plot
    >>> fig.show()
    Úrgbr   zRIf data is a list, it must be nonempty and contain either numbers or dictionaries.c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­w)N)Ú
isinstancer   )Ú.0Úelements     r$   ú	<genexpr>z create_violin.<locals>.<genexpr>P  s   è ø€ ÒG°w”z '¬6×2ÑGùs   ‚z0If data is a list, it must contain only numbers.zVdata_header must be the column name with the desired numeric data for the violin plot.r†   Fé   )r¥   r+   r‰   )	rY   rŒ   Úfontr�   rG   r.   rd   rk   r‹   rk   )r\   r_   r^   )r   r`   zGError. You must use a pandas DataFrame if you are using a group header.zFThe colors param cannot be a dictionary if you are using a colorscale.r¤   zHcolors must be a list with at least 2 colors. A Plotly scale is allowed.z,Your group_stats param must be a dictionary.)r¿   rV   r«   Úvalidate_colors_dictÚvalidate_colorsÚlistr;   r   rª   ÚallÚpdÚcoreÚframeÚ	DataFrameÚvaluesÚtolistr{   r   r’   r`   ÚFontre   rl   r”   ÚFigurer»   r¢   r¹   )r   r•   r–   r—   r˜   r™   rt   rŽ   r�   r.   rY   Úvalid_colorsrz   ry   r`   r�   s                   r$   Úcreate_violinrÒ   ¶  sé  € ôV �&œ$ÔÜ×0Ñ0°¸Ó?‰ä×+Ñ+¨F°EÓ:ˆð ÑÜ�dœDÔ!Ü�4‹y˜AŠ~Ü ×,Ñ,ð/óð ô ÑGÀ$ÔGÔGÜ ×,Ñ,ØIóð õ ”*˜T¤2§7¡7§=¡=×#:Ñ#:Ô;ØÐ"Ü ×,Ñ,ð'óð ð ˜Ñ$×+Ñ+×2Ñ2Ó4ˆDô ",Ø˜L¨™O°Wô"
Ñˆ	�;ô ×"Ñ"ØØÜ×"Ñ"×'Ñ'¨RÐ'Ó0ØØØÜ˜R Ó-Ü˜R“.Øô

ˆð 	ˆw‰×Ñœt¨UÀ5ÐPRÔSÔTä×Ñ Y°vÔ>ˆàˆ
ô ˜$¤§¡§¡× 7Ñ 7Ô8Ü×(Ñ(ð óð ð ÐÜ×(Ñ(ð,óð ð ˜UÑ"Ü˜,¬Ô-ä!ØØØ Ø Ø"ØØØØØØó�ð �
ä*ØØØ Ø Ø"ØØØØØØó�ð �
ä˜,¬Ô-Ü ×,Ñ,ð*óð ô �<Ó  1Ò$Ü ×,Ñ,ð/óð ô ˜k¬4Ô0Ü ×,Ñ,ØEóð ô $ØØØØØØØØØØØóˆCð ˆJr&   )ú#1f77b4zrgb(0, 0, 0))rÓ   )rÓ   T)
NNNFNTFiÂ  iX  zViolin and Rug Plot)Únumbersr   Úplotlyr   r   Úplotly.colorsr—   r«   Úplotly.graph_objsr   Úplotly.subplotsr   Ú
get_modulerÉ   r   rp   r%   rB   rL   rP   rS   rW   re   rl   r{   r¢   r¹   r»   rÒ   © r&   r$   ú<module>rÛ      s¶   ðÝ ç /Ý Ý (Ý )à Ð× Ñ  Ó*€Ø Ð× Ñ  Ó)€Ø)Ð×)Ñ)¨-Ó8€òó8ó.ò
òò"òò"ó"$"òN@òFdòNEðT ØØØØØØ	ØØ
Ø
ôPr&   