#' @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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.