Я хочу создать тепловую карту высокого разрешения для Dataframe с координатами x, y. данные из футбольного матча - PullRequest
1 голос
/ 10 июля 2019

Я отслеживал игру в футбол в помещенииУ каждого игрока был GPS-трекер, который генерирует каждую секунду значения 20-координат и значения 20-координат.Итак, что я хочу сделать, это подобная тепловая карта, как на следующем рисунке.

Как вы думаете, какой самый простой и лучший способ?

Я уже пробовал подход с пакетом 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)))

Фактический вывод - это график, на котором я вижу, где находился мой игрок и на какой позиции он был чаще.Но для меня разрешение слишком низкое, и если я увеличу nbins, то точки будут только уменьшаться.Для меня это должно быть немного похоже на облака.Так что я хочу, чтобы это было похоже на картинку, которую я уже упоминал в ссылке выше.

Вы можете найти мой фрейм данных

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

enter image description here

1 Ответ

0 голосов
/ 10 июля 2019

Мы можем использовать пакет hexbin, чтобы сгруппировать точки и построить их как тепловую карту:

library(hexbin)
library(RColorBrewer)

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

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

plot(hb, colramp=crbrew)

...