如何从ggplot2::geom_density_2d_filled获取轮廓信息?

How to obtain information about contours from ggplot2::geom_density_2d_filled?

我可以用 ggplot2 绘制热图。例如

library(tidyverse)

gg <- ggplot(mtcars) + geom_density_2d_filled(aes(x = mpg, y = disp)) +
   theme(legend.position = "none")

是否可以从 ggplot 对象中获取有关热图轮廓的信息?我需要x, yz 就像在 MASS::kde2d 输出或其他形式中一样。

这个博客 post 似乎有答案 - https://www.javaer101.com/en/article/42324657.html

gdata <- layer_data(gg)    ##  Update - more precise method
#ggbld <- ggplot_build(gg)
#gdata <- ggbld$data[[1]]
head(gdata)

然后你可以逐层绘制来演示:

gdata %>% ggplot() +geom_point(aes(x, y, color = level))