🏀 basket-viz
A Python library for creating interactive and customizable visualizations of basketball statistics.
♻️ Install from PyPI
To install basket-viz, simply run:
pip install basket-viz
⛹️♂️Getting Started
🔍 Docs
For a comprehensive overview of features check out the documentation.
🎯 Shot Charts
from basket_viz.court.shot_charts import ShotChart
shot_chart = ShotChart()
shot_chart.plot_shot_chart(df, player_name="NEDOVIC, NEMANJA")
⬡ ⬢ Aggergated Shot Charts
df_all = shot_chart.get_all_entity_hexbin_data(df)
shot_chart.plot_entity_hexbin_sized(
df_all,
offsets_col='offsets',
color_col='values_ratio',
size_col='values_all',
entity_name=player_name,
)
🔊 Radar Charts
The radar charts are the first kind that has layers. First layer being the chart, second being the image layer.
Standard Radar
radar_chart = RadarChart(
dataframe=df_player_stats,
columns=stats
)
radar_chart.plot_radar(player_name, title_sufix="\n Euroleague 2023/2024")
radar_chart.add_player_image(img_path)
radar_chart.display_chart()
NOTE: The circular image is not mandatory.
Comparison Radar
radar_chart = RadarChart(
dataframe=df_player_stats,
columns=stats
)
player_names = ["Howard, Markus", "James, Mike"]
colors = [basconia_blue, monaco_gold]
# Plot the radar comparison
radar_chart.compare_radars(
player_names=player_names,
line_colors=colors,
title="Euroleague 2023/2024 \n SCORRER COMPARISON"
)
# Add player images after plotting the radars
radar_chart.add_comparison_images(start_x=0.2, spacing=0.25, y_offset=-0.2)
# Display the chart
radar_chart.display_chart()
NOTE: The circular images are not mandatory.
🎢 Overlay
This module supports plotting static and animated overlay comparing the performance of individuals against the rest of the league.
from basket_viz.overlay.trajectory import PlotTrajectory
pt = PlotTrajectory()
players = ["Hezonja, Mario","James, Mike","Lessort, Mathias"]
colors = [real_madrid_gold, monaco_red, panathenaicos_green]
v_lines = {1.0: 'Short-Range', 4.0: 'Mid-Range', 6.75: 'Three-Point Line'}
pt.plot_trajectory_animated(normalized_df, players, colors, v_lines=v_lines, title=f"Scoring Profiles \n EUROLEAGUE 23/24")
🔴🟡🟢 Stat Grid
This module supports plotting stat heatmaps for all players per game.
It also comes with marking capability, to "zoom in" on particular players by highlighting them.
The shape of the values can be square or circle.
from basket_viz.stat_grid.season_stats import PlayerStatsHeatmap
ps = PlayerStatsHeatmap()
ps.set_params( highlight_params={
"backgroundcolor": basconia_red,
"fontweight": "bold",
"edgecolor": basconia_blue,
"lw": 3,
})
ps.plot_stat_heatmap(df_stats, team='BAS', player_bames=['moneke, chima'.upper()], num_games=15, stat=stat)
📈 Relationships
This module supports plotting relationships between different stats of players int the team.
To apply collor template that matches the brand of Euroleague teams use use_team_config=True.
from basket_viz.relationships.plotter import PlotRelationship
plotter = PlotRelationship(use_team_config=True,output_format='mp4')
plotter.plot_animated_relationship(
df,
team_filter="BAR",
display_only_last_names=True,
)
🙌 Contibuting
We are continuously working on improving this project and we welcome your contributions!
🐞 Open Issues
If you have any feature requests or bug reports, please don't hesitate to open an issue. This project is a work in progress, and your feedback is invaluable to us.
👨💻 Pick up Issues
You can also pick up an issue at any time and start working on it. Please make sure to follow our contribution guidelines to ensure a smooth collaboration process. Thank you for your support and happy coding!
Metadata
Release files for basket-viz 0.2.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| basket_viz-0.2.9.tar.gz | 36.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| basket_viz-0.2.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.8 kB
Release files / basket_viz-0.2.9.tar.gz
| Download URL | basket_viz-0.2.9.tar.gz |
|---|---|
| Size | 36.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cec600552fd94eeb68f5750f27dda79f9e19f9a2b1a9bd4577e85f2f297f0ab
|
|
BLAKE2b-256 checksum How to use checksums |
25541ee030d14709ddc1f020194c1e06772288159f90340e1811b4b7d3f37e70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.7
|
Release files / basket_viz-0.2.9-py3-none-any.whl
| Download URL | basket_viz-0.2.9-py3-none-any.whl |
|---|---|
| Size | 39.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a27d343a321bf7afd5eabd056340cd1f15589046c12d26e68688d87e4c0ab552
|
|
BLAKE2b-256 checksum How to use checksums |
bd64df19d742ac24a84063e6d2480f82c9f83c8c8954bde92faeb2dbce248a49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.7
|