Я пытаюсь изобразить плотность кадров на изображении баскетбольной площадки; однако я не могу понять, как сделать так, чтобы точки, где плотность = 0, игнорировались.
В настоящее время я получаю следующее:
Код, который я использую для этого, следующий:
## LIBRARIES
library(grid)
library(jpeg)
library(RCurl)
library(ggplot2)
library(gridExtra)
library(viridis)
courtImg.URL = "https://thedatagame.files.wordpress.com/2016/03/nba_court.jpg"
court = rasterGrob(readJPEG(getURLContent(courtImg.URL)),
width=unit(1,"npc"), height=unit(1,"npc"))
ggplot(df, aes(x = df$Baseline, y=df$Side)) +
ylim(0, 100) +
ylab(" ") +
xlim(-50, 50) +
xlab("Baseline") +
annotation_custom(court, -50, 50, 0, 100) +
coord_fixed() +
scale_fill_viridis(option='inferno', end=1) +
stat_density_2d(aes(fill =..density..), geom = "raster", contour=FALSE) +
guides(fill = guide_colorbar(title = "% of Shots Taken"))
Мой желаемый результат выглядит примерно так:
В конце концов, я просто пытаюсь сделать версию диаграммы выстрелов в виде тепловой карты. Если у кого-то есть какие-либо предложения относительно того, как я могу сделать это совершенно другим способом, который работает, я абсолютно открыт для этого!
Заранее спасибо!