我一直在努力了解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))
我最终得到了以下内容:
我被期待类似下面的图像
答案 0 :(得分:4)
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
类似。