我的问题很简单:我有一些带有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)有没有办法将箱子居中放置在点上? 有时左下角在点上,有时右下角等等,就像这样: 此外,最好的情况是箱子足够大且彼此接触,但是当我在
stat_bin2d()
中更改binwidth=c(1,1)
时,实际上会更改计数,尽管箱子不应重叠,因为所有点之间至少相距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不允许我为每个单独点设置大小?,但是无法使其正常工作。
感谢您提前的任何帮助。