1

我正在尝试使用函数 stat_density_2d 在 R 中制作密度图,但我想删除密度为空的背景颜色。我尝试更改密度的限制,但是当将限制从 [0,5] 移动到 [0.1, 5] 时,背景变为灰色而不是深蓝色。我该怎么做才能拥有透明背景并仅对数据点着色?

这是我的代码:

ggplot(TEST, aes(x = X, y = Y)) +
  geom_point() +
  stat_density_2d(geom = "raster", aes(fill = ..density..*10e04), contour = F, 
                  h = c(5, 5),
                  n = 300) +
  ggtitle("7387")+ 
  theme(plot.title = element_text(lineheight=.8, face="bold"))+
  scale_y_reverse()+
  scale_fill_distiller(palette = 'Spectral', limits=c(0,5))

在此处输入图像描述

谢谢!

4

1 回答 1

1

您可以将密度映射到 alpha 比例,以便较低的值是透明的:

TEST <- data.frame(X = rnorm(10000, -700, 50),
                   Y = rnorm(10000, -450, 50))

ggplot(TEST, aes(x = X, y = Y)) +
  stat_density_2d(geom = "raster", 
                  aes(fill = ..density..*10e04, alpha = ..density..*10e04), 
                  contour = FALSE, 
                  h = c(7, 7),
                  n = 300) +
  scale_alpha_continuous(range = c(0, 1), limits = c(0, 3), 
                         guide = guide_none()) +
  ggtitle("7387") + 
  theme(plot.title = element_text(lineheight=.8, face="bold"))+
  scale_y_reverse() +
  scale_fill_viridis_c(limits = c(0, 12))

在此处输入图像描述

于 2020-09-20T17:33:03.490 回答