CoolFace
Apppublic

TJStatsApps/2025_decision_value

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes
batter_scatter.cpython-39.pyc92 linesDownload Raw Back to __pycache__
1a

2E��eb�#@s�ddlmZmZmZmZmZmZmZmZddl	Z	ddl	m3Z4ddlZddl
ZddlmZddlZddl
ZddlmZddlZddlmZddlmZddlmZddlZddlZddlmZddlmZ dd	l!m"Z"m#Z#ddlZdd5l$m%Z%ddl&Z&ej'ddgd�Z(ej'd
dgd�j)dd�Z*e*j+j,�-d�e*d<e*j.ddid�Z*e/e(j0�dddddd�dddddd�dddddd�dddddd�dddddd�dddd dd�d!d!dd dd�d"d"dd dd�d#d#dd dd�d$d$dddd�d%d%dddd�d&d&dd'dd�d(d(dddd�d)d)dddd�d*d*dd dd�d+d+dddd�d,d,dddd�d-d-dddd�d.d.dddd�d/d/dddd�d0d0dddd�d1d1dddd�d2d2dddd�d3d3dddd�d4d4dddd�d5�Z1ddddddd!d"d#d$d%d&d(d)d*d+d,d-d.d/d0d1d2d3d4d5�Z2gd6�Z3d7d8d9d:d;d<d=�Z4e(j5d>d?�j6d@dA�j)dd�d@d>gZ7e7�8d@�Z7dBdC�Z9e7d>�:�Z;e(j<�=gdD�gdE��e(_<e*j<�=gdD�gdE��e*_<dFge>e(j<�?��Z@dFgeAe>e(jB�?���ZCdGdH�ZDee�EejFjGe%dI�ejF�HdJdKiejF�IdL�e&jJ�K�ejF�LdM�ejF�MdN�e�Ne�OejPdOdPdI��e�QdQe�OejPdRdSdI�ejPdTdUdI�ejPdVdWdI�ejPdXdYdI�ejPdZd[dI���e�Qd\e�OejPd]d^dI�ejPd_d`dI�ejPdadbdI���e�Qdce�OejPdddedI���e�OejPdfdgdI��e�OejPdhdidI��e�OejPdjdkdI���e�Re�Se�Te�Re�UdlejVdmdne4dddd7ddo��e�UdlejVdpdqeCddddFddo��e�UdlejVdrdse@dddFdddt���e�Re�UduejWdvdwddx��e�UduejWdydzd{dx���e�Re�UdlejVd|d}e2d~ddd��e�UdlejVd�d�e2d�ddd��e�UdlejVd�d�e2d�ddd���e�Re�UduejWd�d�d�dx��e�UduejWd�d�d�dx���e�Re�UduejWd�d�d�dx��e�UduejWd�d�d�dx���e�Re�UduejWd�d�d�dx��e�UduejWd�d�d�dx���ejVd�d�e;ddddd��e�Re�Xd�d��e�Xd�d����e�YejZd�d�d�d�������eD�Z[dS)��)�App�Inputs�Outputs�Session�reactive�render�req�uiN)�load_dataset)�gaussian_kde)�MaxNLocator)�GridSpec)�zscore)�adjust_text)�
output_widget�
render_widget)�base_urlzsummary_batter.csv)�	index_colzsummary_batter_level.csvT��dropz, �levels�level)�columnsz6SweetSpot%F�	percent_1�d)�x_axis�title�flip_p�decimal_format�percent_adjustzMax Exit Velocity�string_0�z90th Percentile EVz
Exit VelocityzLaunch AngleZAVG�string_3ZOBPZSLGZOPSzK%zBB%zBB/K�string_1zBB%-K%zCSW%ZwOBAzHardHit%zBarrel%z7Z-Contact%zZ-Swing%zZone%zO-Swing%z8O-Contact%zSwing%zWhiff%zSwStr%)Zsweet_spot_percentZmax_launch_speedZlaunch_speed_90�launch_speed�launch_angle�avgZobpZslg�ops�	k_percent�9bb_percent�bb_over_k_percent�bb_minus_k_percentZcsw_percentZwoba_percentZhard_hit_percentZbarrel_percentZzone_contact_percentZzone_swing_percentZzone_percentZ
chase_percentZ
chase_contactZ
swing_percentZ10whiff_rateZ11swstr_rate)12z#FFB000z#648FFFz#785EF0z#DC267Fz#FE6100z#3D1EB2z#894D80z#16AA02z#B5592Bz#A3C1ED�MLB�AAA�AA�A+�A�ROK)r,r-r.r/r0r1�batter��by�	batter_id)�subsetcCs`|ddkrtjddd�S|ddkr0t�d�S|ddkrFt�d�S|dd	kr\t�d13�SdS)Nrrr!)�decimalsr"z%.3fr z%.0fr#z%.1f)�mtick�PercentFormatter�FormatStrFormatter��x�r=�MC:\Users\thoma\Google Drive\Python\Baseball\shiny\starlette\batter_scatter.py�decimal_format_assignes1415r?)�LFZRF�CFZTWP)�OFrBrBZDH�Allcs |tjdd��fdd���}dS)NzA histogram)�altc16s�17tjddd�t����t����td����������r�t�	�}g}t18dt|j��D]H}g}t19dt|j|��D] }|�
|j||���v�qz|�
|�q^dd�|D�}||j���k|j���k@|@}n�t�	�}||j���k|j���k@|j�����@}t|�d���v�r4td	�n||j�����jd20d�}d���v�rhtd	�n||j�����jd21d�}t|�|jdd
�jd22d�}tt���d�t���d}t���d}t���d}|���jd23t|d�d�|���d<|���jd24t|d�d�|���d<|���jd25t|d�d�|���d<tjdddd�\}	}26|�r�tj j!�"dt#dt#dt#dg�}t�$|����%�|����&��}nFtj j!�"dt#dt#dt#dg�}t�$|����%�|����&��}tj'j(||d�}
td�����rptj)������|dd�}tj)������|t#d|27���|d�}nFtj)������|ddd�}tj)������|t#d|28���|dd�}tjddd�|	�*d�|29�*d�td�g}t��+��tt|����,��r*t30t|��D�]}|���d|��-�k�s�|���d|d��.�k�s�|���d|��/�k�s�|���d|d��0�k�s�|���d|��1�k�s�|���d|d��2�k�s�t3|j4|���+�v�r|�
|31j5|���||���||j6|dd���q|32j7t8�9|����%�t���d d!d"�d"t���d t8�:|����&�t���d d!d"�d"t���d |����;�d#dd$d%d&�td�|33j<t8�9|����%�t���d d!d"�d"t���d t8�:|����&�t���d d!d"�d"t���d |����;�d#dd$d%d'�t|����%��tt���d �tt8�9|����%�t���d d!d"�d"t���d �|34�=t8�9|����%�t���d d"�d"t���d t8�:|����&�t���d d"�d"t���d �|35�>t8�9|����%�t���d d"�d"t���d t8�:|����&�t���d d"�d"t���d �t3d(d����D���?d)��?d*��@d+d�}|d,k�rd-}���d.k�r`|�d/t���d0�d1t���d0�d2����d3�}nB|�d/t���d0�d1t���d0�d2����d4����d5�36}|37jA|d6t|�d7d8d9�|38jBt���d:d;d8d9�|39jCt���d:d;d8d9�����	r|40�D��E�����	s�t����dk�	r�|�F�\}}d<|t����d<|41jG|t����dd�|t����dd�d=dd>�n|42�D��E�|43jHjI|
|44tJt���d?�d@dAdB�}|�Kt���d:�tdC�|	jLdDdDdE�t���d�45r|	jMd�N�t���d�46r&|	jMd�O�tdF�|47jP�QtJt���d?��|48jR�QtJt���d?��tdG�t|�tS|tTdHt#dIddJ�|49dK�|	j5d7dDdLd8dM�|	j5dNdDdOdPd8dQ�|	�U�dS)RN�	whitegrid�pastel)�style�palettezwe made it herercSsg|]}d|vrdnd�qS)TFr=��.0r<r=r=r>�50<listcomp>��z(server.<locals>.plot.<locals>.<listcomp>rC�niceTrrr3rr!)�pct�	ascendingZ_percent)�	rP)�figsize��)�cmap�normz#b3b3b3)r<�y�data�color)r<rVrWrX�ax�huerH)r<rVrWrXrG)r<rVrWrXrYrZrHrGz#F0F0F0�white�)�fontsizer�{�G�z�?��gray�dottedg�������?)�xmin�xmaxrVrX�	linewidth�	linestyle�alpha)�ymin�ymaxr<rXrdrerfcSsg|]}|�d��qS)�')�striprIr=r=r>rK%rL�[�]rizAAA, AA, A+, AZMiLB�2z Batter rz vs z (min. z PA)z
 PA, Max Age �)�g���Q��?zCentury Gothic)r]�fontnamer��Levelg�������?)�
