我希望构建一些图表来展示一些NBA球员和球队的投篮倾向/效率。我想按如下方式格式化六边形:大小将代表拍摄次数,颜色将代表该位置的相对效率(点数/尝试)。这是我正在寻找的一个很好的例子,由 Kirk Goldsberry 创建:
我已经能够使用hexbins
并hexTapply
达到接近预期结果的效果,但形状是圆形。这是我的代码(包括示例数据):
library(hexbin); library(ggplot2)
df <- read.table(text="xCoord yCoord pts
11.4 14.9 2
2.6 1.1 0
4.8 4.1 2
-14.4 8.2 2
4.2 0.3 0
0.4 0.0 2
-23.2 -1.1 3", header=TRUE)
h <- hexbin (x=df$xCoord, y = df$yCoord, IDs = TRUE, xbins=50)
pts.binned <- hexTapply (h, df$pts, FUN=mean)
df.binned <- data.frame (xCoord = h@xcm,
yCoord = h@ycm, FGA = h@count, pts = pts.binned)
chart.player <- ggplot (df.binned, aes (x =xCoord ,
y =yCoord , col = pts, size = FGA)) + coord_fixed() +
geom_point() + scale_colour_gradient("Points/Attempt", low = "green", high="red")
另一种考虑它的方法是plot(h, style="lattice")
通过 pts/attempt 为六边形着色——但我也不知道该怎么做。
有没有办法用六边形而不是圆形来获得这个图表?