sdvplot-js docs · View source

Shot charts

The @sportsdataverse/sdvplot/shots kit, as blazing-the-nets' Brooklyn dashboard draws it: shots binned into hexagons or squares and compared with the league in each cell, the court's zones, the shooting signature, and attempts by distance and by side, all on one shared cursor. The shots are Brooklyn's first 2000 of 2025-26 (24 games, 22 October to 18 December 2025) and the league context is all 219,159 regular-season shots of 2025-26, from the sportsdataverse-data nba_stats_shots release.

Which shots

Games keeps the shots of some of Brooklyn's 24 games, and Shots keeps twos or threes. Every chart on the page redraws from what is left; the league context stays the whole league.

shots from games: made (), of them threes.

The court

Each hexagon or square is sized by how many shots Brooklyn took there and coloured by its FG% minus the league's, shrunk toward the league by 25 attempts so a 1-for-1 cell does not shout. Cells picks the shape: hexagons of 1.5 ft (blazing-the-nets main) or 1 ft, squares of a 1 ft hexagon's area, or the court's zones. Compare with picks the league figure: the league in the same cell (cellsVsLeague), or the league at the same distance in its own palette, unshrunk (cellsVsDistance, blazing-the-nets master; hexagons only). Hover a hexagon or square for its four lines: zone, makes and attempts, the league's FG% and the difference, and the mean distance. The zones are coloured the same way but not sized, and each is labelled with its makes and attempts; a zone's tip gives its name, makes and attempts, and FG%. The ring around the hoop follows the distance the charts below are pointing at.

The shooting signature

FG% by distance, drawn as wide as the share of shots taken from there and coloured by FG% minus the league's at that distance (the dashed line). Hover it for one distance; the court's ring and the charts below follow.

By distance and by side

The share of attempts from each foot (with a readout), FG% in 3 ft bins, and attempts left, centre and right of the hoop by distance. They share one cursor: point at any of them and every chart on the page marks that distance.

A caveat in the data: of these threes, all of them corner threes, carry a shot_distance of 0 in the release, so they count at 0 ft in the charts below and in a cell's mean distance (their positions, and so the court above, are right).