我一直在努力理解geom_raster()。作为一个简单的例子,我想把像正态分布这样的东西想象成光栅。我使用了以下代码。
v1 <- rnorm(n=50)
v2 <- rnorm(n=50)
v3 <- rnorm(n=50)
vs <- tibble(v1,v2,v3)
ggplot(vs, aes(v1, v2)) +
geom_raster(aes(fill = v3))最后,我得到了以下结果:

我被期望像下面这样的图片

发布于 2017-03-31 02:13:21
geom_raster用于当每个矩形有一个值时。我认为您正在寻找类似于geom_bin2d的东西,但是您需要更多的数据,而且您很可能不会获得远离模式的区域的任何数据:
ggplot(data.frame(v1 = rnorm(10000),
v2 = rnorm(10000)),
aes(x = v1, y = v2)) +
geom_bin2d()

如果角的锐度令人烦恼,那么geom_hex是一个很好的选择,它让孤立的点看起来更少像素化,更像点。geom_density_2d是添加等高线的常见伴奏。
要使用geom_raster,您需要更多的东西
df <- expand.grid(v1 = seq(-2, 2, .1), v2 = seq(-2, 2, .1))
df$v3 <- dnorm(df$v1) * dnorm(df$v2)
ggplot(df, aes(v1, v2, fill = v3)) + geom_raster()

geom_contour可以作为伴奏来显示等高线。它需要一种z美学,而不是fill,但在其他方面,它的工作方式类似于geom_raster。
https://stackoverflow.com/questions/43130491
复制相似问题