在构造将fill
变量设置为..level..
的热图时,我已经看到了一些示例。
如本例所示:
library(MASS)
ggplot(geyser, aes(x = duration, y = waiting)) +
geom_point() +
geom_density2d() +
stat_density2d(aes(fill = ..level..), geom = "polygon")
我怀疑
..level..
设置为存在的相对层数吗?还可以有人给我链接一个很好的例子,说明如何解释这些2D密度图,每个轮廓代表什么等吗?我已经在网上搜索过,但是找不到任何合适的指南。
最佳答案
扩展@hrbrmstr提供的答案-首先,对geom_density2d()
的调用是多余的。也就是说,您可以通过以下方式获得相同的结果:
library(ggplot2)
library(MASS)
gg <- ggplot(geyser, aes(x = duration, y = waiting)) +
geom_point() +
stat_density2d(aes(fill = ..level..), geom = "polygon")
让我们考虑其他可视化此密度估计值的方法,这些方法可能有助于弄清正在发生的情况:
base_plot <- ggplot(geyser, aes(x = duration, y = waiting)) +
geom_point()
base_plot +
stat_density2d(aes(color = ..level..))
base_plot +
stat_density2d(aes(fill = ..density..), geom = "raster", contour = FALSE)
base_plot +
stat_density2d(aes(alpha = ..density..), geom = "tile", contour = FALSE)
但是请注意,我们不再看到从
geom_point()
生成的点。最后,请注意,您可以控制密度估计的带宽。为此,我们将
x
和y
带宽参数传递给h
(请参见?kde2d
):base_plot +
stat_density2d(aes(fill = ..density..), geom = "raster", contour = FALSE,
h = c(2, 5))
同样,来自
geom_point()
的点被隐藏,因为它们位于对stat_density2d()
的调用的后面。
关于r - ..level ..在ggplot::stat_density2d中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32206623/