2014-09-18 34 views
2

我很努力在包的几个多边形上引入自定义调色板。 我正在绘制几个字段,并希望显示我的评分,它可以有值0,1,2,4或5.我需要使用自定义颜色。我试过的是:R:自定义调色板在地图上用spplot

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) 

我注意到以下几点:当我子集原来的“大SpatialPolygonsDataframe”我的数据,所产生的地图是“正式类SpatialPolygonsDataframe”。这在我刚刚发布的例子中没有发生。任何人都可以告诉我是什么导致了这种行为?不幸的是,我无法上传原始(敏感)数据。

Map produced by spplot with repetitive color code (not desired)

+0

如果您将代码更改为'col.regions = c(“#00cc00”,“#ffff66”,“#e5c100”,“orange”,“#ff5e5e”,“red” )' – eipi10 2014-09-18 18:11:38

+0

不,它不。 – user2386786 2014-09-18 20:42:51

+0

如果你发布一个[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)以便其他人可以复制,它会更容易帮助你你的问题,并试图解决它。 – eipi10 2014-09-18 20:46:05

回答

0

这发生在你的zcolnumeric。将其转换为factor并且您的图应该按预期显示。

您可以看到此行为如果转换t1$TYPE_3到数字:

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

t1

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

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

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