borderaxespad�locr;�vertical�)rY�format�orientation�aspectzwe made it here5g{�G�z�?)�wspace�hspacezwe made it here6zwe made it here7�-�)�51arrowstylerX�lw)�52arrowpropsrYzBy: @TJStats)r<rV�srpg53ףp=54�?z	Data: MLB�right)r<rVr��harp)V�sns�	set_theme�print�level_id�n�team_id�position_id�group_level�!exit_velo_df_codes_summ_non_level�copy�range�lenr�append�paZage�n_age�exit_velo_df_codes_summ_batter�isin�parent_org_abb�reset_index�position�sort_values�batter_dict_stat�stat_x�stat_y�stat_z�rank�abs�plt�subplots�55matplotlib�colors�LinearSegmentedColormap�	from_list�colour_palette�	Normalize�min�max�cm�ScalarMappable�scatterplot�
set_facecolor�	player_id�names�n_percent_bot_x�n_percent_top_x�n_percent_bot_y�n_percent_top_y�n_percent_bot_z�n_percent_top_z�strr5�textr2�hlines�math�floor�ceil�mean�vlines�set_xlim�set_ylimrj�replace�	set_title�56set_xlabel�57set_ylabel�58get_legend�remove�get_legend_handles_labels�legend�figure�colorbarr?�	set_label�subplots_adjust�axes�invert_xaxis�invert_yaxis�xaxis�set_major_formatter�yaxisr�dict�tight_layout)�data_dfZ59turth_listr<Zturth_list_2rVZfinal_check_listZx_flipZy_flipZcbr_flip�figrY�cmap_huerU�sm�scatter�ts�iZtitle_levelZ60title_spot�h�l�cbar��inputr=r>�plots�&06162***"&"$63**646566@�����
:D@�D@�F@<�@<�*67:B6869@$70�zserver.<locals>.plot)rr�)r��output�sessionr�r=r�r>�server|s71r�)�hrefrGz+width:90%;margin: 0 auto;max-width: 1600px;z�72            h4 {73                margin-top: 1em;font-size:35px;74            }75            h2{76                font-size:25px;77            }78            ZTJStatsz%Baseball Analytics and Visualizations�Homezhome/z
Batter ChartsZSprayzspray/zDecision Valuezdecision_value/zDamage Modelz
damage_model/zBatter Scatterzbatter_scatter/z
EV vs LA Plotz	ev_angle/z
Goalie Chartsz
GSAx Timelinezgsax-timeline/zGSAx Leaderboardzgsax-leaderboard/zGSAx Comparisonzgsax-comparison/zTeam Chartsz
Team xG Rateszteam-xg-rates/ZGameszgames/ZAboutzabout/ZArticlesz	articles/r}r�zSelect Level)�width�size�multiple�selected�	selectizer�zSelect Teamr�zSelect Position)r�r�r�r�r��r�z79Minimum PA)�valuer�zMaximum Agermr�zX-Axisr()r�r�r�r�zY-Axisr)r�zColour-Bar Axisr*r�zTop 'n' Percentile X-Labelsr^r�zBottom 'n' Percentile X-Labelsr�zTop 'n' Percentile Y-Labelsr�zBottom 'n' Percentile Y-Labelsr�zTop 'n' Percentile Z-Labelsr�zBottom 'n' Percentile Z-Labelsr�zLabel Player)r�r�r�r�r�zToggle Namesr�zGroup Levelsr�Z1000px)�heightr�)\�shinyrrrrrrrr	�datasetsr80�pandas�pd�numpy�np�matplotlib.pyplot�pyplotr��seabornr��scipy.statsrr��matplotlib.tickerr�matplotlib.gridspecr
rr��81adjustTextr�tickerr8�shinywidgetsrr�	configurer�shinyswatch�read_csvr�r�r�rr��split�renamer�r+r�Zbatter_dict_stat_smallr�Z82level_dictr��drop_duplicatesZbatter_test_df�	set_indexr?�to_dict�batter_dictr�r��list�uniqueZ
position_list�sortedr�Z	team_listr��83page_fluid�tags�base�divrG�theme�simplex�h4r��84navset_tab�nav_control�a�nav_menu�row�layout_sidebar�
panel_sidebar�column�input_select�
input_numeric�input_switch�85panel_main�output_plot�batter_scatterr=r=r=r>�<module>s�(86��$87
y�888990������������������������G   ������9192��������