#' nba geom
#' @author Arie Spirgel
#' @import RCurl
#' @import png
#' @export geom_nba
#'
#' @export
# most of the (original) code is from emoGG https://github.com/dill/emoGG, which I then took
# from https://github.com/ricardo-bion/ggtech
nbaGrob <- function(x, y, size, theme, geom_key = list(
heat = "https://upload.wikimedia.org/wikipedia/en/thumb/f/fb/Miami_Heat_logo.svg/651px-Miami_Heat_logo.svg.png",
hawks = "https://upload.wikimedia.org/wikipedia/en/thumb/2/24/Atlanta_Hawks_logo.svg/768px-Atlanta_Hawks_logo.svg.png",
celtics = "https://upload.wikimedia.org/wikipedia/en/thumb/8/8f/Boston_Celtics.svg/375px-Boston_Celtics.svg.png",
nets = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Brooklyn_Nets_newlogo.svg/680px-Brooklyn_Nets_newlogo.svg.png",
hornets = "https://upload.wikimedia.org/wikipedia/en/thumb/c/c4/Charlotte_Hornets_%282014%29.svg/450px-Charlotte_Hornets_%282014%29.svg.png",
bulls = "https://upload.wikimedia.org/wikipedia/en/thumb/6/67/Chicago_Bulls_logo.svg/306px-Chicago_Bulls_logo.svg.png",
cavaliers = "https://upload.wikimedia.org/wikipedia/en/thumb/f/f7/Cleveland_Cavaliers_2010.svg/443px-Cleveland_Cavaliers_2010.svg.png",
mavericks = "https://upload.wikimedia.org/wikipedia/en/thumb/9/97/Dallas_Mavericks_logo.svg/365px-Dallas_Mavericks_logo.svg.png",
nuggets = "https://upload.wikimedia.org/wikipedia/en/thumb/7/76/Denver_Nuggets.svg/768px-Denver_Nuggets.svg.png",
pistons = "https://upload.wikimedia.org/wikipedia/en/thumb/1/1e/Detroit_Pistons_logo.svg/450px-Detroit_Pistons_logo.svg.png",
warriors = "https://upload.wikimedia.org/wikipedia/en/thumb/0/01/Golden_State_Warriors_logo.svg/542px-Golden_State_Warriors_logo.svg.png",
rockets = "https://upload.wikimedia.org/wikipedia/en/thumb/2/28/Houston_Rockets.svg/615px-Houston_Rockets.svg.png",
pacers = "https://upload.wikimedia.org/wikipedia/en/thumb/1/1b/Indiana_Pacers.svg/768px-Indiana_Pacers.svg.png",
clippers = "https://upload.wikimedia.org/wikipedia/en/thumb/b/bb/Los_Angeles_Clippers_%282015%29.svg/768px-Los_Angeles_Clippers_%282015%29.svg.png",
lakers = "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/LosAngeles_Lakers_logo.svg/768px-LosAngeles_Lakers_logo.svg.png",
bucks = "https://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Milwaukee_Bucks_logo.svg/726px-Milwaukee_Bucks_logo.svg.png",
timberwolves = "https://upload.wikimedia.org/wikipedia/en/d/d2/Minnesota_Timberwolves_logo.png",
grizzlies = "https://upload.wikimedia.org/wikipedia/en/thumb/f/f1/Memphis_Grizzlies.svg/304px-Memphis_Grizzlies.svg.png",
pelicans = "https://upload.wikimedia.org/wikipedia/en/thumb/0/0d/New_Orleans_Pelicans_logo.svg/768px-New_Orleans_Pelicans_logo.svg.png",
knicks = "https://upload.wikimedia.org/wikipedia/en/thumb/2/25/New_York_Knicks_logo.svg/768px-New_York_Knicks_logo.svg.png",
thunder = "https://upload.wikimedia.org/wikipedia/en/thumb/5/5d/Oklahoma_City_Thunder.svg/375px-Oklahoma_City_Thunder.svg.png",
magic = "https://upload.wikimedia.org/wikipedia/en/8/85/Orlando_magic_logo.png",
`76ers` = "https://upload.wikimedia.org/wikipedia/en/b/ba/Philadelphia_76ers_Logo.png",
suns = "https://upload.wikimedia.org/wikipedia/en/thumb/d/dc/Phoenix_Suns_logo.svg/768px-Phoenix_Suns_logo.svg.png",
trailblazers = "https://upload.wikimedia.org/wikipedia/en/thumb/7/74/Portland_Trail_Blazers.svg/307px-Portland_Trail_Blazers.svg.png",
kings = "https://upload.wikimedia.org/wikipedia/en/thumb/c/c7/SacramentoKings.svg/525px-SacramentoKings.svg.png",
spurs = "https://upload.wikimedia.org/wikipedia/en/thumb/a/a2/San_Antonio_Spurs.svg/768px-San_Antonio_Spurs.svg.png",
raptors = "https://upload.wikimedia.org/wikipedia/en/1/1e/Toronto_Raptors_logo_2015-16.png",
jazz = "https://upload.wikimedia.org/wikipedia/en/c/c2/Utah_Jazz_primary_logo_2016%E2%80%93present.png",
wizards = "https://upload.wikimedia.org/wikipedia/en/thumb/0/02/Washington_Wizards_logo.svg/768px-Washington_Wizards_logo.svg.png"
)) {
img <- as.raster(png::readPNG(RCurl::getURLContent(geom_key[[theme[[1]]]])))
grid::rasterGrob(x = x,
y = y,
image = img,
default.units = "native",
height = size,
width = size*0.5)
}
Geomnba <- ggplot2::ggproto("Geomnba", ggplot2::Geom,
#draw_panel = function(., data, scales, coordinates, ...) {
draw_panel = function(data, panel_scales, coord, na.rm = FALSE) {
coords = coord$transform(data, panel_scales)
ggplot2:::ggname("geom_nba",
nbaGrob(coords$x, coords$y, coords$size, coords$theme)
)
},
non_missing_aes = c("size", "theme"),
required_aes = c("x", "y"),
default_aes = ggplot2::aes(size=0.2, theme="airbnb"),
icon = function(.){}, # a grob representing the geom for the webpage
desc_params = list( # description of the (optional) parameters of draw
),
seealso = list(
geom_point = ggplot2::GeomPoint$desc
),
examples = function(.) {
}
)
geom_nba <- function(mapping = NULL, data = NULL, stat = "identity",
position = "identity", na.rm = FALSE,
show.legend = NA, inherit.aes = TRUE, ...) {
ggplot2::layer(
data = data,
mapping = mapping,
stat = stat,
geom = Geomnba,
position = position,
show.legend = show.legend,
inherit.aes = inherit.aes,
params = list(
na.rm = na.rm,
...
)
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.