首页 > 解决方案 > 我想用 x, y 坐标创建一个 Dataframe 的高分辨率热图。来自足球比赛的数据

问题描述

我跟踪了一场室内足球比赛。每个玩家都有一个 GPS 跟踪器,它每秒生成 20 个 x 坐标值和 20 个 y 坐标值。所以我想做的是一个类似的热图,如下图所示。

你认为最简单和最好的方法是什么?

我已经尝试过使用 MASS 包的方法。

df <- data.frame(x,y)
h2 <- hist2d(df)
h2 <- hist2d(df, nbins=100, col=r)
h2 <- hist2d(df, nbins=100, col=r, FUN=function(x) log(length(x)))

实际输出是一个图,我可以在该图上看到我的球员在哪里以及他更经常在哪个位置上。但对我来说,分辨率太低了,如果我增加 nbin,那么点只会越来越小。对我来说,它应该有点像云。所以我想要的是一个类似的视图,就像我在上面的链接中已经提到的图片一样。

你可以找到我的数据框

https://drive.google.com/open?id=1SA2oT78wFdXmuz2j2UOOyZvzgwYpgXkT

在此处输入图像描述

标签: rheatmap

解决方案


我们可以使用hexbin包对点进行聚类并将它们绘制为热图:

library(hexbin)
library(RColorBrewer)

crbrew <- colorRampPalette(rev(brewer.pal(11,'Spectral')))

hb <- hexbin(df$x,df$y,xbins = 40)

plot(hb, colramp=crbrew)


推荐阅读