Создайте график плотности в ggplot, используя столбец частоты во фрейме данных

Предположим, у меня есть фрейм данных с координатами точек (x,y) и частотой, представляющей количество появления этих точек. Как я могу построить график плотности с учетом столбца частот?

library(ggplot2)
df <- data.frame(x = floor(runif(100, min=1, max=10)), y = floor(runif(100, min=1, max=10)), freq = floor(runif(100, min=100, max=1000)))
ggplot(df, aes(x, y)) + stat_density_2d(aes(fill = ..level..), geom = "polygon") 
# the frequency column plays no rule. see:
df$freq <- NULL
ggplot(df, aes(x, y)) + stat_density_2d(aes(fill = ..level..), geom = "polygon") 

Я мог реплицировать данные, но только для небольших наборов данных с небольшими значениями частоты. В этом случае я мог бы сделать следующее:

df.expanded <- df[rep(row.names(df), df$freq), 1:2]
ggplot(df.expanded, aes(x, y)) + stat_density_2d(aes(fill = ..level..), geom = "polygon") 

Для очень большого набора данных это недопустимо. Как мне тогда поступить?

0 ответов

Другие вопросы по тегам