ggplot2 визуализирует количество точек, нанесенных друг на друга: stat_bin2d или geom_tile или размер точки?

Моя проблема проста: у меня есть несколько точек с координатами x, y, которые расположены внутри прямоугольной сетки, состоящей из квадратов 1x1. Эти точки имеют усредненные координаты, поэтому несколько точек имеют одинаковые координаты (они полностью перекрываются). Воспроизводимый пример:

# generate fake data
y <- seq(from=0.5, to=9.5, by=1)
x <- seq(from=0.5, to=4.5, by=1)
xnew <- sample(x,100,replace=T)
ynew <- sample(y,100,replace=T)
data <- data.frame(xnew,ynew)

# create chart
ggplot(data, aes(x=xnew, y=ynew)) + geom_point()

Я хочу представить частоту точек в определенном месте (координаты x, y, представляющие определенный квадрат).stat_bin2d это шаг в правильном направлении, но ящики необъяснимо (для меня) размещены в разных местах на карте, что затрудняет визуальное представление распределения.

Я могу представить два разных решения:

1) Есть ли способ центрировать контейнеры по точкам? Иногда нижний левый угол находится в точке, иногда нижний правый угол и т. Д., Например:

Кроме того, было бы идеально, если бы ящики были достаточно большими, чтобы касаться друг друга, но когда я меняюbinwidth=c(1,1) вstat_bin2d()это фактически меняет счет, хотя ячейки не должны перекрываться, так как все точки находятся на расстоянии не менее 1 квадрата друг от друга.

или, используя размеры точек:

2) Я бы предпочел точки, размер которых отражал бы концентрацию (так было бы лучше и в черно-белом). Я пытался с geom_point ():

ggplot(data, aes(x=xnew, y=ynew))+geom_point(aes(x=xnew,y=ynew, size=..count..))

но я получил

Error in eval(expr, envir, enclos) : object 'count' not found

и затем, если я добавлю `stat =" bin ", это конфликтует с присваиванием y. Я посмотрел здесь:Почему ggplot2 не позволяет мне устанавливать размер для каждой отдельной точки?, но не смог заставить его работать.

Спасибо в ожидании любой помощи.

Ответы на вопрос(2)

Ваш ответ на вопрос