The Clean Shot

The Clean Shot

Tutoriales R

Cómo se hace: USG% vs TS% de los partidos con Omar Silverio

+ BoxSore de toda la 24/25 y base de datos Supermanager

Avatar de Ivo Villanueva
Ivo Villanueva
sep 19, 2025
∙ De pago

Vemos en este gráfico la relación entre el uso (USG%) y la eficiencia real de tiro (TS%) en los partidos que jugó Omar Silverio con Coviran Granada. La idea es: quién asume más y cómo impacta en su acierto incrustado en entre todos los jugadores de la ACB filtrados en USG% entre 4% y 40%; y entre 5% y 90% . Creamos una tabla con los jugadores de Granada que estuvieron por encima del 15.1% de USG% después, un gráfico con logos y fotos para que se vea de un vistazo donde estuvo cada quien.

Paquetes y tema

Como siempre empezamos escribimos los paquete y el tema personalizado, este es el mío y por supuesto puedes poner el de tu elección.

library(tidyverse)
library(cropcircles)
library(prismatic)
library(ggimage)
library(scales)
library(gt)
library (gtExtras)
Library (gtUtils) #para el tema savant()

theme_ivo <- function (font_size = 9) {
  theme_minimal(base_size = font_size, base_family = "Oswald") %+replace%
    theme(
      plot.background = element_rect(fill = 'white', color = "white"),
      panel.grid.minor = element_blank(),
      plot.title = element_text(hjust = 0, size = 14, face = 'bold'),
      plot.subtitle = element_text(color = 'gray65', hjust = 0, margin=margin(2.5,0,10,0), size = 11),
    )
}

gtUtils no está en CRAN , si no lo tienes descargalo aqui

remotes::install_github("andreweatherman/gtUtils")

Logos ACB

Cargamos los colores y los logos del año pasado

clubs <- read.csv("https://raw.githubusercontent.com/IvoVillanueva/logos_cuadrados_acb/refs/heads/main/acb_df.csv") %>%
  mutate(color = ifelse(abb == "RMB", "white", color))

CVS con los nobres y las fotos

En este csv están los en laces a las fotos de los jugadores entre otras muchas cosas. Es un dataframe extraido de los datos del Supermanager

valor_inicial <-  read_csv("https://raw.githubusercontent.com/IvoVillanueva/data/refs/heads/main/supermanager_csv/superManager.csv") %>%
  select(license_license_str15 = fullName, photo) %>%
  mutate(
    idfoto = str_extract(photo, "[0-9_+-]+"),
    license_license_str15 = str_squish(license_license_str15))

Partidos Granada con Silverio

Para poder analizar bien, tenemos que sacar exclusivamente los id_match (códigos de partidos) en los que jugó Silverio en Granada.

granadaCon <- pbp %>%
  select(id_match, license_licenseStr15, abb) %>%
  filter(abb == "COV" & license_licenseStr15 == "Omar Silverio") %>%
  group_by(id_match) %>%
  distinct() %>%
  pull(id_match)

Cálculo USG/TS + merge logos

Te gusta este contenido? Dame por favor un empujonsito con una suscripción de pago.

Continúa leyendo con una prueba gratuita de 7 días

Suscríbete a The Clean Shot para seguir leyendo este post y obtener 7 días de acceso gratis al archivo completo de posts.

¿Ya eres suscriptor de pago? Iniciar sesión
© 2025 The Clean Shot
Privacidad ∙ Términos ∙ Aviso de recolección
Crea tu SubstackDescargar la app
Substack es el hogar de la gran cultura