【问题标题】:R:Custom color palette in map with spplotR:带有spplot的地图中的自定义调色板
【发布时间】:2014-09-18 16:36:07
【问题描述】:

我正在努力使用sp 包中的spplot 在多个多边形上引入自定义调色板。 我正在绘制几个字段并想显示我的 rating ,它的值可以是 0、1、2、4 或 5。我需要为此使用自定义颜色。我尝试的是:

spplot(Map,zcol="Rating", 
       col.regions=c("0"="#00cc00","1"="#ffff66","2"="#e5c100",
                     "3"="orange","4"="#ff5e5e","5"="red"), 
       colorkey=TRUE)

但是,它会产生重复的颜色,如下图所示。我该如何解决这个问题?我知道如何使用 ggplot 来实现它,但出于几个原因,我需要知道如何使用 spplot 来实现它。 非常感谢您的帮助。

编辑:这里有一个地图的例子,它确实按照我需要的方式工作:

con <- url("http://gadm.org/data/rda/DEU_adm3.RData")
print(load(con))
close(con)
t1<-gadm[grep("Sachsen|Hessen|Bayern",gadm$NAME_1),]
col=c("red","yellow")
spplot(t1,zcol="TYPE_3",col.regions=col)

我注意到以下情况:当我使用我的数据对原始“Large SpatialPolygonsDataframe”进行子集化时,生成的地图是“Formal Class SpatialPolygonsDataframe”。这在我刚刚发布的示例中不会发生。谁能告诉我是什么导致了这种行为?很遗憾,我无法上传原始(敏感)数据。

【问题讨论】:

  • 如果您将代码更改为col.regions=c("#00cc00", "#ffff66", "#e5c100", "orange", "#ff5e5e", "red"),它是否按照您期望的方式工作
  • reproducible example 会更容易帮助到您,以便其他人可以重现您的问题并尝试解决。

标签: r map plot spatial


【解决方案1】:

当您的 zcolnumeric 时,会发生这种情况。将其转换为factor,您的绘图应该会按预期显示。

如果您将t1$TYPE_3 转换为数字,您会看到此行为:

t1$TYPE_3.num <- as.numeric(t1$TYPE_3)
spplot(t1, 'TYPE_3.num', col.regions=c('red', 'yellow'))

所以假设有 6 个可能的因子水平,标签从 0 到 5,尝试:

Map$Rating.fac <- factor(M$Rating, levels=0:5)

然后使用zcol='Rating.fac' 并将一个6 种颜色的向量传递给col.regions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-03
    • 2020-08-06
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2020-04-28
    • 2015-05-31
    • 2021-01-08
    相关资源
    最近更新 更多