【问题标题】:Consistent coloring for several ggplot2 graphs using stat_density2d function使用 stat_density2d 函数对几个 ggplot2 图形进行一致着色
【发布时间】:2015-09-26 15:06:35
【问题描述】:

我正在尝试制作延时摄影,因为我有不同月份的图表,我希望它们是“动画”的。例如,请参阅下面来自ggmap 包裹样本的休斯顿暴力犯罪地图。

我想做一个动画,一个小视频,每个月都有,所以图表的颜色需要保持一致。一月份的最大值是 900,而二月份的最大值是 1100,尽管他们会穿相同的蓝色调,这是错误的。

我尝试按照here 显示的步骤,使用scale_alpha_continuous()scale_color_discrete(),但我还没有设法修复它。关于如何使颜色一致并为所有图表设置最大值的任何想法?非常感谢任何帮助!

带数据的代码:

library(ggplot2)
library(ggmap)
library(mapproj)

crime <- data.frame(crime)
violent_crimes <- subset(crime, offense != "auto theft" & offense != "theft" & offense != "burglary")
violent_crimes$offense <- factor(violent_crimes$offense, levels = c("robbery", "aggravated assault", "rape", "murder"))
violent_crimes <- subset(violent_crimes,  + -95.39681 <= lon & lon <= -95.34188 & 29.73631 <= lat & lat <= 29.78400) # restrict to downtown

houston <- get_map("houston", zoom = 14)
HoustonMap <- ggmap(houston, extent = "device", legend = "topleft")

violent_crimes$month <- factor(violent_crimes$month)
months <- levels(violent_crimes$month)

for (i in levels(violent_crimes$month)){
        monthchosen <- months[i]
        violent_crimes_month <- subset(violent_crimes, month == as.character(monthchosen))

        HoustonMap +   
                stat_density2d( 
                        aes(x = lon, y = lat, fill = ..level..),
                        size = 2, bins = 4, data = violent_crimes_month,
                        geom = "polygon"
                )

        ggsave(file=paste0("Houston_",as.character(i),".png"), dpi=200)
}

【问题讨论】:

  • 您链接的问题建议使用 breaks 参数。这没有用吗?
  • @Axeman 休息没有发生。 scale_fill_gradient 是缺少的参数。

标签: r dictionary ggplot2 ggmap


【解决方案1】:

只需使用明确的scale 设置为每个绘图设置颜色范围

 + scale_fill_gradient(limits=c(0, 1500)))

如果您将其添加到绘图中,它们应该都从 0 变为 1500。您可以将这些值更改为任何您想要使它们保持一致的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2019-04-24
    • 2021-08-24
    相关资源
    最近更新 更多