R:stat_密度2d改变密度表面的颜色?

问题描述 投票:0回答:1

我使用此示例在 R 中创建热图:

https://www.sharpsightlabs.com/blog/how-to-create-a-crime-heatmap-in-r/

ggmap(map_sf) +
  stat_density2d(data = sf_crime, aes(x = lon, y = lat, fill = ..density..), geom = 'tile', contour = F, alpha = .5)

如何更改密度表面的颜色? 默认为蓝色;例如,如果我想要红色怎么办?

如果我这样做:

ggmap(map_sf) +
  stat_density2d(data = sf_crime, aes(x = lon, y = lat, fill = ..density..), geom = 'tile', contour = F, alpha = .5, color="red")

它只是在地图上覆盖一个红色网格。

谢谢。

r ggplot2
1个回答
0
投票

除了使用

color
而不是
fill
的问题之外,主要问题是
fill
颜色由
scale_fill_xxx
决定。

如果连续变量映射到

fill
,默认填充比例(在引擎盖下使用)是
scale_fill_gradient
,默认为从浅蓝色到深蓝色的渐变。

如果您想要红色渐变,则必须通过显式调用

scale_fill_gradient
来设置所需的颜色。

使用基于

?stat_density_2d
中的默认示例的最小可重现示例:

library(ggplot2)

m <- ggplot(faithful, aes(x = eruptions, y = waiting)) +
  stat_density_2d(
    aes(fill = after_stat(density)),
    geom = "tile", contour = FALSE
  )

m


m +
  scale_fill_gradient(
    low = "darkred", high = "red"
  )

© www.soinside.com 2019 - 2024. All rights reserved.