我使用此示例在 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")
它只是在地图上覆盖一个红色网格。
谢谢。
除了使用
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"
)