R/make_scatter_plot.R

#' @title Make Scatter Plot
#' @description plots scatter plot with given x,y variables and season
#' @keywords NBA stat.nba.com basketball reference
#' @import ggplot2
#' @import viridis
#' @importFrom magrittr %>%
#' @export
#' @examples
#' make_scatter_plot('Stephen Curry', '2017-18')
#'

#input year as string --> '2017-18'
make_scatter_plot <- function(stats_merged = NULL, xvar, yvar, color_var, year, highlight_players,
                              min_filter_1 = 'fga', min_filter_2 = 'gp',
                              min_1 = 0, min_2 = 0, alpha_scale = 0.5, title = '',
                              x_lab = xvar, y_lab = yvar, legend_lab = color_var) {

  # year_num <- as.numeric(strsplit(year,'-')[[1]][1]) + 1

  if (is.null(stats_merged)) {

    stats_merged <- get_clean_stats_combined(season = year)

  }

  stats_merged <- stats_merged %>%
    dplyr::filter(get(min_filter_1) >= min_1) %>%
    dplyr::filter(get(min_filter_2) >= min_2)

  base_plot <- ggplot() +
    geom_point(aes_string(x=xvar, y=yvar, alpha=alpha_scale),color='gray',data = subset(stats_merged, !player_name %in% highlight_players)) +
    geom_point(aes_string(x=xvar, y=yvar, color=color_var), data = subset(stats_merged, player_name %in% highlight_players)) +
    geom_text(aes(x=get(xvar), y=get(yvar),label=ifelse(player_name %in% highlight_players, player_name,''),
                  hjust=-.1,vjust=0), data = stats_merged, color='white', size=2.5) +
    scale_color_viridis() +
    theme_minimal() +
    guides(fill=guide_legend(color_var), alpha = FALSE) +
    theme_nba_dark() +
    labs(title = title,
         x = x_lab,
         y = y_lab,
         color = legend_lab)

  return(base_plot)

}
emilykuehler/basketballstatsR documentation built on May 31, 2019, 10:01 a.m.